Tuesday, September 3, 2019

Feature Driven Development (FDD)


Nama Anggota Kelompok :
1.      Baiq Alung Septiya Nirmala (F1D016014)
2.      Hani Noviawati (F1D016036)

Feature Driven Development (FDD) merupakan pendekatan yang mengacu pembuatan sistem menggunakan metode yang mudah dimengerti dan mudah diimplentasikan, teknik problem solving, dan pelaporan yang mudah dimengerti dan dikontrol oleh stakeholders.
Menurut Palmer (2001), FDD adalah proses yang didesain dan dilaksanakan untuk menyajikan (deliver) hasil kerja secara berulang-ulang dalam waktu tertentu dan dapat diukur.

Nilai-nilai Utama
Menurut Calberg, nilai-nilai utama yang terkandung dalamFDD sehingga FDD mampu memberikan nilai lebih bagi proses pengembangan software adalah:
1.        Tangible results rather than Process Pride
Proses dalam FDD lebih mengutamakan memberikan nilai-nilai yang dapat diukur daripada sederet proses yang rumit dan menghabiskan banyak tenaga dan sumber daya.
2.        A system for building system is necessary
Sangat penting untuk membentuk sebuah sistem yang solid dan rapi untuk membuat sistem (software) bekerja sesuai dengan yang diharapkan.
3.        Simple is better
Desain yang dibuat harus sesederhana mungkin namun mampu menggali semua requirement yang disyaratkan oleh klien.
4.        Process steps should be obviously valuable to each team member
5.        Good processes move to the background

Enam Pemeran Utama
Menurut Palmer dan Flesing (2001), Calberg, Abrahamsson dan Juhani (2002) setiap proses dalam FDD melalui orangorang di dalamnya dan kelebihan serta kekurangan setiap orang sangat berpengaruh pada keluaran proyek, terdapat 6 pemeran utama proses FDD yaitu:
1.      Project Manager berperan sebagai pemimpin administratif terhadap budget, orang-per-orang dan laporan pencapaian, mengoperasikan sistem proyek serta melindungi pekerja dari gangguan luar.
2.      Chief Architect berperan sebagai penanggung jawab desain sistem secara keseluruhan, menjalankan workshop desain, dan mengarahkan proyek terkait kendala teknis.
3.      Development Manager berperan sebagai pemimpin pengembangan dari hari-ke-hari, mengatasi konflik sumberdaya, biasanya juga dikombinasikan dengan Project Manager dan Chief Architect.
4.      Chief Programmer adalah developer yang berpengalaman memimpin grup kecil dari sekumpulan developer individual.
5.      Class Owner adalah developer individual yang mendesain, mengkodekan dan menguji dan mendokumentasikan fitur.
6.      Domain Expert yaitu user, klien, sponsor dll. Dikenal baik oleh developer.
Selain enam pemeran utama tersebut diatas juga terdapat pemeran pembantu seperti domain manager, release manager, language guru, bild engineer, toolsmith, dan systemadministrator. Selain itu juga terkadang cukup membantu adalah tester, deployer, dan technical writer.


Lima Proses Feature Driven Develpoment (FDD)


FDD terdiri dari 5 proses berurut selama mendesain dan mebangun sistem, yaitu :
1.    Build an Overall Model
Ketika fase ini dimulai, Domain Expert telah menyadari scope, konteks dan requirement dari sistem yang akan dibangun. [4] Pembuatan dokumen requirement seperti use case atau spesifikasi fungsional ada dalam fase ini. Namun FDD tidak secara eksplisit menggali, mencari dan mengatur requirement ini. Domain expert menyajikan apa yang disebut “walkthrough” yang mana anggota tim dan Chief Architect diinformasikan dengan deskripsi level tinggi dari sistem.[6]
2.    Build a Feature List
Walkthrough, object model dan dokumentasi requirement yang ada memberikan dasar yang kuat dalam membangun feature list  yang komprehensif untuk sistem yang dikerjakan. Feature list adalah yang dilihat oleh user atau sponsor untuk validitas dan kelengkapan. Feature dalam hal ini adalah langkah-langkah aktifitas bisnis, berbasis customer bukan teknologi.
3.    Plan by Feature
Dalam fase ini, Project Manager, Development Manager dan Chief Programmer merencanakan urutan feature-feature yang akan dikerjakan dengan demikian class owenership telah dilengkapi.
4.    Design by Feature  dan Build by Feature
Sekelompok kecil fitur diambil dari feature set dan diperlukan feature team untuk membangun fitur terpilih yang disebut sebagai class owner. Proses design by feature dan build by feature bersifat iteratif selama fitur yang dipilih tersebut diproduksi. Satu kali iterasi memerlukan waktu beberapa hari sampai 2 minggu. Proses iteratif ini mencakup beberapa tugas seperti inspeksi rancangan, pengkodean, pengujianunit, integrasi dan inspeksi kode seperti yang dijelaskan pada gambar berikut.

Kelebihan dan Kekurangan Feature Driven Develompment (FDD)
Kelebihan :
1.    User dapat menggambarkan dengan mudah bentuk sistem yang akan dibuat.
2.    Dapat diorganisasikan atau diatur ke dalam kelompok bisnis sesuai hierarki yang ada.
3.    Desain dan kode lebih mudah diperiksa secara efektif.
4.    Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh fiturnya.
Kekurangan :
1.        Jumlah pekerja dalam project tersebut
FDD memerlukan jumlah pekerja/personel yang cukup banyak, yang dipecah-pecah ke dalam masing-masing bagian. Maka semakin banyak pula biaya yang dikeluarkan untuk membayarkan hak mereka.
2.        Masalah class ownership dari feature dalam FDD
Dalam FDD dikenal dengan class ownership, dimana tiap feature akan ditangani oleh tiap Class owners.
3.    Lebih menekankan pengembang dengan keterampilan tinggi dan sulit untuk mencari pengembang dengan kriteria tersebut.

Perbandingan dengan Metode Extreme Programming


Karakteristik
Menurut Calberg, penggunaan FDD sebaiknya digunakan Jika mempekerjakan 10 – 250 developer yang memiliki kemampuan teknis lebih dari rata-rata, dan jangan digunakan jika jumlah tim kurang dari 10, tim sedang belajar menguasai pekerjaan dan jika kurang dukungan dari sistem. FDD lebih terhirarki daripada Extreme Programming, memiliki class owenership yang terpisah-pisah, sukses jika dalam rentang jumlah developer diatas rata-rata, klien tidak dilibatkan dalam seluruh urutan proses (hanya dalam proses 1, 2 dan 4) dan menghargai developer sebagai individu manusia yang menentukan sukses atau tidaknya pengembangan.

Kesimpulan
Metode FDD memiliki proses dengan tingkat hirarkis yang tinggi sehingga setiap proses merupakan rangkaian tugas yang baku dan klien hanya berperan dalam sebagian proses saja tidak dalam keseluruhan proses. Fleksibilitas dan kemampuannya menghadapi perubahan masih bisa dilakukan walaupun melalui proses iteratif yang panjang karena melampau beberapa prosedur sampai feature diberikan ke klien. Pengubahan feature hanya dapat dilakukan hanya pada proses pertama dan secara keseluruhan hanya mampu memberikan penambahan kurang dari 10%. Dibandingkan dengan Extreme Programming, FDD terlalu banyak memberikan pemodelan daripada langsung melakukan pengkodean membuat hasil akan terlihat dalam waktu yang lama, walaupun hal ini memberikan keuntungan untuk proyek dengan skala dan kerumitan lebih besar.

Referensi
1. Setiyawan, Muhammad.2019.Implementasi Gamification pada Aplikasi Perkuliahan Mahasiswa dengan Metode Feature Driven Development (Studi Kasus: AMIK Cipta Darma Surakarta).
2.   Dwijantara. 2010. Agile Methodology.
3.    Arimbawa , I Wayan Agus. Feature Driven Development dan Agile Method.



                                                                                             

No comments:

Post a Comment