1. Adaptive Software Development (ASD)
Adaptive Software Development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari Adaptive Software Development (ASD) adalah kolaborasi manusia dan tim yang mengatur diri sendiri.
System kerja adaptive software development ada 3 : Speculation, Collaboration dan Learning. Adaptive cycle planning yaitu menggunakan informasi awal seperti misi dari klien, batasan proyek dan kebutuhan dasar untuk definisikan rangkaian software increment (produk software yang secara berkala diserahkan).
Gambar 1. Proses Adaptive Software Development (ASD)
ASD merupakan suatu model yang tergolong dalam pendekatan agile yang diusulkan oleh Jim Highsmith. ASD menekankan pada pengorganisasian tim secara mandiri, kolaborasi antar-perseorangan, dan terus belajar, baik secara individu maupun secara tim. ASD menggunakan tools yang disebut "time-boxing" - yaitu berupa aktifitas yang menentukan jangka waktu tertentu yang dialokasikan untuk menyelesaikan berbagai macam tugas. Apabila waktu yang ditentukan tersebut selesai, maka pembangunan sistem akan pindah ke tugas berikutnya, dengan harapan bahwa sebagian besar dari critical work telah berhasil diselesaikan sebelum waktu keseluruhan tugas berakhir. Terdapat tiga tahapan pada model ASD, yaitu: Speculation, Collaboration, dan Learning.
Adaptive Software Development (Pressman, 2005)
Pada tahap Speculation, proyek dimulai dan adaptive cycle planning diselenggarakan. Pada tahapan ini, didefinisikan visi dan misi pengguna terhadap sistem yang akan dibuat, selanjutnya mendefinisikan project constraints, misalnya: waktu deliver. dan selanjutnya mendefinisikan satu set dari requirements yang akan dikerjakan dalam suatu cycle.
Pada tahap Collaboration, pada tahap ini diorganisasikan tim kerja untuk membangun sistem. Direkomendasikan menggunakan model Joint Application Development (JAD). Collaboration : orang-orang yang bermotivasi tinggi bekerja sama: saling melengkapi, rela membantu, kerja keras, trampil di bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
Pada tahap Learning, terdapat tiga aktifitas yaitu: pelanggan atau end-user menyediakan feedback terhadap hasil incremental delivery, tim ASD melakukan review terhadap komponen perangkat lunak untuk memperbaiki dan meningkatkan kualitas perangkat lunak yang sedang dibuat. Learning: tim pembangun sering merasa sudah tahu semua hal tentang proyek,
padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui 3 cara:
• Focus group: klien dan pengguna memberi masukan terhadap software
• Formal Technique Reviews: Tim ASD lengkap melakukan review
• Postmortems: Tim ASD lakukan instrospeksi pada kinerja dan proses
2. Dynamic Systems Development Method (DSDM)
Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan. Metode ini akan membangun software dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh. Dynamic System Development Method dapat dikombinasikan dengan Extreme Programmning menghasilkan kombinasi model proses yang mengikuti Dynamic System Development Method dan praktek yang sejalan dengan Extreme Programming.
Dynamic System Development Method memiliki beberapa aktifitas seperti :
1. Feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM
2. Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
3. Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
4. Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja
5. Implementation: menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau masih ada perubahan
Prinsip DSDM :
Ada delapan prinsip yang mendasari DSDM Atern. Prinsip-prinsip ini mengarahkan tim dalam sikap mereka harus mengambil dan pola pikir mereka harus mengadopsi untuk memberikan secara konsisten.
1) Fokus pada kebutuhan bisnis
Kriteria utama untuk penerimaan dari "penyampaian" adalah memberikan suatu sistem yang membahas kebutuhan bisnis saat ini. Menyampaikan sistem yang sempurna yang membahas semua kebutuhan bisnis yang mungkin kurang penting daripada berfokus pada fungsi kritis.
• Memahami prioritas bisnis sejati
• Membentuk Kasus Bisnis suara
• Mencari sponsor bisnis yang berkesinambungan dan komitmen
• Jaminan Subset Usable Minimum fitur.
2) Memberikan tepat waktu
• Timebox pekerjaan
• Fokus pada prioritas bisnis
• Selalu memenuhi tenggat waktu
3) Berkolaborasi
Keterlibatan pengguna merupakan kunci utama dalam menjalankan proyek yang efisien dan efektif, dimana kedua pengguna dan pengembang berbagi tempat kerja (baik fisik atau melalui alat), sehingga pengambilan keputusan dapat dilakukan secara kolaboratif dan cepat.
• Melibatkan pemangku kepentingan yang tepat, pada waktu yang tepat, seluruh proyek
• Pastikan bahwa anggota tim diberi wewenang untuk mengambil keputusan atas nama rakyat yang mereka wakili tanpa menunggu persetujuan tingkat yang lebih tinggi.
• Aktif melibatkan perwakilan bisnis
• Membangun budaya satu tim
4) Jangan kompromi soal kualitas
• Mengatur tingkat kualitas di awal
• Memastikan kualitas yang tidak menjadi variable
• Desain, dokumen dan uji tepat
• Membangun kualitas dengan review konstan
• Uji awal dan terus menerus
5) Membangun secara bertahap
• Upayakan untuk pengiriman awal manfaat bisnis di mana mungkin
• Terus mengkonfirmasi solusi yang tepat sedang dibangun
• Secara formal menilai kembali prioritas dan kelayakan proyek yang sedang berlangsung dengan kenaikan masing-masing disampaikan
6) Mengembangkan Iterasi
Fokus pada penyajian produk sesering mungkin, dengan asumsi bahwa untuk memberikan sesuatu yang "cukup baik" sebelumnya selalu lebih baik daripada memberikan segalanya "sempurna" pada akhirnya. Dengan memberikan produk sering dari tahap awal dari proyek, produk dapat diuji dan ditinjau di mana catatan uji dan dokumen review dapat diperhitungkan pada iterasi berikutnya atau fase.
• Jangan cukup desain depan untuk menciptakan fondasi yang kuat
• Mengambil pendekatan iteratif untuk membangun semua produk
• Membangun umpan balik pelanggan dalam setiap iterasi untuk fokus pada solusi bisnis yang efektif
• Terimalah bahwa detail yang paling muncul kemudian daripada cepat
• Merangkul berubah - solusi yang tepat tidak akan berkembang tanpa itu
• Jadilah kreatif, bereksperimen, belajar, berevolusi
7) Berkomunikasi terus menerus dan jelas
Komunikasi dan kerja sama di antara semua stakeholder proyek diperlukan untuk menjadi efisien dan efektif.
• Jalankan tim setiap hari
• Gunakan lokakarya
• Gunakan teknik komunikasi yang kaya seperti pemodelan dan prototyping
• Iterasi kini berkembang solusi awal dan sering
• Menjaga dokumentasi ramping dan tepat waktu
• Mengelola harapan pemangku kepentingan seluruh proyek
• Mendorong informal komunikasi tatap muka di semua tingkatan
8) Menunjukkan kontrol.
• Gunakan tingkat yang sesuai formalitas untuk pelacakan dan pelaporan
• Buatlah rencana dan kemajuan terlihat oleh semua
• Mengukur kemajuan melalui fokus pada pengiriman produk daripada kegiatan selesai
• Mengelola secara proaktif
• Evaluasi kelayakan proyek terus berdasarkan tujuan bisnis
3. Scrum
Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan dan XP adalah menekankan metodologi yang berbeda sepasang ujian dulu pemrograman dan pembangunan. Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan yang bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan maintainably mungkin
Scrum memiliki prinsip yaitu:
1. Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain
2. Proses dapat beradaptasi terhadap perubahan teknis dan bisnis
3. Proses menghasilkan beberapa software increment
4. Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
5. Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
6. Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Scrum memiliki aktifitas yang meliputi :
1. Backlog
Backlog adalah daftar kebutuhan yang jadi prioritas klien, dan daftar yang dibuat dapat bertambah
2. Sprints
Aktifitas Sprints merupakanunit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30hari). Selama proses ini berlangsung backlog tidak ada penambahan.
3. Scrum Meetings
Aktifitas Scrum Meeting merupakan pertemuan yang rutin dilakukan perhari untuk evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.
4. Demo
Aktifitas Demo adalah penyerahan software increment ke klien didemonstrasikan dan dievaluasi oleh klien.
4. Crystal
Crystal diperkenalkan oleh Cockburn dan Highsmith, Development yang tidak pada jalur kritis, dapat menghabikan waktu lebih, mereka yang memperbaiki produk atau membantu oaring yang ada di jalur proyek kritis.
Karakteristik Crystal :
1. Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar karakteristik permasalahan
2. Menyarankan penggunaan workshop refleksi untuk review kebiasaan kerja tim
3. Selalu murah dan cepat berkomunikasi secara langsung.
4. Proyek berkembang sesuai ukuran team menjadi lebih atau luas dan metologi akan menjadi lebih tinggi.
5. Feature Driven Development
FDD awalnya dirancang oleh Jeff De Luca, untuk memenuhi kebutuhan spesifik dari satu bulan 15-, 50-orang proyek pengembangan perangkat lunak pada sebuah bank besar di Singapura 1997. Jeff De Luca menyampaikan satu set lima proses yang menutupi pengembangan model secara keseluruhan dan daftar, perencanaan, desain dan bangunan fitur. Proses pertama sangat dipengaruhi oleh pendekatan Peter Coad untuk pemodelan obyek. Proses kedua menggabungkan ide-ide Peter Coad tentang menggunakan daftar fitur untuk mengelola kebutuhan fungsional dan tugas-tugas pembangunan. Proses lainnya dan campuran proses menjadi suatu kesatuan kohesif merupakan hasil dari pengalaman Jeff De Luca. Sejak penggunaan sukses pada proyek Singapura, ada beberapa implementasi dari FDD.
Gambaran FDD pertama kali diperkenalkan kepada dunia dalam Bab 6 dari buku Modeling Jawa Warna dengan UML oleh Peter Coad, Lefebvre Eric dan Jeff De Luca pada tahun 1999. Kemudian, di Stephen Palmer dan buku Mac Felsing A Panduan Praktis untuk Pengembangan Fitur-Driven (diterbitkan pada 2002), deskripsi yang lebih umum FDD diberikan, seperti yang dipisahkan dari pemodelan Jawa dalam warna.
FDD asli dan terbaru proses dapat ditemukan di situs web Jeff De Luca di bawah wilayah 'Pasal'. Ada juga web komunitas yang tersedia di mana orang dapat mempelajari lebih lanjut tentang FDD, pertanyaan bisa ditanyakan, dan pengalaman, dan proses itu sendiri dibahas.
Karakteristik
penggunaan FDD sebaiknya digunakan jika; memekerjakan 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.
Kelebihan
• User dapat menggambarkan dengan mudah bentuk system.
• Dapat di organisasikan atau diatur ke dallamkelompok bisnis yang hirarki.
• Desain dank ode lebih mudah diperiksa secara efektif.
• Merancang proyek, penjadwalan dan jalur diarahkan oleh feature.
6. Agile Modeling
Agile pengembangan software adalah sekelompok metodologi pengembangan software yang didasarkan pada prinsip-prinsip yang sama. Agile metodologi umumnya mempromosikan proyek yang mendorong proses pengelolaan sering inspeksi dan adaptasi, sebuah filosofi yang mendorong kepemimpinan tim, mandiri dan akuntabilitas organisasi, satu set teknik praktek terbaik yang memungkinkan untuk pengiriman cepat dari perangkat lunak yang berkualitas tinggi, dan usaha pendekatan yang aligns pembangunan dengan kebutuhan pelanggan dan tujuan perusahaan. Konseptual kerangka dasar-dasar ini akan ditemukan di modern pendekatan manajemen operasional dan analisis seperti bersandar manufaktur, lunak sistem metodologi, pidato bertindak teori (pendekatan percakapan jaringan), dan Six Sigma.
Sejarah
Modern definisi Agile pengembangan software berkembang pada pertengahan tahun 1990-an sebagai bagian dari reaksi terhadap "berat" metode, dikatakan oleh seorang typified berat diatur, regimented, Mikro dikelola menggunakan waterfall model pembangunan. Proses ini berasal dari air terjun menggunakan model yang dianggap sebagai birokrasi, lambat, demeaning, dan tidak konsisten dengan cara yang sebenarnya pengembang perangkat lunak melakukan kerja efektif. Kasus dapat dibuat yang Agile dan pengembangan metode yg berulang adalah pembangunan kembali ke praktek mulai awal dalam sejarah pengembangan piranti lunak. Pada mulanya, Agile metode yang disebut "metode ringan." Pada tahun 2001, anggota tokoh masyarakat bertemu di Snowbird, Utah, dan mengadopsi nama "metode Agile." Nantinya, sebagian dari orang-orang yang membentuk Aliansi Agile, sebuah organisasi nirlaba yang mempromosikan pembangunan Agile.
Suatu proses pengembangan software adaptif diperkenalkan dalam karya oleh Edmonds (1974). terkemuka awal Agile metode mencakup banyak (1995), Crystal Clear, Extreme Programming (1996), adaptive Software Development, Fitur Terutama Pembangunan dan Pengembangan Sistem Dinamis Metode (DSDM) (1995). Ini biasanya disebut sebagai metodologi Agile sejak Agile Manifesto telah diterbitkan pada tahun 2001.
Metodologi
1. Analisis Proyek : Menganalisis proyek sistem yang ingin dikembangakan
2. Pengembangan Proyek : Proses pengembangan sistem dilakukan
3. Testing Proyek : Mencoba sistem yang sudah selesai sebelum diberikan kepada client Apabila sistem lulus test dan tidak ada perubahan-perubahan, maka sistem tersebut sudah bisa digunakan oleh client. Sementara apabila masih terjadi perubahan-perubahan maka kembali lagi ke proses awal.
Kelebihan dan Kekurangan
Kelebihan dari Agile Modeling:
1. Meningkatkan kepuasan kepada klien
2. Pembangunan system dibuat lebih cepat
3. Mengurangi resiko kegagalan implementasi software dari segi non-teknis
4. Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
Kelemahan dari Agile Modeling:
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
Contoh Penerapan dalam Kehidupan
Metode Agile telah banyak digunakan untuk pengembangan produk perangkat lunak dan beberapa dari mereka menggunakan karakteristik tertentu dari perangkat lunak, seperti teknologi objek. Namun, teknik ini dapat diterapkan untuk pengembangan produk non-software, seperti komputer, motorik kendaraan, peralatan medis, makanan, dan pakaian, lihat pengembangan produk Fleksibel .
Siklus Hidup
Metode tangkas difokuskan pada aspek yang berbeda dari siklus hidup pengembangan perangkat lunak. Beberapa fokus pada praktek (pemrograman ekstrim, pemrograman pragmatis, pemodelan tangkas), sementara yang lain fokus pada pengelolaan proyek perangkat lunak (pendekatan scrum). Namun, ada pendekatan menyediakan cakupan penuh atas siklus hidup pengembangan (metode pengembangan sistem dinamis, atau DSDM, dan IBM Rational Unified Process, atau RUP), sementara sebagian besar dari mereka yang cocok dari persyaratan spesifikasi fasa pada (pengembangan fitur -driven, atau FDD, misalnya). Dengan demikian, ada perbedaan yang jelas antara berbagai metode pengembangan perangkat lunak tangkas dalam hal ini. Sedangkan DSDM dan RUP tidak perlu melengkapi pendekatan untuk mendukung pengembangan perangkat lunak , yang lain lakukan untuk tingkat tertentu. DSDM dapat digunakan oleh siapa saja (meskipun hanya anggota DSDM dapat menawarkan produk atau jasa DSDM). RUP, maka, merupakan lingkungan pengembangan dijual secara komersial (Abrahamsson, Salo, Rankainen, & Warsta, 2002).
Sumber:
https://dwijaantara.wordpress.com/2010/10/25/agile-method/
http://www.proweb.co.id/articles/erp/pengertian_scrum.html
http://kamarujung.blogspot.com/2013/04/pengertian-fdd.html
http://fannynurrizky06.blogspot.com/2013/11/agile-software-development.html
Tidak ada komentar:
Posting Komentar