Perangkat lunak Model Pengembangan Kematangan
Menulis ulang fungsi buggiest dalam sistem menawarkan lebih menguntungkan daripada bekerja pada daerah yang relatif stabil. Hal yang sama berlaku untuk organisasi: jika penjual yang menutup puluhan penawaran, tetapi tidak ada programmer untuk menciptakan vaporware, menghabiskan lebih banyak uang untuk melatih tenaga penjualan tidak akan membantu. Memperbaiki tim pengembangan. Hal ini jelas, tetapi gagasan mengidentifikasi kelemahan organisasi perangkat lunak adalah benih dari ide yang diuraikan di bawah.
Saya telah bekerja dengan puluhan organisasi selama bertahun-tahun, dan semua memiliki kekuatan dan kelemahan mereka. Saya pernah diminta beberapa kali untuk menilai "bagaimana yang proses pengembangan perangkat lunak kami pergi?" Aku pasti bisa menggali dan melihat kelemahan mereka, tetapi memiliki sistem penilaian eksternal, seperti tabel di bawah ini, memungkinkan rekomendasi lebih beralasan.
Tabel berikut merangkum kategori kematangan pengembangan perangkat lunak dalam sebuah organisasi. Ini terinspirasi oleh CMM (kemampuan model jatuh tempo), tapi tidak ada cara mencoba untuk meniru itu.
Untuk menggunakan tabel ini, pertama menilai mana organisasi ini sehubungan dengan masing-masing daerah. Dari pengalaman saya, kebanyakan organisasi tidak akan cocok hanya menjadi satu tingkat kematangan, bukan tingkat yang berbeda di daerah yang berbeda. Mereka lebih baik di beberapa hal lebih dari yang lain. Sebagai contoh, itu umum untuk memiliki kontrol kode sumber bekerja dengan baik, tetapi tidak ada sistem pelacakan bug.
Setelah Anda telah melakukan penilaian ini, organisasi kekuatan dan kelemahan akan lebih jelas. CMM menggemakan bahwa sebelum menjadi dewasa dalam satu area, dan organisasi harus membahas daerah lain pertama. Ini berarti fokus pada peningkatan daerah di mana Anda paling lemah. Berfokus pada area terlemah akan memberikan manfaat paling untuk investasi perubahan organisasi. Itu adalah ide di balik meletakkan tabel ini bersama-sama.
Tingkat 1 adalah tingkat terendah. Seringkali hal ini ditandai dengan "kejutan".Hal ini ditunjukkan oleh organisasi perangkat lunak yang telah disampaikan software, dan sayangnya, banyak organisasi yang tidak pada tingkat ini.
Level 2 organisasi telah disampaikan software berulang kali, tapi tidak tanpa cegukan signifikan. Seringkali hal ini ditandai dengan "kekecewaan". Ada misfires, proyek ditinggalkan, tetapi perangkat lunak akan keluar.
Level 3 adalah organisasi perangkat lunak dewasa yang memiliki orang-orang dan proyek selaras. Peluang diidentifikasi, perangkat lunak yang dibuat, dan pelanggan puas. Akan ada kesalahan, tapi mereka diidentifikasi sedini mungkin.
persyaratan, produk dan manajemen proyek | ||
---|---|---|
perangkat lunak bekerja menguraikan persyaratan; kebutuhan masa depan dapat diidentifikasi, tetapi mereka un-diprioritaskan, tidak lengkap; proses ini kacau atau ad hoc; cepat berubah visi produk; Keberhasilan mungkin memerlukan heroik; kegagalan; proyek ditinggalkan | manajemen proyek aktif, keberhasilan konsisten;diterbitkan, persyaratan (atau cerita pengguna) diprioritaskan;dikombinasikan dengan latihan kebakaran, terlambat atau kereta rilis; proses pengembangan produk didefinisikan, meskipun tidak selalu diikuti atau efektif | Keberhasilan diprediksi; gesit, efisien, memaksimalkan nilai;dilembagakan, mengoptimalkan; baik rencana strategis dan taktis, dengan kemampuan untuk menjadi oportunis; jarang membangun fitur bernilai rendah; bersama pemahaman tentang proses; kemampuan untuk kembali memprioritaskan-persyaratan efisien;estimasi handal;manajemen resiko |
tim pemrograman | ||
individu membangun produk | Tim fungsional, kepemilikan kode, panduan gaya kode; bersama desain sesuai kebutuhan | berbagi kepemilikan kode, desain perangkat lunak bersama, pola dan strategi;kepatuhan kode gaya, ulasan kode;pengembangan profesional, lintas-pelatihan; |
Kode | ||
"Hei, it works!"; silo-ed pengetahuan; tambang-bidang kode dan daerah kereta; solusi rumah-tumbuh; daerah warisan unmodifiable | bekerja dengan baik;beberapa daerah masalah warisan; konsep bisnis inti divalidasi dan didokumentasikan;menduplikasi solusi untuk masalah yang sama | kepemilikan kolektif; konsistensi;terorganisir; pola modern dan alat-alat; alat-alat modern yang terintegrasi |
kontrol kualitas | ||
Sistem pelacakan cacat termasuk post-nya dan to-do list; untuk QA, semua orang chip, atau "tim penjualan terlihat di atas" | sistem pelacakan cacat, QA rencana; tes fungsional; mungkin memiliki beberapa pengujian otomatis, unit testing;sebagian besar perubahan melalui pengujian sistem, tetapi mungkin perbaikan darurat yang melewati proses | terintegrasi dalam pembangunan;integrasi berkesinambungan, metrik cakupan kode, metrik perangkat lunak lain yang diperlukan;Rencana QA di tempat dan dieksekusi |
tool pemrograman | ||
alat (editor, compiler, dll) | modern, alat profesional | alat terpadu, modern dan profesional |
manajemen kode sumber dan membangun (manajemen konfigurasi) | ||
memiliki kode sumber di tangan, backup, rilis bernomor | alat modern seperti svn, cvs, git, p4, dll .;sebagian besar naskah-mampu membangun | linkage perubahan kode untuk persyaratan dan bug;visibilitas dan metrik ke dalam kode; sepenuhnya ditulis dan otomatis membangun; |
proses pelepasan | ||
ditentukan (atau tertunda) oleh kualitas perangkat lunak dan fitur selesai | dijadwalkan berdasarkan fitur penyelesaian secara berkala;awal perencanaan pengorbanan fitur; akhir pengorbanan kualitas atau kapal tanggal | Kualitas selalu releasable; menjaga kualitas dan tanggal rilis;mengorbankan fitur rendah nilai |
Copyright (c) 2007-2016 NDP Software. Seluruh hak cipta.