Saya baru saja membaca Balancing Agility dan Disiplin . Mengesampingkan judul yang buruk, itu kontras dengan tim proyek yang digerakkan oleh rencana yang menggunakan PSP / TSP dan tim gesit menggunakan Extreme Programming.
Ketika penulis memberikan contoh metodologi yang digerakkan oleh rencana, mereka menggunakan Proses Perangkat Lunak Pribadi / Proses Perangkat Lunak Tim. Meskipun, out-of-the-box, ini adalah metodologi yang digerakkan oleh rencana, mereka juga dirancang untuk digunakan sebagai kerangka kerja proses dan pada akhirnya hanya menentukan jenis hal apa yang harus dilakukan dan bukan bagaimana melakukannya, yang membuatnya berpotensi berguna bahkan di lingkungan yang gesit. Mungkin gesit dan tetap berpegang pada prinsip-prinsip PSP, dan saya tidak cukup akrab dengan TSP untuk mengatakan dengan pasti, tetapi pemahaman saya adalah bahwa itu sangat mirip.
Pada satu titik dalam buku ini, mereka mendaftar sejumlah metodologi dan peringkat mereka dalam hal kelincahan. Metode seperti Scrum, Lean, Crystal, dan XP ada di atas. Bagian bawah (dari yang paling gesit) terdiri dari Proses Bersatu Rasional, Proses Perangkat Lunak Tim, Pengembangan Berbasis-Fitur, CMMI, Perangkat Lunak CMM, Proses Perangkat Lunak Pribadi, dan Cleanroom.
Watts Humphrey, dalam PSP: Proses Peningkatan-Diri untuk Insinyur Perangkat Lunak , mendedikasikan bab untuk memproses definisi, dan secara khusus memodifikasi Proses Perangkat Lunak Pribadi. Tema umum adalah bahwa proses bersifat preskriptif (mereka mengatakan apa yang harus dilakukan) dan bukan deskriptif (bagaimana melakukannya). Saya menduga bahwa TSP sangat mirip. CMMI juga telah digunakan dalam hubungannya dengan metode gesit, dan SEI memiliki buku tentang itu (yang belum saya baca).
Pengembangan Berbasis Fitur sering disebut-sebut sebagai pendekatan tangkas untuk manajemen proyek, namun penulis memilih untuk memeringkatnya sebagai metodologi yang kurang gesit.
RUP adalah kerangka kerja yang berulang. Meskipun saya tidak terlalu terbiasa dengan hal itu, fakta bahwa itu adalah kerangka kerja yang memungkinkan saya untuk mengelompokkannya dengan SW-CMM, CMMI, dan PSP / TSP sehingga dapat diimplementasikan baik sebagai tangkas atau sebagai metodologi berbasis rencana.
Satu-satunya contoh lain yang disediakan buku itu yang saya setujui adalah Cleanroom Software Engineering . Komponen utama Cleanroom adalah penggunaan metode formal, kontrol kualitas statistik, dan pengujian yang baik secara statistik. Saya tidak melihat mengapa ini tidak dapat digunakan dalam metode lincah (iteratif / incremental), dengan menambahkan waktu dan biaya overhead.
Hanya untuk memperjelas apa yang saya cari, keluarga metode tangkas termasuk implementasi spesifik dari ide abstrak dalam bentuk Scrum dan Extreme Programming. Ini mewujudkan konsep pengembangan berulang dan bertahap, menanggapi perubahan, orang (individu dan tim), seringnya pengiriman perangkat lunak yang berfungsi, berkolaborasi dengan pelanggan, dan sebagainya. Mereka jelas menentukan peran, artefak, pertemuan, kotak waktu, dan praktik lainnya dan untuk "melakukan Scrum" atau "melakukan Pemrograman Ekstrim" berarti mengambil paket. Meski begitu, mereka memungkinkan untuk disesuaikan dan penciptaan proses baru (tapi kemudian Anda tidak "melakukan Scrum" atau "melakukan XP"). Namun, saya belum menemukan "do X"
Jadi, pertanyaan saya: Apa saja contoh metodologi pengembangan perangkat lunak berbasis rencana? Sejumlah kerangka kerja proses (PSP / TSP, SW-CMM, CMMI, RUP) memungkinkan untuk pengembangan yang digerakkan oleh rencana atau tangkas, juga, tetapi tidak ada yang deskriptif. Tetapi apakah ada metodologi yang benar-benar digerakkan oleh rencana, yang, misalnya, mengarahkan mitra ke Scrum dan Pemrograman Ekstrim?