Mitos Dan Fakta Dalam Dunia Software Engineering

JURNAL IT - Pernahkah Anda mendengar tentang mitos-mitos yang berkembang dalam dunia pengembangan perangkat lunak? Mitos-mitos ini telah menjadi sumber informasi yang salah dan membingungkan.

Ilustrasi Software Engineer

Ironisnya, mitos-mitos ini seringkali terdengar masuk akal, bahkan beberapa di antaranya mengandung elemen kebenaran.

Mitos-mitos ini tersebar luas dan dipercayai oleh praktisi berpengalaman yang seharusnya "mengerti seluk-beluk" di bidang ini.

Namun, saat ini kebanyakan profesional yang berpengalaman sudah mengakui mitos-mitos tersebut sebagai sikap yang menyesatkan dan telah menyebabkan masalah serius bagi manajer dan teknisi.

Namun, sikap dan kebiasaan lama sulit diubah, sehingga sisa-sisa mitos-mitos perangkat lunak masih dipercaya.

Mitos Manajemen.

Manajer yang bertanggung jawab terhadap perangkat lunak sering kali merasa tertekan untuk menjaga anggaran, mencegah penundaan jadwal, dan meningkatkan kualitas. Seringkali, seperti orang yang tenggelam yang mencoba berpegang pada jerami, manajer perangkat lunak akan mencoba mempercayai mitos perangkat lunak jika itu dapat mengurangi tekanan (walaupun hanya sementara).

Mitos: Kami sudah memiliki buku yang berisi standar dan prosedur lengkap untuk membangun perangkat lunak, apakah itu sudah memberikan pengetahuan yang dibutuhkan oleh tim kami

Fakta: Buku standar mungkin memang ada, tetapi apakah buku itu digunakan? Apakah praktisi perangkat lunak menyadari keberadaannya? Apakah buku tersebut mencerminkan praktik rekayasa perangkat lunak modern? Apakah buku tersebut lengkap? Apakah buku tersebut dioptimalkan untuk mempercepat pengiriman sambil tetap menjaga kualitas? Pada banyak kasus, jawaban untuk semua pertanyaan ini adalah "tidak".

Mitos: Tim kami memiliki peralatan pengembangan perangkat lunak terkini, toh kami membelikan mereka komputer terbaru.

Fakta: Dibutuhkan lebih dari sekadar model komputer terbaru untuk melakukan pengembangan perangkat lunak berkualitas tinggi. Alat bantu rekayasa perangkat lunak berperan lebih penting daripada perangkat keras dalam mencapai kualitas dan produktivitas yang baik, namun sebagian besar pengembang perangkat lunak masih belum efektif menggunakannya.

Mitos: Jika kami ketinggalan jadwal, kami bisa menambahkan lebih banyak programmer dan mengejar ketinggalan (kadang disebut konsep "horde Mongolia").

Kenyataan: Pengembangan perangkat lunak bukanlah proses mekanistik seperti dalam manufaktur. Seperti yang diungkapkan oleh Brooks [BRO75]: "menambahkan orang pada proyek perangkat lunak yang terlambat hanya akan membuatnya semakin terlambat." Pada awalnya, pernyataan ini mungkin terdengar tidak masuk akal. Namun, saat orang baru ditambahkan, orang-orang yang sudah bekerja harus meluangkan waktu untuk mengedukasi mereka, sehingga mengurangi waktu yang bisa digunakan untuk upaya pengembangan yang produktif. Orang bisa ditambahkan, tetapi hanya dengan cara yang direncanakan dan terkoordinasi dengan baik.

Mitos: Jika saya memutuskan untuk mengontrak pihak ketiga untuk mengerjakan proyek perangkat lunak, saya bisa santai dan membiarkan perusahaan itu yang melakukannya.

Fakta: Jika suatu organisasi tidak memahami cara mengelola dan mengendalikan proyek perangkat lunak secara internal, maka akan mengalami kesulitan ketika mengontrak pihak ketiga untuk mengerjakan proyek perangkat lunak.

Mitos Pelanggan.

Pelanggan yang meminta perangkat lunak komputer dapat berupa orang di sebelah meja, kelompok teknis di sebelah, departemen pemasaran/penjualan, atau perusahaan luar yang telah memesan perangkat lunak sesuai kontrak. Dalam banyak kasus, pelanggan mempercayai mitos-mitos tentang perangkat lunak karena manajer dan praktisi perangkat lunak jarang memperbaiki kesalahan informasi yang ada. Mitos-mitos ini menciptakan harapan palsu bagi pelanggan dan akhirnya menimbulkan ketidakpuasan terhadap pengembang.

Mitos: Pernyataan umum tentang tujuan sudah cukup untuk memulai menulis program, kita bisa mengisi detailnya nanti.

Fakta: Definisi yang buruk pada awal proyek adalah penyebab utama kegagalan upaya pengembangan perangkat lunak. Deskripsi yang formal dan detail tentang domain informasi, fungsi, perilaku, kinerja, antarmuka, batasan desain, dan kriteria validasi sangat penting. Karakteristik-karakteristik ini hanya dapat ditentukan setelah komunikasi yang baik antara pelanggan dan pengembang.

Mitos: Persyaratan proyek terus berubah, tetapi perubahan bisa dengan mudah diakomodasi karena perangkat lunak bersifat fleksibel.

Fakta: Memang benar bahwa persyaratan perangkat lunak berubah, tetapi dampak perubahan tersebut bervariasi tergantung pada waktu perubahan diperkenalkan. Gambar di bawah menggambarkan dampak perubahan tersebut. Jika perhatian serius diberikan pada definisi awal, permintaan perubahan pada tahap awal dapat dengan mudah diakomodasi. Pelanggan dapat meninjau persyaratan dan merekomendasikan modifikasi dengan dampak biaya yang relatif kecil. Ketika perubahan diminta selama desain perangkat lunak, dampak biaya akan semakin besar. Sumber daya sudah terpakai dan kerangka desain sudah dibangun. Perubahan bisa menyebabkan kekacauan yang membutuhkan sumber daya tambahan dan modifikasi desain besar, sehingga menimbulkan biaya tambahan. Perubahan dalam fungsi, kinerja, antarmuka, atau karakteristik lainnya selama implementasi (kode dan pengujian) berdampak besar pada biaya. Perubahan yang diminta setelah perangkat lunak berada dalam produksi bisa menjadi lebih dari sepuluh kali lebih mahal daripada perubahan yang sama yang diminta pada tahap sebelumnya.

Dampak dari perubahan

Mitos Praktisi.

Mitos-mitos yang masih dipercaya oleh praktisi perangkat lunak telah berkembang dalam budaya pemrograman selama 50 tahun terakhir. Pada awalnya, pemrograman dilihat sebagai bentuk seni. Cara-cara lama dan sikap-sikap tersebut masih sulit dihilangkan.

Mitos: Setelah kita menulis program dan membuatnya berjalan, tugas kita sudah selesai.

Fakta: Ada yang pernah mengatakan bahwa "semakin cepat Anda mulai 'menulis kode', semakin lama waktu yang dibutuhkan untuk menyelesaikannya." Data industri ([LIE80], [JON91], [PUT97]) menunjukkan bahwa antara 60 - 80 persen usaha yang dikeluarkan pada perangkat lunak akan dikeluarkan setelah pertama kali diserahkan kepada pelanggan.

Mitos: Sebelum program berjalan, saya tidak memiliki cara untuk menilai kualitasnya.

Fakta: Salah satu mekanisme penjaminan kualitas perangkat lunak yang paling efektif dapat diterapkan sejak awal proyek - yaitu tinjauan teknis formal. Tinjauan perangkat lunak adalah "penyaring kualitas" yang terbukti lebih efektif daripada pengujian dalam menemukan jenis-jenis cacat perangkat lunak tertentu.

Mitos: Satu-satunya produk kerja yang berhasil dalam sebuah proyek adalah program yang berjalan.

Fakta: Program yang berjalan hanya merupakan bagian dari konfigurasi perangkat lunak yang melibatkan banyak elemen. Dokumentasi menyediakan dasar untuk rekayasa yang berhasil dan, yang lebih penting, petunjuk untuk dukungan perangkat lunak.

Mitos: Rekayasa perangkat lunak akan membuat kita menciptakan dokumentasi yang terlalu banyak dan tidak perlu, dan pasti akan memperlambat kita.

Fakta: Rekayasa perangkat lunak bukan tentang menciptakan dokumen. Ini tentang menciptakan kualitas yang baik. Kualitas yang lebih baik mengarah pada pengurangan pekerjaan ulang. Dan pengurangan pekerjaan ulang menghasilkan waktu pengiriman yang lebih cepat.

Banyak profesional perangkat lunak mengakui kesalahan mitos-mitos yang telah dijelaskan di atas. Sayangnya, sikap dan metode yang sudah menjadi kebiasaan tetap menyebabkan praktik manajemen dan teknis yang buruk, bahkan ketika kenyataan menunjukkan pendekatan yang lebih baik.

Mengakui realitas perangkat lunak adalah langkah pertama menuju formulasi solusi praktis untuk rekayasa perangkat lunak.

Perangkat lunak telah menjadi elemen kunci dalam evolusi sistem dan produk berbasis komputer.

Selama 50 tahun terakhir, upaya pengembangan perangkat lunak telah mengalami peningkatan yang signifikan dalam hal ukuran, kompleksitas, dan pentingannya dalam kehidupan sehari-hari.

Meskipun masih ada mitos-mitos yang berkembang, pengetahuan dan pemahaman yang lebih baik tentang praktik rekayasa perangkat lunak yang efektif dapat membantu menghilangkan mitos-mitos tersebut dan mencapai kesuksesan dalam pengembangan perangkat lunak.(*)

Posting Komentar

0 Komentar