2 poin oleh GN⁺ 2023-10-17 | 1 komentar | Bagikan ke WhatsApp
  • Pada awal masa karantina COVID pada Maret 2020, Stocketa dimulai sebagai proyek pribadi untuk mempelajari Swift dan SwiftUI, lalu dikembangkan selama lebih dari 2 tahun dengan 10–20 jam per minggu, tetapi tidak pernah dirilis di App Store
  • Tujuannya adalah menjadi pelacak portofolio untuk investor kasual yang memungkinkan aset yang tersebar di berbagai broker dan layanan keuangan dilihat di satu tempat, termasuk laba/rugi per transaksi serta laba/rugi terealisasi dan belum terealisasi
  • Aplikasi ini berfokus pada interaksi buatan sendiri alih-alih komponen iOS standar, dengan implementasi seperti pull-to-search, kartu saham, sheet dan menu kustom, aksi swipe, widget, dan impor TSV
  • Kendala praktis terbesar yang menghalangi peluncuran adalah API data keuangan: masalah kualitas dan cakupan dari IEX, reliabilitas penyedia seharga $100 per bulan, serta harga data komersial mulai dari $2.000 per bulan yang tidak cocok untuk aplikasi independen
  • Meski sudah memiliki LLC, backend Node/Express, TestFlight dengan sekitar 1.000 orang, dan ribuan orang di daftar tunggu, proyek ini dihentikan karena biaya data, beban dukungan pelanggan, dan kurangnya waktu; namun pengalaman belajar SwiftUI kemudian langsung berguna untuk pekerjaan di Rewind AI

Masalah yang ingin dipecahkan Stocketa

  • Stocketa bertujuan menjadi aplikasi pelacakan portofolio yang dirancang dengan baik untuk melihat aset investasi yang tersebar di banyak tempat dalam satu layar
    • Berangkat dari pengalaman pribadi yang merasa repot harus memeriksa aset yang tersebar di berbagai broker dan layanan keuangan
    • Yang diinginkan bukan sekadar melihat harga, tetapi juga laba/rugi nyata per transaksi berdasarkan basis biaya sendiri
  • Pilihan yang ada saat itu tidak sesuai kebutuhan
    • Aplikasi saham sederhana seperti Apple Stocks menyediakan grafik dan berita, tetapi tidak punya fitur pelacakan jumlah kepemilikan dan laba/rugi
    • Aplikasi broker seperti Robinhood hanya menampilkan kepemilikan di broker tersebut
    • Layanan tingkat lanjut seperti TradingView tidak berfokus pada mobile atau tidak memberikan pengalaman yang seanggun yang diinginkan
    • Layanan penasihat investasi seperti Personal Capital memang punya fitur penghubungan akun, tetapi sulit untuk melihat aset individual secara mendalam dan lebih berfokus menjual layanan advis mereka sendiri
    • Aplikasi kecil untuk melacak kepemilikan saham di App Store tidak memuaskan dari sisi desain dan UX
  • Aplikasi keuangan yang ada umumnya memprioritaskan kepadatan informasi, sehingga pengguna harus terus masuk dari daftar ke layar detail, sementara Stocketa ingin menampilkan lebih banyak informasi langsung di dalam kartu pada layar pertama

Struktur aplikasi yang dibuat dengan UI kustom

  • Stocketa dirancang dengan satu feed dan kartu saham sebagai pusat, sambil meminimalkan UI chrome di sekitarnya
    • Tidak ingin menggunakan tab bar atau header navigasi standar
    • Sebagian besar fitur dimasukkan ke dalam kartu saham di timeline beranda
  • Hampir seluruh UI dibuat sebagai komponen kustom berbasis SwiftUI
    • Alih-alih pull-to-refresh, digunakan pull-to-search untuk mencari dan menambahkan saham baru
    • Kartu saham menyediakan sebagian besar informasi secara inline, termasuk chart scrubbing, aksi swipe, dan statistik utama
    • Saat kartu diketuk, kartu yang ada tetap di tempatnya sementara kartu berita dan detail kepemilikan muncul dengan animasi; implementasi intinya memakai overlayPreferenceValue dan anchorPreference
    • Sheet kustom mencakup pemilih tanggal, layar penjelasan, latar belakang dengan bintang berkilau, dan interpolasi transparansi latar berdasarkan drag
    • Menu aplikasi kustom dirancang agar punya ruang untuk menampilkan paket berbayar atau status membership, dan bisa ditutup lewat tap atau scroll
  • Aksi swipe dan header juga dibuat sendiri
    • Aksi bergerak sesuai jarak swipe, dan akan dianimasikan ke status terpilih jika melewati ambang tertentu
    • Tombol header terlihat tanpa border di bagian atas halaman, lalu berubah menjadi tombol lembut saat di-scroll ke atas
    • Teks Stocketa diinterpolasikan agar menghilang ke atas seiring scroll

Pelacakan transaksi dan fitur aplikasi

  • Implementasi awal dimulai dari scroll view kartu saham, chart, dan persistensi database
    • Awalnya memakai Core Data lalu kemudian pindah ke Firebase
    • Panggilan dan polling ke penyedia data keuangan ditambahkan, dengan IEX sebagai penyedia pertama
  • Stocketa tidak hanya menyimpan jumlah saham yang dimiliki per ticker, tetapi juga mengimplementasikan pelacakan tingkat transaksi
    • Tujuannya menampilkan bukan hanya total laba/rugi beli-jual, tetapi juga laba/rugi per transaksi
    • Saat menjual, perlu mengetahui metode basis biaya seperti FIFO dan LIFO, serta menghitung saham dijual dari transaksi historis yang mana
    • Stock split juga harus didukung baik untuk penerapan otomatis pada split baru maupun penerapan manual, tanpa sekadar mengubah transaksi lama
  • Fitur kemudian meluas ke seluruh aplikasi
    • Onboarding: alih-alih carousel biasa, digunakan alur di mana halaman terdorong masuk di sepanjang sumbu z, sambil memperkenalkan komponen inti seperti kartu saham
    • Impor TSV: transaksi bisa diimpor dari file TSV buatan spreadsheet, dan status impor ditulis kembali ke TSV agar bisa diimpor ulang setelah sinkronisasi iCloud
    • Input pembelian: menyediakan form khusus saham yang berfokus pada jumlah, harga, dan tanggal; jika tanggal diubah, harga historis pada hari itu muncul sebagai placeholder
    • Input penjualan: mendukung FIFO, LIFO, Average cost, Highest cost, Lowest cost, dan lot tertentu
    • Layar langganan: mencakup teks parallax, blur yang terbuka saat scroll, kartu fitur berbasis motion, dan efek fireworks kecil saat mencapai bagian bawah
    • Kartu membership: menampilkan status akun dengan langganan aktif sebagai kartu interaktif, dengan efek starfield dan shimmer di latar
    • Pengaturan tampilan kartu saham: menyediakan berbagai bentuk kartu dan pengaturan, dengan mikro-animasi saat toggle diubah
    • Kartu posisi kepemilikan: menampilkan informasi agregat berbasis pengaturan di bagian atas scroll utama
    • Widget: menyediakan tiga jenis, yaitu saham individual, portofolio, dan portofolio sederhana, dengan warna gradasi besar yang berubah sesuai performa
    • Masa tenggang Face ID: dianggap perlu untuk aplikasi yang menangani aset keuangan, sehingga pengguna bisa mengatur waktu jeda sebelum aplikasi terkunci lagi saat berpindah aplikasi
    • Sheet hari libur pasar: menampilkan hari pasar tutup pada akun yang memiliki saham, dan membutuhkan kode server agar widget menangani hal yang sama
    • Sheet masukan: menampilkan isu yang sudah diketahui dan fitur yang direncanakan, serta bisa menyertakan token verifikasi akun untuk pertanyaan yang spesifik per akun
    • Penghapusan akun: sesuai persyaratan pembaruan App Store 2021, akun bisa dihapus sepenuhnya dari dalam aplikasi

Belajar sambil membangun ulang dengan SwiftUI

  • Stocketa dikerjakan sambil mempelajari Swift dan SwiftUI, sehingga banyak layar dan sebagian aplikasi terus dirancang ulang dan diimplementasikan ulang
  • Sejak iOS 13, SwiftUI berkembang dari sisi performa, komponen, dan fitur, dan di iOS 17 juga menyediakan fitur seperti shaders, keyframes, dan scroll transitions
  • SwiftUI berguna bukan hanya sebagai alat pemrograman, tetapi juga alat desain
    • Desainer bisa dengan cepat membuat layout
    • Interaksi mudah ditambahkan
    • Dengan alat native, rasa desain yang sebenarnya bisa langsung dicek
  • Kasus yang benar-benar membutuhkan UIKit relatif terbatas
    • Text field kustom untuk kontrol input, gaya, dan format yang lebih rinci
    • CollectionView untuk mengubah urutan saham dengan drag
    • Emitter partikel seperti confetti atau bintang di langit malam
    • UILongPressGestureRecognizer untuk mendapatkan lokasi saat long press dimulai

Backend dan operasional TestFlight

  • Awalnya aplikasi ini dibayangkan sebagai aplikasi sederhana tanpa backend atau akun pengguna, tetapi segera menjadi jelas bahwa backend sendiri diperlukan
    • Dibuat backend proxy agar API key data keuangan tidak dimasukkan ke dalam aplikasi
    • Rate-limiting dan throttling ditambahkan agar biaya tidak membengkak karena penyalahgunaan API
    • Sign In With Apple ditambahkan
    • Statistik per saham di-cache untuk jangka waktu tertentu agar bila beberapa akun meminta data yang sama, pengambilan cukup dilakukan sekali
  • Backend berbasis Node/Express tumbuh hingga sekitar 13.000 LOC
    • Berjalan di Cloud Run
    • Menangani autentikasi, caching, berita, logika bisnis inti, pembersihan data, notifikasi, widget, berbagai integrasi API, dan sebagian scraping
  • Pengelolaan pekerjaan dilakukan dengan Linear
    • Digunakan untuk mengelola tugas, ide, fitur, masukan pelanggan, dan milestone
  • TestFlight dimulai sebagai alpha kecil untuk teman dekat lalu diperluas bertahap
    • Pada satu titik sekitar 1.000 orang diundang
    • Daftar tunggu mencapai ribuan orang, tetapi tidak diperluas lagi karena biaya API dan hosting serta beban dukungan dan penanganan masukan
    • Masukan yang datang berupa campuran kesan pertama yang baik, permintaan fitur, dan laporan bug

Desain dan implementasi situs web

  • Situs web awal adalah landing page sederhana untuk mengumpulkan minat dan email daftar tunggu
  • Desain awalnya memuat elemen gelombang yang longgar terinspirasi naik-turunnya chart pasar saham serta kartu saham mini yang melayang
    • Kartu mini memiliki line chart SVG dan dianimasikan saat halaman dimuat
    • Efek gerakan halus di latar dibuat dengan offset-path CSS dan 2 animasi keyframe
  • Beranda v1.0 selesai pada awal 2021
    • Ketika implementasi dianggap sudah cukup untuk menunjukkan fitur aplikasi, dibuatlah beranda yang lebih matang
    • Alih-alih komposisi umum berupa bingkai ponsel + headline, dicoba susunan di mana bingkai ponsel 3D bergerak mengikuti scroll dan video teaser aplikasi diputar
    • Alih-alih Lottie, dipilih pendekatan JavaScript yang menggambar frame sequence ke canvas dan offscreenCanvas
    • Dengan Rotato, dibuat screencast Stocketa pendek dalam bentuk video ponsel 3D dan frame sequence PNG
    • Setelah itu, proses menghasilkan, mengoptimalkan, dan memperbarui frame sequence menjadi kerepotan besar
  • Beranda v2.0 dirancang ulang setahun kemudian
    • Untuk menampilkan lebih banyak fitur dan peningkatan, diinginkan daftar fitur yang mudah dipindai daripada modul panjang yang berulang
    • Dipilih struktur dua panel dengan bingkai perangkat tetap di kanan dan daftar fitur yang bisa di-scroll di kiri
    • Saat mouse diarahkan ke item fitur, screenshot pada bingkai perangkat berubah
    • Di mobile, header diubah menjadi carousel bingkai perangkat yang bisa di-scroll
    • Ditambahkan gradasi teks hero yang berubah saat scroll, perubahan warna ikon, gradasi latar saat hover, dan emitter partikel ikon

Batasan yang ditimbulkan API data keuangan

  • Kualitas data keuangan yang diandalkan Stocketa tidak berada pada tingkat yang layak untuk peluncuran
  • Penyedia pertama, IEX, memiliki banyak masalah
    • Chart kadang usang atau harga tidak akurat
    • Masalah ini terutama besar pada aset yang jarang diperdagangkan di bursa IEX
    • Tidak ada data pasar OTC, dan perlu lisensi mahal langsung dengan OTC
    • Data saham yang terdaftar di Nasdaq juga sangat dibatasi, dan data dasar seperti premarket dan after-hours pun kurang
    • Data mutual fund dihentikan sepenuhnya tanpa pemberitahuan sebelumnya
  • Penyedia lain yang kemudian dipakai dan secara komersial memungkinkan berharga $100 per bulan, tetapi masalah data dan reliabilitasnya lebih parah
    • Endpoint mengembalikan data yang usang atau salah
    • Saat masalah dilaporkan, bug diabaikan atau dijawab seolah tidak ada
  • Beberapa data sulit diperoleh bahkan lewat API berbayar, sehingga perlu dibuat mesin scraping di backend
    • dividend yield
    • earnings dates
    • data OEF
  • Data pasar berkualitas tinggi memiliki struktur harga yang tidak cocok untuk pengembang aplikasi independen
    • Harga data komersial dari beberapa penyedia data pasar utama AS mulai dari $2.000 per bulan
    • Data indeks atau data opsi membutuhkan biaya tambahan
    • Salah satu penyedia menawarkan paket startup seharga $499 per bulan plus biaya per MAU, tetapi tetap dinilai sangat mahal dibanding kebutuhan
  • Proyek yang bergantung pada API data keuangan membawa risiko membangun bisnis di atas API milik perusahaan lain, dan ini dipandang mirip dengan masalah pada perubahan API Twitter dan Reddit

Alasan berhenti merilis

  • Sejak awal, Stocketa adalah side project, bukan bisnis sungguhan
    • Untuk menjadikannya bisnis nyata, dibutuhkan lebih banyak fitur dan cara monetisasi
    • Mungkin harus masuk ke area seperti layanan penasihat keuangan atau perdagangan saham, yang merupakan wilayah padat dengan persaingan perusahaan besar
    • Arah seperti itu tidak cocok dengan titik awal proyek yang ingin membuat aplikasi sederhana dan elegan
  • Alasan penghentian diringkas menjadi tiga hal
    • Data: agar bisa dirilis dengan harga langganan yang masuk akal, dibutuhkan data keuangan yang andal, murah, dan berkualitas tinggi, tetapi biaya dan tingkat kesulitannya besar
    • Dukungan: dari pola penggunaan TestFlight terlihat bahwa dukungan pelanggan, email, pemeliharaan, dan pengembangan fitur berkelanjutan akan membutuhkan investasi besar
    • Waktu: Rewind AI dipilih sebagai fokus yang lebih utama, dan Stocketa sudah menyita malam, akhir pekan, bahkan waktu untuk menulis blog selama bertahun-tahun
  • Tujuan awal untuk mempelajari Swift dan SwiftUI tetap tercapai
    • Meski tidak pernah dirilis, banyak hal tentang pengembangan iOS native yang berhasil dipelajari
    • Pengetahuan SwiftUI yang diperoleh dari Stocketa sangat membantu dalam pekerjaan di Rewind AI

1 komentar

 
GN⁺ 2023-10-17
Komentar Hacker News
  • Rasanya proyek bertahun-tahun yang akhirnya tidak benar-benar dipakai itu hampir seperti lencana kehormatan. Bukan lencana yang bijak, tetapi bagi developer seperti saya yang mudah tenggelam dalam arti baik dan tersedot sepenuhnya, itu hampir menjadi pelajaran yang diperlukan
    Saat menceritakan pengalaman lama dan rasa sakit yang datang darinya, saya merasa orang-orang jadi bengong. Kalau belum pernah menggantungkan diri pada sesuatu lebih dari 10 jam sehari selama lebih dari setahun, rasanya sulit memahami sensasi mencurahkan ribuan jam tanpa hasil apa pun
    Ada banyak proyek yang sukses dan masih berjalan baik sampai sekarang, tetapi proyek-proyek bertahun-tahun itu tidak bisa dibatalkan. Mungkin perlu untuk pembelajaran, tetapi saat mengingatnya, tetap terasa sedih dan sepi

    • Pada 2016, saya mengalami hal serupa saat membuat aplikasi iOS sambil belajar sendiri Swift dan UIKit. Selama 2 tahun, 5 hari seminggu, sekitar 2 jam sehari, saya mencurahkan lebih dari 1.000 jam, tetapi aplikasi itu akhirnya tidak pernah dirilis
      Sebagai gantinya, saya memperoleh keterampilan yang membuat saya menjadi programmer yang jauh lebih baik dan jadi menyukai Swift. Kalau sekarang, berkat perkembangan tool pengembangan dan API Apple selama 7 tahun terakhir, rasanya saya bisa membangun ulang seluruh aplikasi itu dari nol dalam satu akhir pekan
      Proyek seperti ini layak dikenang. Pemrograman bisa menjadi seni, dan seni sebagai saluran kreasi bisa dibuat hanya untuk diri sendiri
    • Penyesalan atas hal seperti ini hanya masuk akal ketika saat itu sebenarnya sudah bisa tahu bahwa itu tidak akan berhasil, tetapi tetap memaksakan diri melawan penilaian yang lebih baik. Jika dengan informasi yang dimiliki saat itu kita sudah mengambil keputusan terbaik, maka hanya itu yang bisa dilakukan, sisanya bergantung pada keberuntungan
      Pemikiran berorientasi hasil yang menyiksa proyek masa lalu dengan pengetahuan yang baru diketahui belakangan tidak terlalu berguna. Sebagian besar proyek dan bisnis gagal, dan itulah kenyataannya
      Saya ingat tulisan seorang mantan orang keuangan yang berkata, “tidak ada orang yang dipecat karena kebetulan menghasilkan uang dari transaksi buruk.” Dalam budaya yang berorientasi hasil, kita mudah lupa bahwa yang benar-benar kita kendalikan hanyalah proses
    • Saya menghabiskan 10 tahun untuk sebuah proyek software, dan meski sudah 6 bulan sejak selesai, saya belum menghasilkan sepeser pun :(
      Saya memang mendapat pelajaran berharga seperti tahu kapan harus berhenti, tetapi itu pelajaran yang terlalu panjang. Sampai sekarang saya masih belum bisa benar-benar memikirkannya kembali
    • Tidak ada yang lebih melemahkan semangat daripada menghabiskan bertahun-tahun untuk sebuah proyek lalu begitu ditunjukkan kepada seseorang, mereka menepisnya dengan “kurang bagus,” atau hanya menyuruh melakukan X
    • Mungkin rasanya lebih sakit karena targetnya adalah sukses, yaitu pemakaian aplikasi atau pendapatan. Kalau alasan utamanya kesenangan atau pembelajaran, mungkin rasanya akan berbeda
      Saya jadi bertanya-tanya apakah sebaiknya menyarankan orang untuk tidak memulai proyek lebih dari 1 tahun kecuali yakin tidak akan menyesal meskipun tidak ada seorang pun yang memakainya
  • Tulisan yang bagus, tetapi kesimpulannya terasa menyedihkan. Ada begitu banyak aplikasi yang saya harap punya versi “tanpa hal yang tidak perlu” seperti ini, dan jumlah pekerjaan yang masuk ke sini luar biasa
    Saya pernah merilis aplikasi iOS yang lebih sederhana dan lewat trafik organik mencapai sekitar 1.000 pengguna aktif harian, tetapi akhirnya saya tutup. Saya memasang satu in-app purchase untuk menghapus iklan seharga $1.99 atau $2.99, menghasilkan sekitar $70 per bulan sambil menangani laporan bug
    Saat itu SwiftUI belum matang, jadi harus memakai UIKit, dan saya terus berhadapan dengan edge case yang sulit diperbaiki
    Pukulan terakhirnya adalah ketika Google mengklaim saya mengklik iklan saya sendiri dan menghentikan penayangan iklan. Praktis semua pendapatan terputus, dan saya sadar bahwa sekalipun ini dibuat dengan sungguh-sungguh, pada akhirnya tetap bergantung pada kemauan perusahaan teknologi raksasa
    Apple mengambil 30% dari semua in-app purchase, pendapatan iklan hanya recehan, sementara Google bisa mematikannya tanpa alasan dan tidak ada cara untuk banding. Saya tidak berniat menghasilkan uang besar, tetapi saya butuh alasan untuk mencurahkan waktu dan energi, dan saya tidak bisa lagi membenarkannya

    • Google memutus iklan dengan alasan klik iklan sendiri terlihat seperti omong kosong yang terlalu kejam
      Saya tidak mengerti mengapa developer tidak dibiarkan mendaftarkan perangkat yang dikecualikan dari pendapatan, rentang IP, atau daftar lokasi. Pada akhirnya kita akan memakai aplikasi sendiri, dan dalam banyak kasus saat menggulir hampir mustahil untuk tidak sengaja menekan iklan
      Pengujian di lingkungan nyata juga penting, dan ada juga kemungkinan kecil iklannya benar-benar menarik sehingga kita mengklik secara sah sebagai calon pelanggan. Tetapi cara sekarang pada dasarnya berarti jangan memakai aplikasi sendiri
      Saya tidak tahu siapa yang diuntungkan selain developer atau manajer Google yang bersikeras mempertahankan kebijakan yang secara mendasar bodoh ini. Apakah benar sesulit itu menanganinya sedikit saja dengan benar
  • Musisi kamar yang selama 20 tahun tidak pernah tampil atau merilis album, atlet masa kecil yang tidak pernah menyentuh bola lagi setelah usia 18, pelari yang tidak ikut lomba, atau intelektual yang tidak mengajar juga bisa dipikirkan dengan cara serupa
    Dengan premis yang sama bahwa “keluaran eksternal = nilai,” ini bahkan bisa diperluas sampai manusia yang hidup puluhan tahun tetapi tidak memiliki anak. Itu bukan keyakinan saya, hanya saja secara alur logika demikian
    Namun penilaian semacam itu adalah konstruksi buatan manusia, dan tampak seperti cerminan perintah biologis untuk mengirim “anak kita” yang lama kita kandung ke dunia. Kita bertanya mengapa mereka tidak boleh mendapatkan hidupnya sendiri, dan berharap mereka terus menghasilkan pencapaian dengan sendirinya serta menambah benang ke masa depan
    Apakah mengikuti perintah itu merupakan puncak moral, etika, dan kesenangan? Bagi sebagian orang mungkin ya, dan saya tidak ingin menghakimi. Tetapi bagi sebagian orang, secara aneh, tidak demikian

  • Saya penasaran apakah ada niat menjual proyek ini. Konsepnya saya suka dan tampaknya ada pelanggan yang berminat, tetapi sepertinya tidak ingin memikul beban dukungan dan komersialisasi
    Saya sudah sekitar 1 tahun membuat pelacak aset (https://jch.app), tetapi fitur maupun pengalaman penggunanya masih jauh tertinggal
    Ini pekerjaan yang luar biasa, dan catatan mendalam tentang perjalanannya juga bagus. Saya juga menantikan apa yang akan muncul berikutnya dari rewind.ai

  • Ini tidak jauh berbeda dari begitu banyak orang yang mencurahkan waktu tanpa henti ke begitu banyak proyek yang tidak punya arti besar bagi siapa pun selain diri mereka sendiri. Seperti mengoprek sepeda atau mengutak-atik kereta model.
    Bedanya, aplikasi bisa dengan mudah dipublikasikan, didokumentasikan, dan diarsipkan seperti ini, sedangkan “waktu yang dihabiskan untuk memotong dan mengelas komponen sepeda aneh” sulit dilakukan seperti itu kecuali semuanya diunggah ke YouTube.
    Tentu saja banyak orang melakukannya, dan sampai batas tertentu itu juga bermakna, tetapi ketika hobi dan pencarian pribadi diubah menjadi produk dengan tujuan lain di luar dirinya sendiri, terkadang inti utamanya sedikit terlewat.
    Bukan berarti tulisan seperti ini keliru. Ia tidak terdengar mengeluh atau marah; seperti yang dikatakan di awal, kesannya lebih seperti “ingin mencatatnya di suatu tempat dengan cara apa pun.” Sebagian besar GitHub saya juga begitu.

    • Pernyataan bahwa apa yang mungkin terjadi menjadi titik acuan untuk menilai apa yang benar-benar terjadi itu cukup dalam.
      Penyesuaian standar evaluasi yang terlalu tergesa-gesa seperti ini bisa jadi kurang berguna karena mengaburkan hasil yang sebenarnya. Dalam kasus ini, penulis mudah merasa malu atas upaya yang “terbuang”, tetapi respons yang lebih tepat mungkin adalah bersyukur atas apa yang dipelajari.
      Pembelajaran dari proyek seperti ini sangat besar.
  • Yang menakutkan dari tulisan ini adalah karena saya terlalu banyak melihat diri saya sendiri di dalamnya. Tenggelam dalam membuat produk yang bagus, larut dalam identitas sebagai perajin, dan merasa enggan terhadap pendekatan “tanpa jiwa” berupa MVP yang cepat dan berantakan serta pengujian pasar berulang.
    Kalau pernah mengunjungi subreddit r/SaaS, itu adalah kebalikan total dari hal yang saya nikmati sebagai pengembang software.
    Namun saya juga tahu bahwa jika bisa mengubah pola pikir tentang pengujian pasar serta iterasi cepat dan berantakan, itu justru menjadi landasan yang lebih baik untuk merasa tenang dan fokus pada craftsmanship.

  • Saya paham. Saya sendiri masih membuat backend bank. Sudah 5 tahun, mencakup core, akuntansi, nasabah, rekening, pembayaran (SEPA dan kartu), notifikasi (mirip ServiceNow), screening sanksi, engine risiko dan monitoring, alur event, sampai reporting.
    Saya mulai curiga apakah saya gila atau bodoh karena mengambil pekerjaan raksasa seperti ini. Landing page saja belum saya rancang, dan kodenya kira-kira sudah sekitar 150 ribu baris.

    • Dari posisi saya yang berada di bidang ini, saya sangat menyarankan untuk secepat mungkin mulai berhubungan dengan calon pelanggan dan membangun kepercayaan.
      Meski platform lama punya banyak bug, keterbatasan, dan masalah keamanan, butuh jauh lebih dari 5 tahun untuk mendapatkan kepercayaan yang cukup agar pelanggan mau diyakinkan pindah ke platform core banking kami.
    • Saya juga pernah membuat solusi e-commerce yang mencakup pembayaran, REST messaging, server email (IMAP/SMTP), iklan afiliasi, serta pembayaran, reporting, dan access control sendiri. Saya sempat membangun seluruh solusi sampai tahap alpha, termasuk frontend web desktop dan mobile.
      Namun ketika aplikasi mobile menjadi penting, saya mulai membuat aplikasi native juga, dan itu sudah terlalu berlebihan. Pada akhirnya saya burnout bahkan sampai bangkrut, jadi saya tidak merekomendasikan proyek superbesar.
      Saya belajar banyak, tetapi pemborosan itu tidak sepadan. Waktu terlalu berharga untuk membangun ulang sebanyak itu. Sekarang saya hanya mengerjakan proyek “kecil” berdurasi maksimal 6–12 bulan.
    • Apakah kamu membuat backend bank sebagai side project? Menarik. Saya penasaran apakah ini lebih dekat ke proyek untuk bersenang-senang, atau ada tujuan komersial.
      Saya juga penasaran apakah ada kemungkinan akan menjadi open source.
    • Kamu harus merilisnya. Cukup unggah screenshot, daftar fitur, dan daftar fitur yang direncanakan secara terpisah, lalu buat form pendaftaran beta.
      Jika kamu tidak bisa merilis versi dasar setelah menghapus semua hal yang ingin kamu tambahkan, sebaiknya pertimbangkan untuk menaruhnya sementara.
      Selama lebih dari 20 tahun terakhir saya membuat banyak proyek dan produk, dan 2–3 di antaranya tumbuh besar. Yang lain punya ribuan pengguna tetapi tidak punya sumber pendapatan berkelanjutan.
      Salah satu yang menjadi bisnis menguntungkan dirilis sebagai versi “weekend build”, lalu dibangun bertahap selama 7 tahun setelahnya.
    • Kamu juga perlu bertanya pada diri sendiri, “Kalau sukses, bentuknya seperti apa?” Jika selama 5 tahun tidak ada pendapatan, mungkin kamu sudah terbiasa dengan tahap yang sekarang.
      Keadaan yang sudah familier bisa menjadi jebakan yang membuatmu terus menemukan pekerjaan pra-rilis. Karena itu, mungkin baik untuk membingkai ulang hal ini di dalam pikiranmu.
  • Baru-baru ini saya membaca bahwa Leonardo DaVinci adalah penunda yang luar biasa, dan punya sangat banyak proyek yang tidak selesai.
    Saya selalu mengaguminya karena ia begitu sukses di berbagai bidang, tetapi setelah mengetahui hal itu, pandangan saya berubah: penundaan adalah bagian dari diri kita sebagai orang-orang kreatif.
    Itu bisa dilihat sebagai kegagalan, tetapi juga bisa ditafsirkan ulang sebagai bagian dari proses. Pada akhirnya, kita menikmati membuat sesuatu.

  • Pada dasarnya ia menerima nasihat umum “buat MVP, rilis cepat, lalu iterasi”, lalu melakukan kebalikannya persis.

    • Setelah 10 tahun merilis pengalaman di bawah standar di perusahaan teknologi besar, fokus pada kualitas sebagai kebalikan persisnya memang dapat dimaklumi. https://paulstamatiou.com/craft/
    • Saya tidak tahu apakah nasihat itu juga berlaku untuk pengembang solo. Untuk produk yang secara tak terhindarkan maksimalis seperti aplikasi ini, setiap detail kecil harus kamu tanggung sendiri, jadi tidak ada yang namanya bergerak cepat.
  • Tulisan yang bagus tentang side project yang terlihat keren. Saya membacanya dengan tertarik lalu menemukan rewind.ai, dan ini juga terlihat bagus
    Untuk sesuatu yang berpotensi invasif seperti perekaman layar dan audio otomatis secara terus-menerus, privasi adalah hal utama, jadi saat melihat bagian “Privacy first” saya jadi punya pertanyaan
    Di sana tertulis, “Enkripsikan data Anda dengan FileVault. Apple FileVault bekerja bersama Rewind. Jika Anda menyalakannya, data Anda akan dienkripsi”; apakah Rewind melakukan sesuatu agar Apple FileVault “bekerja bersama Rewind”?
    Atau maksudnya enkripsi disk umum yang berlaku untuk semuanya? Ini pertanyaan serius. Saya ingin memakai Rewind, tetapi ungkapan ini bisa ditafsirkan seperti sekadar polesan pemasaran
    Kalimat “hanya data berbasis teks yang relevan yang dikirim ke cloud dan dienkripsi saat transit” juga terasa serupa. Apakah “dienkripsi saat transit” berarti enkripsi TLS standar? Rewind terlihat bagus, tetapi harus bisa dipercaya

    • Di situs web Rewind tertulis seperti ini
      “Tidak perlu integrasi cloud. Semuanya bekerja otomatis tanpa perlu menghubungkan ke berbagai layanan seperti Gmail, Dropbox, Slack”
      Namun jika melihat rincian resmi kebijakan privasi di https://www.rewind.ai/privacy, tertulis begini
      “[Item yang dikumpulkan:] Informasi yang dihasilkan OpenAI. Sebagai bagian dari integrasi OpenAI Rewind AI, kami juga dapat mengumpulkan output yang dihasilkan OpenAI, termasuk ringkasan transkripsi dari rekaman audio dan data lain yang dihasilkan integrasi OpenAI”
      Jadi meskipun “integrasi cloud tidak diperlukan”, apakah audio saya dibagikan dengan OpenAI?
      Selain itu, di https://www.rewind.ai/privacy-first tertulis “Apa yang terjadi saat Anda mencari di Rewind? Semua data rekaman tetap lokal”
      Saya tidak tahu mana yang benar. Saya ingin mempercayai Rewind, tetapi inkonsistensi dalam penjelasan tentang bagaimana data pengguna diproses membuat saya ragu
    • Terima kasih sudah memberi tahu. Sepertinya halaman itu perlu diperbarui, dan kami juga memiliki enkripsi sendiri. Detailnya ada di sini: https://help.rewind.ai/en/articles/7242593-is-the-rewind-dat...