Appointy 9: Mengapa Kami Menghapus Kode yang Membutuhkan 9 Tahun Untuk Pembuatannya
Diterbitkan: 2017-02-17Blog ini adalah tentang mengapa dan bagaimana kami dapat menghapus kode kami yang berusia 9 tahun dan mulai berpikir segar.
Bab Satu: Penunjukan Dalam Pembuatan
Antara 2004 dan 2006, kami biasa mengembangkan situs web di atas WordPress untuk industri kesehatan dan kebugaran. Ada plugin WordPress untuk hampir semua kebutuhan – kecuali plugin penjadwalan. Kami mendapat begitu banyak permintaan untuk plugin penjadwalan yang tidak dapat kami ikuti!
Jadi, kami menulis skrip kami sendiri . Sebuah skrip yang memungkinkan kita menghemat waktu dengan tidak harus membuat kode yang sama berulang kali. Salah satu tantangan pertama yang kami hadapi adalah bahwa setiap vertikal memiliki persyaratan khusus. Jadi, kami membuat aturan penjadwalan untuk menggeneralisasi skrip kami untuk vertikal yang berbeda.
Segera permintaan untuk penjadwalan meningkat dan Appointy pertama kali ditayangkan pada Januari 2008 dengan konsep "Lakukan Sendiri".
Sayangnya, dalam semangat kami untuk menyenangkan setiap pelanggan, kami terus menambahkan fitur dan Appointy menjadi luar biasa. Dan kemudian, pelanggan yang sama mulai mengeluh. Kami menyadari bahwa kami bergerak menjauh dari konsep Do-it-Yourself. Jadi kami kembali ke papan gambar dengan ide untuk membuatnya sederhana lagi sambil mempertahankan fungsionalitasnya.
Kami menghabiskan satu tahun penuh. Tapi kami mendapat pelajaran penting.
Appointy adalah perusahaan bootstrap (tidak pernah mengumpulkan dana eksternal) dan harus menghasilkan uang dari pelanggan untuk bertahan hidup . Kami percaya bahwa cara terbaik untuk menghasilkan uang adalah dengan menyelesaikan masalah seseorang terlebih dahulu dan kemudian meminta harga yang wajar. Semakin kami dapat membantu pelanggan kami, semakin kami akan tumbuh.
Kami mulai meningkatkan proses orientasi dan dukungan kami. Tetapi kami segera menyadari bahwa setiap bisnis bersifat unik dan membutuhkan sesuatu yang berbeda. Itu hanya berarti bahwa kami tidak hanya perlu menambah tim dukungan kami, tetapi juga bahwa kami perlu mendapatkan lebih banyak programmer. Kami membutuhkan cara untuk menskalakan secara vertikal di semua departemen.
Kami mulai mempekerjakan lebih banyak programmer. Setelah beberapa bulan, selama pertemuan scrum, seorang anggota tim baru berbagi bahwa dia senang bahwa sesuatu yang dia tulis telah ditayangkan di situs produksi kami. Baginya, itu pasti sebuah pencapaian. Namun, saya tidak senang. Saya menyadari bahwa ada yang salah dalam pengaturan kami jika diperlukan waktu berbulan-bulan bagi pemrogram baru untuk menjadi produktif.
Sudah waktunya untuk keluar dari kenyamanan dan mengambil beberapa keputusan berani. Kami tidak bisa menskalakan secepat yang kami inginkan pada tingkat ini!
Bab 2: Keputusan yang Sulit Tapi Hebat
Hari berikutnya, saya berbicara dengan beberapa orang senior dan mencoba memahami masalahnya. Masalahnya datang ke arsitektur yang kami buat 9 tahun yang lalu. Teknologi berubah setiap tahun dan secara teknis, kami hampir 9 tahun tertinggal .
Direkomendasikan untukmu:
Saya tidak tahu bagaimana memberi tahu tim saya untuk mengubah seluruh kode yang telah mereka tulis selama 9 tahun. Saya tidak ingin terlihat gila dan memutuskan untuk terjun sendiri. Lagi pula, saya sendiri pernah menjadi seorang programmer (dan cukup bagus dalam hal itu!

Saya selalu menuliskan tujuan sebelum memulai tugas baru. Jadi inilah tujuan saya – Membuat arsitektur modular dengan kurva belajar kurang dari seminggu dan mengembangkan aplikasi yang sangat cepat. Jika Google dapat mengambil hasil yang tepat dari triliunan baris dalam waktu kurang dari satu detik, lalu mengapa Appointy tidak?
Saya menemukan istilah RxJS di Angular.io. Mengikuti topik selama beberapa jam dan sangat menyukai ide streaming data. Konsepnya sederhana – apakah Anda akan menonton video di Youtube jika Anda harus menunggu 5 menit setiap kali ingin menonton?
Saya memutuskan untuk mencobanya tetapi kenyataannya saya tidak bisa melakukannya sendiri. Saya akan membutuhkan bantuan dari orang-orang senior.
Hari berikutnya, saya hanya menjelaskan konsep streaming kepada tim saya dan mencoba membuat minat. Selama beberapa hari berikutnya, saya melanjutkan proses sampai bintang rock kami (yang merupakan programmer yang jauh lebih baik daripada saya sekarang) mengambil ritme. Benih perubahan pertama telah ditaburkan .
Dalam beberapa hari, kami dapat menerapkan seluruh konsep streaming dalam kode Appointy yang ada. Seperti yang diharapkan, itu bekerja dengan baik, tetapi tidak bagus. Kami perlu berbuat lebih banyak.
Bab 3: Ketegangan Terungkap
Ada dua masalah lagi yang masih perlu ditangani
- Antarmuka Pengguna dan Pengalaman Pengguna (UX/UI).
- Kecepatan pemuatan.
1,5 bulan sudah berlalu dan kami baru mendapatkan ilmu . Belum ada tindakan. Saya tidak dapat meminta orang-orang senior untuk mengerjakan UX/UI dan mereka akan tahu bahwa kami mencoba untuk menghapus kode lama dan saya tidak tahu apa yang akan terjadi kemudian.
Jadi, saya memutuskan untuk bekerja dengan salah satu pekerja magang yang kami sewa. Magang baru ini memiliki pendekatan yang berbeda untuk pengkodean . Dia ingin cepat, lebih cepat dari orang lain. Dia membantu saya mengimplementasikan alat sehingga saya dapat memeriksa perubahan secara langsung dan memberinya umpan balik secara instan. Kami berdua mulai datang lebih awal pada pukul 6 pagi dan pada saat kantor kami akan mulai bekerja, kami sudah bekerja beberapa jam. Produk baru mulai terbentuk.
Setelah beberapa hari, saya menyadari bahwa semuanya bekerja dengan baik. Kami berada di jalur dan sudah waktunya untuk berbicara dengan seluruh tim. Sekarang saya memiliki beberapa bukti konsep untuk membenarkan bahwa kode 9 tahun dapat dihapus tetapi tidak tanpa tim bintang rock kami.
Hari itu tiba. Kami menunjukkan UI baru dan menjelaskan langkah selanjutnya untuk ditayangkan. Tim bintang rock kami mulai percaya bahwa itu bisa dicapai. Itu saja yang dibutuhkan.
Sekarang setelah 4 bulan, versi pertama kami sedang dalam tahap pengujian.
Hasil
- Kami dapat mengurangi waktu buka "Area Admin" dari 10 detik menjadi 2 detik. (Ya, 5 kali lebih cepat!!)
- Kami dapat mengurangi beban di server kami hingga 50%.
- Kami bisa mendapatkan programmer baru yang produktif dalam waktu seminggu.
- Akhirnya, saya punya waktu untuk menulis blog!
Apa berikutnya?
- Langkah pertama adalah mem-port perangkat lunak yang ada. Langkah selanjutnya adalah membangun fitur yang sangat dibutuhkan (Kami telah mengumpulkan permintaan fitur dari pelanggan kami dan daftar prioritas kami sudah siap).
- API kami siap yang dapat digunakan oleh tim kami atau tim eksternal untuk mengintegrasikan berbagai aplikasi. Misalnya, kita tidak perlu lebih dari seminggu untuk menambahkan gateway pembayaran baru lagi.
- Kami akan memiliki lebih banyak bandwidth untuk bekerja sama dengan perusahaan lain yang dapat menambah nilai lebih bagi bisnis Anda. Kami telah bekerja sama dengan Pesan dengan Google untuk membantu Anda mendapatkan pelanggan baru.
PS: Selama 4 bulan ini, kami tidak hanya membuat Appointy dari awal tetapi juga berhasil membuat produk penjadwalan ruang konferensi lain dari awal. Kami menjualnya seharga $130K bahkan tanpa menemui pelanggan secara langsung.
[Postingan oleh Nemesh Singh ini pertama kali muncul di blog resmi dan telah direproduksi dengan izin.]






