• Tidak ada hasil yang ditemukan

Pengembangan PL menggunakan Metode Agile. Agile Software Development

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pengembangan PL menggunakan Metode Agile. Agile Software Development"

Copied!
33
0
0

Teks penuh

(1)

Agile Software Development

Pengembangan PL menggunakan

Metode Agile

(2)

Topik

 Pengembangan PL dengan Cepat (rapid)

 Metode Agile

 Prinsip-prinsip Metode Agile

 Penerapan Metode Agile

 Kelemahan Metode Agile

(3)

Pengembangan PL dengan cepat (rapid)

 Pengembangan PL cepat adalah salah satu kebutuhan penting untuk sistem PL.

Bisnis beroperasi dengan cepat, perubahan

kebutuhan yang cepat menjadikan sulit sekali untuk membuat kebutuhan PL yang stabil.

PL harus berevolusi dengan cepat untuk memenuhi

kebutuhan bisnis yang cepat berganti.

(4)

Pengembangan PL dengan cepat (rapid)

 Spesifikasi, desain, dan implementasi dilakukan secara berselang seling.

 Sistem dibangun dalam urutan versi, dimana

pemangku kepentingan terlibat dalam evaluasi tiap versi.

 Antarmuka (GUI) dibangun menggunakan IDE

(integrated development environment) atau kakas

grafis.

(5)

Metode Agile

 Ketidakpuasan akan metode desain tahun 1980-an dan 1990-an menyebabkan lahirnya metode Agile.

 Metode Agile memiliki karakteristik:

Fokus kepada kode daripada desain.

Berbasis kepada pendekatan iteratif.

Menyelesaikan PL dengan cepat dan berevolusi

dengan cepat untuk memenuhi perubahan kebutuhan pengguna PL.

Menghilangkan biaya ekstra (overhead) pada proses PL dan merespon dengan cepat perubahan

kebutuhan tanpa kerja ulang yang terlalu banyak.

(6)

Agile Manifesto

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right,

we value the items on the left more.

(7)

Prinsip-prinsip Metode Agile

Prinsip Deskripsi

Keterlibatan pengguna Pengguna harus ikut terlibat dalam proses pengembangan.

Peran mereka adalah untuk menyediakan dan memberi prioritas terhadap kebutuhan sistem baru, dan mengevaluasi iterasi pada sistem.

Penyelesaian bertahap PL dibangun secara bertahap dengan pengguna ikut

menentukan kebutuhan yang termasuk dalam setiap tahapan.

Fokus pada orang bukan proses

Keahlian dan kemampuan tim pengembang harus

dimanfaatkan. Anggota tim harus diberi kebebasan untuk menentukan cara bekerja mereka sendiri.

Mengakomodasi Perubahan

Mengantisipasi kebutuhan sistem akan berubah sehingga membuat desain sistem yang dapat mengakomodasi perubahan.

Menjaga Fokus kepada kesederhanaan PL yang sedang dibangun.

(8)

Penerapan Metode Agile

 Pengembangan PL dimana produk yang dibangun berskala kecil atau menengah.

 Pengembangan sistem dimana ada komitmen jelas dari pengguna untuk ikut terlibat didalam proses pengembangan PL dan tidak ada banyak aturan luar dan regulasi yang mempengaruhi PL.

 Dikarenakan fokus kepada sistem yang kecil, maka

penerapan metode Agile pada sistem besar akan

menemukan masalah.

(9)

Kelemahan Metode Agile

 Akan sulit menjaga minat pengguna PL untuk tetap terlibat dalam proses pengembangan.

 Anggota tim mungkin tidak sesuai dengan karakteristik metode Agile.

 Memberi prioritas pada perubahan akan sulit jika ada banyak pemangku kepentingan.

 Menjaga kesederhanaan sistem memerlukan kerja ekstra.

 Kontrak bisa menjadi masalah sama halnya dengan

pendekatan pengembangan iteratif.

(10)

Metode Agile dan Perawatan PL

 Banyak organisasi lebih banyak menghabiskan

waktu merawat PL dibandingkan membangun PL.

 Sehingga agar metode Agile sukses maka perawatan PL harus didukung penuh sama halnya dengan

pengembangan PL.

 Masalah bisa muncul jika tim pengembang asli

tidak dapat dipertahankan.

(11)

Plan-driven dan Pengembangan Agile

 Pengembangan dengan Plan-driven

Terbagi atas tahapan-tahapan yang keluarannya telah direncanakan diawal.

 Pengembangan dengan Agile

Spesifikasi, desain, implementasi, dan uji coba

dilakukan secara berselang. Keluaran dari proses

pengembangan ditentukan melalui proses negosiasi

selama proses pengembangan PL.

(12)

Plan-driven dan Pengembangan Agile

(13)

Isu Teknis, SDM, dan Organisasi

 Kebanyakan proyek melibatkan elemen-elemen dari plan-driven dan proses Agile. Keseimbangan antara keduanya tergantung dari:

Apakah sangat penting untuk memiliki spesifikasi dan desain yang sangat detil sebelum berpindah ke

implementasi? Jika benar maka kemungkinan pendekatan plan-driven lebih cocok.

Apakah melibatkan pengguna PL untuk mendapatkan

umpan balik dengan cepat sangat realistis? Jika benar

gunakan metode Agile.

(14)

Isu Teknis, SDM, dan Organisasi

 Seberapa besar sistem yang akan dibangun?

Metode agile cocok dengan sistem yang dibangun oleh tim kecil. Jika membutuhkan tim besar maka pendekatan plan-driven lebih cocok.

 Apakah tipe dari sistem yang akan dibangun?

Pendekatan plan-driven dibutuhkan untuk

membangun sistem yang membutuhkan banyak analisis sebelum implementasi.

 Berapa lama umur hidup sistem? Sistem dengan

umur hidup lama membutuhkan dokumentasi

(15)

Isu Teknis, SDM, dan Organisasi

 Teknologi apa yang tersedia untuk mendukung pengembangan sistem? Metode agile tergantung pada kakas berkualitas untuk mengakomodasi desain yang berevolusi.

 Bagaimana organisasi tim pengembang? Jika time pengembang tersebar, maka sebuah dokumen

desain perlu dibuat untuk berkomunikasi.

 Seberapa bagus kualitas desainer dan programer di tim pengembang? Metode agile membutuhkan

kualitas individu yang lebih tinggi.

(16)

Extreme Programming (XP)

(17)

Topik

 Extreme Programming

 Refactoring

 Uji coba (Testing)

 Pair Programming

(18)

Extreme Programming

 Metode agile yang paling terkenal dan banyak digunakan.

 Pendekatan “ekstrim” terhadap pengembangan iteratif.

Versi-versi baru dibangun beberapa kali dalam satu hari.

Tahapan-tahapan diselesaikan setiap 2 minggu.

Semua uji coba harus dijalankan untuk setiap build,

dan sebuah build diterima jika uji coba berjalan

(19)

XP dan Prinsip Agile

 Pengembangan bertahap didukung melalui rilis sistem kecil namun sering.

 Keterlibatan pengguna berarti keterlibatan penuh pengguna di dalam tim.

 Fokus pada orang melalui pair programming, kepemilikan bersama, dan proses yang

menghindari waktu kerja yang panjang.

 Perubahan diakomodir melalui rilis sistem yang teratur.

 Menjaga kesederhanaan sistem dengan melakukan

refactoring kode.

(20)

Putaran Rilis XP

(21)

Praktek-praktek XP

Principle or practice Description

Incremental planning Requirements are recorded on story cards and the stories to be included in a release are determined by the time available and their relative priority. The developers break these stories into development ‘Tasks’. See Figures 3.5 and 3.6.

Small releases The minimal useful set of functionality that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release.

Simple design Enough design is carried out to meet the current requirements and no more.

Test-first development An automated unit test framework is used to write tests for a new piece of functionality before that functionality itself is implemented.

Refactoring All developers are expected to refactor the code continuously as

(22)

Praktek-praktek XP

Pair programming Developers work in pairs, checking each other’s work and providing the support to always do a good job.

Collective ownership The pairs of developers work on all areas of the system, so that no islands of expertise develop and all the developers take responsibility for all of the code. Anyone can change anything.

Continuous integration As soon as the work on a task is complete, it is integrated into the whole system. After any such integration, all the unit tests in the system must pass.

Sustainable pace Large amounts of overtime are not considered acceptable as the net effect is often to reduce code quality and medium term productivity

On-site customer A representative of the end-user of the system (the customer) should be available full time for the use of the XP team. In an

(23)

Skenario Kebutuhan

Dalam XP, pengguna adalah bagian dari tim XP, dan

bertanggung jawab untuk mengambil keputusan dalam spesifikasi kebutuhan.

Kebutuhan pengguna dituangkan dalam bentuk skenario atau “user stories.”

Skenario tertulis diatas kertas dan tim pengembang membagi menjadi tugas-tugas implementasi

(implementation tasks). Tugas tersebut menjadi basis penjadwalan dan perhitungan biaya.

Pengguna menentukan skenario yang akan diikutkan

pada rilis selanjutnya berdasarkan skala prioritas.

(24)

Contoh: skenario “prescribing

medication”

(25)

Contoh “task cards” untuk prescribing

medication

(26)

Refactoring

 Tim programmer mencari kemungkinan untuk meningkatkan kualitas PL meskipun tidak ada

kebutuhan mendesak untuk peningkatan kualitas PL.

 Membuat kode PL mudah dipahami sehingga mengurangi kebutuhan akan dokumentasi PL.

 Perubahan lebih mudah dilakukan karena kode yang terstruktur dan jelas.

 Akan tetapi, beberapa perubahan membutuhkan

refactoring pada arsitektur dan membutuhkan

(27)

Contoh Refactoring

 Organisasi ulang hirarki kelas untuk menghilangkan duplikasi kode.

 Membersihkan dan mengganti nama-nama atribut dan method agar mudah dipahami.

 Mengganti kode dengan method-method yang

sudah tersedia didalam pustaka.

(28)

Uji coba dalam XP

 Uji coba memegang peranan penting dalam XP.

Program diuji coba setiap ada perubahan.

 Fitur-fitur uji coba dalam XP:

Pengembangan berbasis uji coba (test first driven development)

Pengembangan uji coba bertahap dari skenario (incremental test development)

Keterlibatan pengguna dalam pembuatan uji coba dan

validasi

(29)

Test-first development

 Menulis kode uji coba sebelum kode implementasi untuk mengklarifikasi spesifikasi kebutuhan yang akan diimplementasikan.

 Uji coba ditulis sebagai program sehingga dapat dijalankan secara otomatis.

Mengandalkan framework uji coba, contoh: JUnit.

 Kode uji coba terdahulu dan kode baru dijalankan secara otomatis jika fungsionalitas baru

ditambahkan. Untuk memastikan bahwa

penambahan fungsi tidak menimbulkan error.

(30)

Pair Programming (1)

 Dalam XP, programmer bekerja secara berpasangan, duduk bersama membuat kode.

 Membantu membangun rasa kepemilikan kode dan menyebarkan pengetahuan ke seluruh tim.

 Berperan sebagai proses review informal.

 Produktivitas pair programming setara dengan dua orang bekerja secara independen.

 Dua programmer duduk bersama dengan satu

komputer.

(31)

Pair Programming (2)

 Programmer dipasangkan secara dinamis sehingga seluruh anggota tim saling mengenal selama proses pengembangan PL.

 Berbagi pengetahuan menyebabkan menurunnya

resiko kegagalan proyek jika anggota meninggalkan

tim.

(32)

Keuntungan Pair Programming

 Mendukung ide kepemilikan dan tanggung jawab bersama terhadap sistem.

 Berperan sebagai proses review informal karena

setiap baris kode paling tidak dilihat oleh minimal 2 programmer.

 Mendukung proses refactoring yang merupakan

proses peningkatan kualitas PL.

(33)

Referensi

Sommerville, I., Software Engineering 8th edition,

Addison-Wesley, 2007

Referensi

Dokumen terkait

Data perusahaan pabrik yang digunakan dalam penelitian ini relatif

Persamaan peneliti dengan Aji Digdaya adalah sama-sama membahas mengenai Organisasi Muhammadiyah dan seting tempat yang sama yakni Yogyakarta, sedangkan perbedaanya

Krisma Pradana [11], dalam penelitiannya merancang sebuah aplikasi encoder dan decoder yang ditujukan untuk melakukan obfuscation terhadap sebuah perangkat lunak

Karakter morfometrik kerang lumpur antara jenis kelamin jantan di Pulau Tobea dan jenis kelamin betina di Pesisir Lambiku berbeda nyata yang ditunjukkan dengan nilai t hitung

benar menjelaskan tentang penerapan fungsi evaluasi dalam kegiatan dakwah di Masjid Agung Kendal, maka penulis mengumpulkan data dari beberapa sumber, diantaranya

Hal ini sama seperti yang dikatakan Fauz dan Rosidi (2008) bahwa tingginya collateral assets yang dimiliki perusahaan akan mengurangi konflik kepentingan antara

Bagian tersebut terkait dengan routing pada AODV-BR yang masih menggunakan mekanisme routing tradisional yang hanya menitik beratkan pencarian rute berdasarkan minimal hop,

Tujuan dari sistem ini yaitu dapat membantu Kelurahan Bukit Lama dalam mengelola penduduk, mengelola surat, mengelola laporan penduduk, laporan surat, laporan