Site icon Freddy Munandar Personal Website

Real Software Engineering

Apa Yang Dimaksud “Real Software Engineering”

Saya sudah melihat dan mendengar beberapa pemaparan tentang “Real Software Engineering” dari Glenn Vanderburg di berbagai konferensi. Dalam presentasinya, Vanderburg menantang pandangan tradisional tentang software engineering dan menyarankan pendekatan yang lebih fleksibel dan pragmatis.

Yang dimaksud dengan tradisional adalah menggunakan metode pengembangan perangkat lunak yang memfokuskan pada dokumen yang sangat detail dan proses yang terstruktur, seperti waterfall dan model V.

Menurut Vanderburg, metodologi software engineering tradisional terkadang terlalu kaku dan terlalu banyak birokrasi, sehingga tidak selalu mencerminkan kenyataan dalam pengembangan perangkat lunak. Oleh karena itu, ia berpendapat bahwa industri perlu mengadopsi pendekatan yang lebih fleksibel dan pragmatis, yang memungkinkan eksperimen, kreativitas, dan adaptasi.

Vanderburg juga percaya bahwa pengembangan perangkat lunak lebih mirip seni daripada ilmu pengetahuan, dan bahwa kreativitas dan inovasi sangat penting untuk membangun perangkat lunak yang luar biasa. Selain itu, ia menekankan pentingnya empati dan komunikasi dalam pengembangan perangkat lunak. Menurutnya, software engineering pada dasarnya adalah tentang orang, dan pengembangan perangkat lunak yang sukses membutuhkan pemahaman yang mendalam tentang kebutuhan pengguna dan kemampuan untuk berkomunikasi secara efektif dengan anggota tim dan stakeholder.

Berikut ini adalah beberapa contoh konkrit dari pandangan Glenn Vanderburg tentang “Real Software Engineering”:

Fleksibilitas dalam metodologi

Pendekatan tradisional dalam software engineering mungkin mengikat tim pengembang dalam aturan dan proses yang kaku. Namun, Vanderburg menyarankan agar tim pengembang menggunakan metodologi yang fleksibel dan pragmatis yang memungkinkan eksperimen dan adaptasi. Sebagai contoh, tim pengembang dapat menggunakan metode Agile, yang lebih fleksibel dan berfokus pada iterasi, daripada menggunakan metode Waterfall yang lebih kaku dan berorientasi pada rencana.

DevOps adalah metodologi yang berfokus pada pengiriman perangkat lunak dengan cepat dan secara konsisten. Prinsip-prinsip DevOps sangat terkait dengan pendekatan Vanderburg tentang pengembangan perangkat lunak yang fleksibel dan adaptif, dan menekankan pentingnya kerja tim dan pengiriman yang terus-menerus ditingkatkan.

Kreativitas dan Inovasi

Vanderburg percaya bahwa pengembangan perangkat lunak membutuhkan kreativitas dan inovasi yang tinggi. Tim pengembang perlu berpikir kreatif dalam menyelesaikan masalah teknis dan menemukan solusi yang inovatif dalam mengembangkan perangkat lunak. Contohnya, tim pengembang dapat mempertimbangkan penggunaan teknologi baru atau pendekatan baru dalam pengembangan perangkat lunak. Contoh teknologi baru yang bisa dipertimbangkan adalah Machine Learning, Internet of Things (IoT) dan Blockchain.

Empati dan Komunikasi

Vanderburg menekankan pentingnya empati dan komunikasi dalam pengembangan perangkat lunak. Tim pengembang perlu memahami kebutuhan dan perspektif pengguna untuk membangun perangkat lunak yang benar-benar berguna bagi pengguna. Selain itu, mereka juga perlu berkomunikasi dengan baik dengan anggota tim dan stakeholder untuk memastikan kesepakatan dan menghindari kesalahpahaman yang dapat menghambat pengembangan perangkat lunak.

Continuous Improvement

Vanderburg juga menekankan pentingnya perbaikan kontinu dalam pengembangan perangkat lunak. Tim pengembang perlu memonitor dan mengevaluasi kinerja perangkat lunak secara terus-menerus, dan melakukan perbaikan atau perubahan ketika diperlukan untuk memastikan kualitas dan kinerja perangkat lunak yang optimal.

Metodologi Lean sangat terkait dengan ide perbaikan kontinu yang Vanderburg ajukan. Dalam metodologi ini, tim pengembang perangkat lunak berfokus pada menghilangkan pemborosan dan meningkatkan efisiensi dalam seluruh proses pengembangan.

Kesimpulan

Secara keseluruhan, pandangan Glenn Vanderburg tentang “Real Software Engineering” menantang pandangan tradisional tentang software engineering dan menyarankan pendekatan yang lebih fleksibel, pragmatis, dan berpusat pada manusia dalam membangun perangkat lunak.

Sebagian dari kita mungkin bertanya-tanya, apa iya masih ada perusahaan yang masih menggunakan cara traditional? Kaum milenial yang lebih banyak bekerja di Startup tentu tidak dapat melihat hal tersebut.

Namun, penting untuk diingat bahwa meskipun Vanderburg menyoroti kelemahan pendekatan tradisional, tidak berarti bahwa pendekatan tersebut tidak pernah berguna atau tidak perlu digunakan dalam situasi tertentu. Setiap pendekatan memiliki kelebihan dan kekurangan tergantung pada lingkungan, tim, dan kebutuhan pengembangan perangkat lunak yang spesifik. Oleh karena itu, penting untuk memahami baik kelebihan maupun kekurangan dari setiap pendekatan dan memilih pendekatan yang tepat untuk kebutuhan pengembangan perangkat lunak yang sedang dihadapi.

Photo by Annie Spratt on Unsplash