Feature Driven Development (FDD) adalah sebuah metodologi dalam Software Engineering yang menjadi bagian dari Agile Methodology, yang belakangan ini semakin banyak digunakan untuk menggantikan metodologi konvensional. Pada metodologi sebelumnya, banyak hal yang dipandang oleh para pengembang software sudah tidak relevan lagi dengan kebutuhan dari business enterprise yang lebih mengutamakan efektifitas dan efisiensi dari sebuah proyek pengembangan software. Hal-hal yang tingkat signifikansinya tidak terlalu tinggi, artinya bisa dikategorikan sebagai aspek pendukung saja, atau dengan kata lain jika aspek tersebut tidak dibuat tidak akan membuat sebagian atau seluruh fungsi dari aplikasi tersebut tidak akan berjalan, tidak akan menjadi bagian yang diperhatikan pada metodologi ini.
Sebagai contoh, misalnya mengenai masalah organisasi proyek, pembuatan dokumentasi, dan lain sebagainya, sebetulnya bukanlah sesuatu yang signifikan. Artinya, tanpa itupun sebuah proyek pengembangan software akan tetap dapat dilakukan, dan dapat mencapai target waktu sesuai dengan hasil yang diinginkan oleh klien. Toh dengan kombinasi tim yang solid dan dengan keahlian dan pengalaman yang cukup, sebuah proyek pengembangan dapat dilakukan tanpa harus berkutat dengan hal-hal yang bersifat birokratis seperti pada metodologi konvensional.
Nah, sebagai salah satu bagian dari Agile Methodology, FDD lebih menitikberatkan metode dengan pendekatan feature, atau fungsi-fungsi yang memiliki nilai tinggi bagi si klien. Pembuatan feature itu sendiri dengan melalui pendekatan bisnis, dimana akan melibatkan fungsi marketing dan bisnis dari klien, termasuk juga melibatkan business domain expert dari pihak pengembang untuk mendampingi para analyst dan programmer dalam melakukan coding.
Tolok ukur tingkat keberhasilan sebuah proses pengembangan dengan menggunakan metodologi ini adalah dengan melihat tingkat kepuasan klien. Artinya, jika klien merasa puas dengan hasil dari aplikasi yang dikembangkan, itu menunjukkan semua fungsi berjalan dengan baik, dan itu menunjukkan bahwa sebuah proyek pengembangan aplikasi dinilai berhasil. Berbeda dengan metodologi konvensional yang harus melalui tahapan test, seperti unit test, integration test, performance test, dan lain-lain terlebih dahulu sebelum program dideliver ke klien. Hal ini tentunya akan membutuhkan waktu yang lebih lama.
So, How agile are you?
Wassalam.