Bagaimana konservatisme teknis membantu kami meningkatkan skala lebih cepat dan lebih baik
Diterbitkan: 2022-07-21Di Intercom, kami fokus pada masa depan, dan kami mengambil langkah berani untuk mencapainya. Tetapi ketika kami membuat keputusan teknis, kami ingin menjadi konservatif.
Dalam praktiknya, secara teknis konservatif terlihat seperti menggunakan kembali teknologi dan kerangka kerja yang ada di tumpukan kami, atau mempromosikan pola dan solusi yang telah dicoba dan diuji. Kami menghargai keakraban ini karena kami memahami bahwa masalah penting yang harus dipecahkan adalah masalah yang memberikan nilai kepada pelanggan atau bisnis.
Alih-alih mengevaluasi teknologi baru dan menghabiskan waktu untuk menyelesaikan masalah operasional yang pada akhirnya memberikan sedikit nilai bagi pelanggan, kami dapat berfokus pada peningkatan produk dengan membangun, merilis, dan mengulangi solusi.
Ini adalah posting keenam dalam seri yang mengeksplorasi prinsip-prinsip produk kami . Di sini, Waheed membahas prinsip teknik kami "Jadilah konservatif secara teknis".
Ada banyak manfaat jangka panjang dari konservatisme teknis
Prinsip ini paling baik diilustrasikan dengan beberapa contoh selama bertahun-tahun, yang menunjukkan bagaimana “ Jadilah konservatif secara teknis” memungkinkan kita untuk menskalakan dengan cepat sementara pada akhirnya tidak menjadi kendala. Saya telah berbicara sebelumnya tentang pengalaman kami merancang sistem pelaporan kami, di mana kami mengevaluasi manfaat dari memperkenalkan penyimpanan data baru ke tumpukan kami – Redshift. Itu berarti memperkenalkan jenis database baru ke sistem kami yang belum pernah diuji terhadap produksi. Selain itu, kami harus menghabiskan banyak waktu untuk membangun pengetahuan operasional, mempertahankan klaster dalam produksi, dan menangani masalah tak terduga dari mengoperasikan Redshift dalam skala besar.
“ Kami memanfaatkan infrastruktur yang ada untuk mempercepat proses dari perkiraan enam bulan menjadi hanya enam minggu”
Pada akhirnya, kami memutuskan bahwa penyimpanan data yang sudah dikenal lebih cocok untuk pekerjaan itu. Kami memanfaatkan infrastruktur Elasticsearch yang ada, yang mendukung sebagian besar kemampuan pencarian Intercom, untuk mempercepat proses dari perkiraan enam bulan menjadi hanya enam minggu.
Versi awal sistem pelaporan dikirimkan beberapa tahun yang lalu sehingga kami memiliki kesempatan untuk merenungkan beberapa manfaat jangka panjang dari penerapan konservatisme teknis kami dalam kasus tersebut:
Kami memecahkan masalah pelanggan lebih cepat
Menggunakan infrastruktur kami yang ada berarti kami menghindari menghabiskan waktu untuk membiasakan diri dengan penyimpanan data baru dan menangani semua masalah yang tak terhindarkan. Kami dapat segera fokus pada masalah pelanggan yang harus diselesaikan, dan dikirim dengan cepat, mengurangi waktu pengiriman lebih dari empat bulan.
Kami memanfaatkan waktu tim sebaik-baiknya
Tim Infrastruktur Data kami dapat terus fokus pada serangkaian teknologi kecil yang sudah dikenal, alih-alih tersebar di berbagai teknologi. Akibatnya, mereka memiliki – dan masih memiliki – lebih banyak waktu untuk memastikan kesehatan sistem kami yang ada dan mengoptimalkan penggunaan setiap teknologi kami.
“ Karena set teknologi kami relatif kecil, peningkatan terjadi secara teratur”
Kami menambah nilai peningkatan yang sedang berlangsung
Karena rangkaian teknologi kami relatif kecil, peningkatan terjadi secara teratur. Produk memanfaatkan teknologi tersebut, sehingga dampak dari peningkatan tersebut diperparah di semua hal yang dibangun di atasnya. Peningkatan kecil dapat memiliki efek riak positif yang besar di seluruh produk.
Lebih banyak tim memiliki lebih banyak masukan
Menggunakan teknologi umum berarti lebih banyak insinyur dan tim merasa percaya diri dan diberdayakan untuk bekerja dengan mereka. Kami sering melihat peningkatan produk pelaporan dari tim di seluruh perusahaan, bukan hanya satu tim yang memiliki bagian tertentu dari sistem.
Ingatlah bahwa prinsip bukanlah aturan, melainkan pedoman
Prinsip adalah cara yang luar biasa untuk menyelaraskan tim dan telah memberikan hasil yang luar biasa bagi Intercom. Tetapi ada kalanya mungkin lebih masuk akal untuk tidak mengikuti mereka. Sebagai skala perusahaan, ada risiko bahwa beberapa anggota tim akan mengikuti prinsip secara dogmatis atau menafsirkannya secara salah. Gagal dalam konservatisme teknis tidak berarti bahwa kita tidak pernah memperkenalkan sesuatu yang baru.
“Konservatisme teknis berarti mendukung teknologi yang sudah ada di tumpukan Anda – tetapi hanya jika itu adalah pilihan terbaik”
Konservatisme teknis berarti menyukai teknologi yang sudah ada di tumpukan Anda – tetapi hanya jika itu adalah pilihan terbaik. Dalam beberapa situasi, teknologi yang ada mungkin tidak cocok. Jika tidak dapat menjawab pertanyaan berikut, kami mungkin melihat lebih jauh dan mengevaluasi alternatif:
- Apakah alat baru ini memungkinkan bisnis Anda berkembang lebih efektif?
- Apakah ini memungkinkan tim atau organisasi Anda bergerak lebih cepat dan memberikan nilai lebih cepat?
- Apakah itu memecahkan masalah pelanggan yang tidak dapat diselesaikan dengan alat Anda yang ada?
Jika Anda menjawab "ya" untuk salah satu dari ini, mungkin ada baiknya mempertimbangkan untuk memperkenalkan alat baru itu. Di Intercom, ada contoh terbaru yang menjawab "ya" untuk ketiga pertanyaan tersebut.

Pengguna, atau pelanggan pelanggan kami, adalah inti dari platform Intercom. Seiring dengan pertumbuhan kami, demikian pula pelanggan kami dan kebutuhan mereka dalam hal berapa banyak data pengguna yang mereka simpan di dalam Intercom. Jumlah besar data pengguna menyebabkan masalah penskalaan dengan penyimpanan data pengguna kami saat ini, dan untuk memastikan kami dapat terus mendukung pelanggan lama dan baru, kami perlu memikirkan kembali solusi kami saat ini. Hal itu akhirnya mendorong kami untuk memperkenalkan teknologi baru ke tumpukan kami – inilah cara kami sampai pada keputusan ini.
Kami melakukan penskalaan lebih cepat dari yang diizinkan oleh penyimpanan data kami
Kami telah menggunakan MongoDB selama kira-kira lima tahun dan memiliki bekas luka operasional untuk membuktikannya. Kami telah mengoptimalkan setiap aspek dalam memiliki dan menjalankannya – mulai dari jenis perangkat keras yang digunakannya, hingga kueri yang kami jalankan di dalamnya. Kami berada di titik pengembalian yang semakin berkurang dan melihat sinyal kuat bahwa itu akan berhenti sesuai untuk tujuan dalam beberapa tahun - dan bahkan mungkin menjadi hambatan dalam pertumbuhan perusahaan.
“Pikirkan secara teratur tentang lintasan bisnis Anda dan tanyakan ' Apakah apa yang membawa kita ke sini, membawa kita ke sana? '. Ini akan memungkinkan Anda untuk proaktif tentang pilihan Anda daripada reaktif ”
Di sinilah memiliki strategi teknis yang kuat dan berpikiran maju adalah kuncinya. Pada titik ini kami memiliki cukup data untuk menyarankan bahwa kami mungkin perlu mengevaluasi pendekatan lain dan memiliki landasan untuk melakukannya. Pikirkan secara teratur tentang lintasan bisnis Anda dan tanyakan "Apakah apa yang membawa kita ke sini, membawa kita ke sana?". Ini akan memungkinkan Anda untuk proaktif tentang pilihan Anda daripada reaktif, dan mengurangi risiko di sekitar ketidaktahuan yang tidak diketahui dalam memperkenalkan teknologi baru.
Teknologi kami memperlambat tim kami
Di Intercom, kami berusaha untuk menjalankan lebih sedikit perangkat lunak. Dalam hal ini, meskipun kami mengadopsi teknologi baru dengan ketidaktahuan yang tidak diketahui, mengadopsi DynamoDB memungkinkan kami melakukan hal itu.
Sebelumnya, kami mengelola sendiri penskalaan MongoDB bersama dengan kode untuk menyeimbangkan beban – overhead yang signifikan bagi tim. Bagian yang menarik dari DynamoDB adalah dikelola oleh vendor, AWS. Ini berarti, meskipun ada biaya awal untuk mengadopsinya, pada akhirnya akan lebih murah dan menghemat banyak waktu dan tenaga tim.
“Tidak bersikap dogmatis tentang konservatisme teknis memungkinkan kami mengganti teknologi dengan biaya besar dan kemampuan terbatas”
Ini mungkin tampak berlawanan dengan intuisi, tetapi memperkenalkan teknologi baru pada akhirnya membuat kami menjalankan lebih sedikit perangkat lunak. Tidak bersikap dogmatis tentang konservatisme teknis memungkinkan kami untuk mengganti teknologi dengan overhead besar dan kemampuan terbatas dengan teknologi baru yang tidak terlalu membebani operasional dan lebih terukur.
Kami kejam tentang persyaratan
Kami terkadang memerlukan MongoDB untuk melakukan kueri yang kompleks dan mahal yang mempertaruhkan ketersediaan dan kinerja kueri yang lebih umum tetapi tidak terlalu kompleks. Saat mengevaluasi DynamoDB, kami menyadari bahwa DynamoDB tidak akan mendukung kueri yang rumit dan mahal tersebut, tetapi akan jauh lebih baik pada kueri yang lebih sederhana dan umum.
Kami sebagian besar sudah menggunakan Elasticsearch untuk melakukan kueri yang kompleks, dan kebutuhan untuk bermigrasi memaksa kami untuk meninjau dan lebih sengaja menentukan kemampuan yang kami butuhkan dari toko pengguna kami dan pada akhirnya memungkinkan kami untuk meningkatkan kinerja untuk kasus penggunaan utamanya: mengambil catatan pengguna tunggal.
“Ketika berpikir untuk mengganti teknologi, jangan anggap remeh bahwa Anda akan menggunakan teknologi baru dengan cara yang sama”
Saat berpikir untuk mengganti teknologi, jangan anggap remeh bahwa Anda akan menggunakan teknologi baru dengan cara yang sama. Persyaratan Anda kemungkinan akan banyak berubah dari waktu ke waktu, dan sisa tumpukan akan berkembang atau matang sehingga kasus penggunaan menjadi lebih sempit. Ini akan membuka peluang untuk mengadopsi teknologi yang lebih fokus, berkinerja, atau membongkar beberapa teknologi untuk dikelola oleh vendor.
Jadikan prinsip Anda bekerja untuk bisnis Anda, bukan sebaliknya
Konservatisme teknis adalah alat yang hebat untuk memungkinkan tim Anda tetap fokus pada apa yang penting – memecahkan masalah pelanggan dan memberikan nilai tanpa menghabiskan sumber daya berharga untuk menjawab pertanyaan yang telah dijawab.
Namun, menjadi terlalu kaku dengan keyakinan bahwa memperkenalkan teknologi baru itu buruk dapat mencegah Anda memanfaatkan teknologi yang akan membantu Anda menjalankan lebih sedikit perangkat lunak dan menskalakan dengan lebih mudah dan cepat. Penting untuk menerapkan prinsip ini dengan cara yang paling sesuai untuk tim Anda, dan bisnis Anda, dalam jangka panjang.
Apakah Anda tertarik untuk bergabung dengan tim teknik Intercom? Cari tahu lebih lanjut dan lihat peran terbuka kami di sini.