5 Cara Untuk Memperbaiki Entropi Perangkat Lunak Untuk Startup

Diterbitkan: 2019-01-21

Startup menguras sebagian besar sumber daya mereka untuk mencapai pasar sesegera mungkin

Kualitas yang baik membutuhkan banyak waktu dan biaya untuk mencapainya, dan di sinilah kebanyakan startup menderita

Tulis dan tulis ulang bagian integral dari kode dan biasakan untuk melakukannya saat Anda maju

“'Startup' adalah perusahaan yang bingung – 1. Apa produknya, 2. Siapa pelanggannya 3. Bagaimana cara menghasilkan uang.” – Dave McClure, Pendiri 500 Startup

Selama perjalanannya, sebuah startup teknologi memiliki tiga pengungkit kesuksesan: biaya, kecepatan, dan kualitas.

Sayangnya, Anda hanya dapat memilih dua sekaligus. Jadi, jika Anda memilih kecepatan dan biaya, Anda mungkin harus mengorbankan kualitas. Atau, jika Anda memilih kecepatan dan kualitas, kemungkinan biayanya jutaan. Pilihan dua dari tiga ini mengarah ke entropi perangkat lunak, yang merupakan kasus "apa yang telah dilakukan tidak dapat dibatalkan," seperti yang dikatakan Lady Macbeth, atau dalam istilah teknologi, Anda akan mengatakan, "Dalam sistem tertutup seperti teknologi perangkat lunak, menipisnya kualitas produk tidak dapat ditingkatkan selama periode waktu tertentu.”

Kami akan membahas lebih lanjut tentang entropi perangkat lunak, faktor-faktor yang menyebabkannya, dan solusi yang mungkin. Sebelum itu, penting untuk memahami apa yang menyebabkan entropi perangkat lunak.

Tiga Pengungkit Startup

Kecepatan

Setelah Anda masuk ke perairan startup, Anda menyadari bahwa waktu adalah sumber daya yang paling terbatas dari ketiga faktor yang disebutkan di atas. Sampai sebuah startup mulai melihat beberapa daya tarik dalam hal pendapatan, itu tidak pernah disebut perusahaan.

Untuk memanfaatkan jumlah bootstrap dengan sebaik-baiknya, produk cepat yang biasanya disebut 'versi beta' dan sering kali "kualitas lemah" (dibandingkan dengan produk tujuan), dirilis untuk merebut pasar sedini mungkin.

Startup menghabiskan sebagian besar sumber daya mereka untuk mencapai pasar sesegera mungkin, mengerahkan segala upaya untuk mencapai 'kecepatan', yang dalam banyak hal merupakan tuas paling populer dari ketiganya.

Biaya

Jika dibandingkan dengan waktu, biaya itu nyata dalam segala hal. Ini adalah detak jantung dari sebuah startup.

“Hanya ada dua prioritas untuk startup: Memenangkan pasar dan tidak kehabisan uang.” – Ben Horowitz

Semakin banyak saldo di akun Anda, semakin lama Anda bertahan. Selama fase awal startup, sebagian besar sumber daya dihabiskan untuk mengatur aset penting (baca juga kewajiban) untuk organisasi Anda, seperti membayar kantor, furnitur, internet, gaji, dan banyak lagi.

Lebih sering daripada tidak, perusahaan rintisan berjuang untuk membayar pengembang teratas dari industri karena keterbatasan anggaran. Biasanya, pembuat kode teratas atau manajer senior dibiarkan nanti, dengan tujuan mempekerjakan mereka saat uang mengalir masuk.

Kualitas

Pekerjaan yang baik itu mahal, pekerjaan yang hebat lebih mahal, dan pekerjaan yang berkualitas datang dengan biaya yang luar biasa. Kualitas adalah yang paling sulit untuk dicapai. Kualitas yang baik membutuhkan banyak waktu dan biaya untuk mencapainya. Dan di sinilah kebanyakan startup menderita.

Sebagian besar startup memulai dengan dana terbatas dan berusaha menghasilkan keuntungan sesegera mungkin. Mereka bertujuan untuk siap produksi dan menjual sebelum kehabisan modal. Sampai perusahaan berada pada tahap pertumbuhan, seorang wirausahawan berusaha untuk berproduksi dengan cepat dan menembus pasar. Hal ini memungkinkan perusahaan rintisan untuk memperoleh pangsa pasar dan berkolaborasi untuk membangun umpan balik pelanggan.

Sebagian besar perusahaan memulai dengan 'versi beta' yang dapat menghasilkan daya tarik dan mendanai kebutuhan mereka saat mereka naik tangga di pasar yang ditandai dengan persaingan ketat untuk produk mereka.

Startup biasanya mempekerjakan pengembang dan insinyur baru (sedikit yang memiliki anggaran untuk mempekerjakan pengembang senior) yang memahami persyaratan mereka, memiliki rasa pengembangan, dan dapat membuat produk dengan sumber daya paling sedikit. Dan tidak diragukan lagi, pengembang ini datang dengan biaya lebih rendah. Mereka mudah dibentuk dan seringkali dapat bekerja dalam shift yang aneh.

Raghav Chandra, Co-founder/CTO, Urbanclap, mengatakan

“Kualitas sering dipandang sebagai kompromi pada kecepatan (sprint yang lebih lama, lebih banyak penulisan/pengujian kode, dll.) dan biaya (lebih banyak insinyur, infra kualitas yang lebih baik, dll.). Namun, pada tahap yang lebih muda, kualitas yang baik merupakan dorongan besar untuk kecepatan dan biaya.

Kualitas memiliki banyak aspek: desain arsitekturalnya (!= infra) yang memainkan pengaruh terbesar di masa-masa awal.

Pengurangan waktu terbesar terjadi baik saat menemukan bug (melalui rantai panggilan) atau membangun fitur pada kode yang dirancang dengan buruk – baik produk dari pemisahan yang buruk dan pemeliharaan perangkat lunak.”

Ketika perusahaan mulai tumbuh dan menghasilkan keuntungan, persyaratan untuk membangun produk yang stabil muncul. Versi sebelumnya dari produk yang dibuat perlu ditingkatkan, dan kode harus dikerjakan ulang.

Ketika pelanggan mulai muncul, kualitas segera menjadi prioritas. Untuk meningkatkan kualitas ini, seorang karyawan dengan lebih banyak pengalaman dan pemahaman yang lebih baik tentang pasar ditambahkan ke tim. Pengembang senior yang datang dengan biaya lebih besar dipekerjakan untuk mengerjakan produk yang ada. Pengembang ini menghabiskan sebagian besar waktu mereka untuk meningkatkan baris kode lama sambil juga dengan cepat mengembangkan fitur baru yang berkualitas tinggi.

Memperbaiki baris kode lama untuk mengembangkan fitur baru, sebagian besar pengembang berjuang untuk mendapatkan hasil yang diinginkan. Tetapi seiring berjalannya waktu, dan dengan semua upaya tim untuk meningkatkan suatu produk, kualitasnya menolak untuk ditingkatkan.

Faktor ini disebut entropi perangkat lunak .

Apa itu entropi perangkat lunak?

Berdasarkan definisi Wikipedia, sehubungan dengan hukum kedua termodinamika dalam sistem tertutup (di mana tidak ada input atau output yang dibuat), gangguan tidak dapat dikurangi selama periode waktu tertentu.

Hukum ini tampaknya relevan bahkan dalam kasus sistem perangkat lunak; karena suatu sistem dimodifikasi selama periode waktu tertentu, ketidakteraturannya hanya cenderung meningkat daripada berkurang dengan segala upaya.

Saat pengembang baru mencoba meningkatkan bagian kode yang ada untuk meningkatkan kualitas, kualitas produk semakin jauh dari hasil yang diinginkan. Karena modifikasi dibuat untuk memperbaiki baris kode yang ada, "entropi" terus meningkat, mengarah ke kode yang lebih kompleks yang sulit untuk diperbaiki. Ini sering menyebabkan frustrasi di antara para pengembang dan insinyur perangkat lunak. Sebagian besar waktu, perusahaan rintisan yang sedang berkembang mengambil rute yang sulit untuk menulis kode dari awal untuk memperbaiki entropi ini.

Direkomendasikan untukmu:

Pengusaha Tidak Dapat Menciptakan Startup yang Berkelanjutan dan Terukur Melalui 'Jugaad': CEO CitiusTech

Pengusaha Tidak Dapat Menciptakan Startup yang Berkelanjutan dan Skalabel Melalui 'Jugaad': Cit...

Bagaimana Metaverse Akan Mengubah Industri Otomotif India

Bagaimana Metaverse Akan Mengubah Industri Otomotif India

Apa Arti Ketentuan Anti-Profiteering Bagi Startup India?

Apa Arti Ketentuan Anti-Profiteering Bagi Startup India?

Bagaimana Startup Edtech Membantu Meningkatkan Keterampilan & Mempersiapkan Tenaga Kerja untuk Masa Depan

Bagaimana Startup Edtech Membantu Tenaga Kerja India Meningkatkan Keterampilan & Menjadi Siap Masa Depan...

Saham Teknologi Zaman Baru Minggu Ini: Masalah Zomato Berlanjut, EaseMyTrip Posting Stro...

Startup India Mengambil Jalan Pintas Dalam Mengejar Pendanaan

Startup India Mengambil Jalan Pintas Dalam Mengejar Pendanaan

Dalam buku The Pragmatic Programmer: From Journeyman to Master, Andrew Hunt dan David Thomas menulis,

“Entropi perangkat lunak menular dan jika tidak dikendalikan, menjadi epidemi.”

Lalu, bagaimana kita bisa memperbaiki masalah dan apa langkah terbaik untuk mempekerjakan pengembang yang dapat menghasilkan pekerjaan berkualitas dalam waktu dan anggaran yang lebih sedikit?

Jadi, haruskah startup fokus pada biaya, kecepatan, atau kualitas?

Anand Thaker, CEO & Pendiri, Intelliphi mengatakan,

“Kualitas sistem harus mencapai ambang batas minimum sehingga tidak membuat pusing terus-menerus dengan pengalaman pengguna”

Ada pengecualian di mana sistem mengoperasikan operasi kritis atau hidup-mati.

Selama tahap awal ini, startup masih mencari tahu kecocokan pasar produk mereka. Dalam dunia berbasis SaaS yang bising dan sangat kompetitif, kesesuaian pasar produk membuat atau menghancurkan sebuah startup. Selain itu, dinamika tim dan kepemimpinan tim juga sedang berkembang pesat. Startup ramping gagal-cepat-murah adalah filosofi yang baik untuk alasan itu. Anggap saja itu tantangan entropi pertama.

Ketika pasar produk menjadi padat, sebuah startup merencanakan pembangunan kembali kualitas pada sebagian atau seluruh platform sepenuhnya. Pada titik ini bergerak maju, upaya kualitas yang diterjemahkan ke pengalaman pelanggan yang lebih baik berdampak pada pertumbuhan. Pertumbuhan yang baik memberikan pendanaan dan retensi pelanggan yang lebih besar.

Secara pribadi, saya menyukai startup yang dipimpin produk dan pendiri startup. Biasanya, solusi dan visinya kuat dan pendekatannya menggabungkan ketahanan… dan jalan keluar dan kelipatannya jauh lebih besar (3 hingga 5 kali lebih banyak daripada startup biasa lainnya). Untuk jenis startup/founder ini, mereka sangat mungkin untuk menghormati entropi, namun, bahkan pemahaman mereka tentang tahap awal adalah tentang kecepatan dan kecocokan untuk mendapatkan momentum awal yang kritis.”

Bagaimana startup dapat mengurangi entropi perangkat lunak?

Mulailah dengan teknologi minimal

UrbanClap CTO berbicara tentang penggunaan teknologi minimal dan dapat digunakan kembali sebagai “ketidakmampuan untuk memisahkan masalah dengan benar yang mengarah pada desain tim yang buruk dan membengkak serta biaya infra yang terlalu tinggi. Untuk mengatasinya dengan baik, pengaruh terbesar dan terpenting adalah menguasai budaya desain arsitektur yang disengaja.

  • budaya tinjauan desain yang kuat yang berfokus pada modularitas dan desain yang disengaja untuk digunakan kembali
  • kerangka kerja di atas pedoman – dengan tim kecil, penginjilan praktik terbaik adalah proses yang lambat. Lebih baik "mengotomatiskan" praktik terbaik oleh para insinyur yang membangun kerangka kerja dan alat untuk menstandarisasi berbagai bagian teknik."

Sebagian besar startup memulai dengan ide tertentu, dan berkembang selama periode tertentu, menambahkan ide, fitur baru, dan terkadang berubah menjadi produk yang sama sekali baru. Pastikan bahwa teknologi A yang Anda gunakan pada hari-hari awal pendirian Anda kompatibel dengan teknologi B yang dapat digabungkan dengan teknologi C yang mungkin Anda gunakan di masa mendatang.

Seiring berkembangnya visi perusahaan, begitu pula produk, dan berbagai teknologi diperkenalkan (atau terganggu) selama perjalanan ini. Pastikan Anda menggunakan teknologi minimal hingga produk Anda stabil dan siap digunakan. Optimalkan kode Anda.

Pertimbangkan pengoptimalan kode

Tulis dan tulis ulang bagian integral dari kode dan biasakan untuk melakukannya saat Anda maju. Ini membantu Anda melacak semua kode yang ditayangkan di bagian belakang produk yang mengilap.

Menulis bagian integral dari kode membantu karyawan baru merevisi bagian penting sebelum mengirimkan komit baru. Bagian integral membantu membedakan bagian kode yang baik dari yang buruk.

Periksa kembali komit

Pernah melakukan kode? Jika tidak, masukkan ke dalam daftar ember Anda.

Ini adalah ukuran upaya dan komitmen yang diberikan pengembang ke dalam sebuah organisasi. Kode komitmen pertama dirayakan di sebagian besar startup. Saatnya untuk memeriksa ulang komit ini. Bukan yang pertama, bukan yang terakhir, tapi semuanya.

Jadikan wajib bagi rekan-rekan untuk memeriksa semua komit kode untuk memastikan tidak ada kebutuhan yang terlewat dalam mengeluarkan kode kualitas terbaik.

Jangan lupa alat penilaian saat merekrut

Selama periode waktu tertentu, Anda akan menyadari bahwa Anda tidak dapat membenarkan kualitas kode yang buruk kepada klien Anda, menyalahkan waktu dan biaya.

Menggunakan perangkat lunak penilaian teknologi dari karyawan pertama Anda memastikan bahwa Anda berurusan dengan karyawan yang memahami kebutuhan Anda dan mampu memberikan hasil di bawah tekanan.

Setiap perekrutan yang salah di startup menelan biaya hampir $ 18.000, mulai dari gaji dan tunjangan hingga semua proses yang terlibat dalam perekrutan — yang paling penting, wawancara dan jam penilaian yang dihabiskan oleh tim kecil, mengerjakan proyek-proyek penting.

Perangkat lunak rekrutmen teknis dilengkapi dengan fitur seperti beberapa bahasa pemrograman, pembuatan tes otomatis, dan laporan kandidat terperinci. Fitur plagiarisme yang luas membantu tim tetap bebas dari kerumitan biasa 'mengawasi'.

Tugas seperti 'Proyek Java' (bagian dari proyek yang sudah ada yang dibagikan sebagai tugas) dapat dibagikan dengan kandidat yang bekerja di lingkungan pengkodean nyata yang melakukan kode aktual, yang memberikan gambaran yang tepat tentang pekerjaan yang harus dilakukan.

Kerjakan pekerjaan rumah Anda

Last but not least, lakukan pekerjaan rumah Anda. Ikuti influencer, baca buku, terhubung dengan orang-orang di bidang yang sama.

Ada banyak orang yang telah bekerja keras untuk meningkatkan entropi perangkat lunak dalam organisasi mereka.

Anand Thaker berkata,

“Pengetahuan dan komunikasi sangat penting untuk meningkatkan entropi. Kami pernah mengalami entropi ketika ada kepergian anggota tim yang memiliki pengetahuan mendalam di bagian sistem.

Lain adalah ketika bagian-bagian tertentu dari perangkat lunak tetap tidak tersentuh selama beberapa bulan atau tahun. Pastikan kunjungan ulang secara teratur terhadap kemampuan tersebut dan kode/logika yang mendasarinya.

Juga, pertimbangkan untuk menetapkan nada/budaya pada filosofi pembangunan.

Entropi akan selalu ada, betapapun membatasi pertumbuhannya, begitu pula seni. Sebagai pimpinan teknis atau eksekutif, Anda mungkin sudah mengetahui hal ini, tetapi pengembangan perangkat lunak adalah proses yang disiplin. Anggota tim yang baik bangga dengan pekerjaan mereka. Pengakuan atas upaya itu dari rekan-rekan mereka sangat membantu.” Bicara dan diskusikan pembelajaran yang telah dipelajari orang dari waktu ke waktu.

Kesimpulan

Selama fase awal mereka, haruskah startup fokus pada kualitas?

Kualitas kode yang buruk telah menjadi alasan utama kegagalan banyak startup. Banyak waktu, uang, dan upaya telah hilang dalam meningkatkannya selama periode waktu tertentu. Komentar sederhana seperti 'kode buruk' hingga 'perbaiki baris ini' lebih baik daripada tidak melakukan apa pun untuk memperbaiki kode.

Startup adalah fenomena ekonomi yang membuka jalan baru dan mengubah dunia.

Saran Raghav Chandra untuk startup yang menderita entropi adalah “Untuk tim yang lebih kecil, saya telah menemukan pengaruh yang lebih baik dalam memiliki lebih banyak tim, dan menjaga organisasi tetap datar, di mana semua orang terlibat.

Sebagai Pimpinan/Manajer Teknologi, penting untuk mempersiapkan tim agar “berpikir” lebih baik. Upaya yang dilakukan untuk berpikir lebih baik adalah yang membantu, ini menghasilkan lebih sedikit waktu untuk memperbaiki hal-hal di kemudian hari.

Dan brainstorming dan pemikiran mendalam sebelum implementasi bukanlah kompromi pada waktu atau biaya – ini memang cara termurah untuk membangun kualitas tingkat sistem.”

Sudah saatnya kita peduli dengan entropi dan merekrut developer terbaik yang bisa membantu menguranginya dari produk yang kita bangun.