Daftar Isi
Sebelum menuju pembahasan utama yaitu penerapan metode Agile dalam suatu pengembangan perangkat lunak, kita akan mengenal dulu apa itu Agile, apa saja langkah yang perlu diambil dan mengapa Agile ini disarankan untuk diterapkan dalam pengembangan suatu perangkat lunak.
1. Pengenalan Agile
Agile adalah suatu metode pengembangan software yang berupa sekelompok metodologi dengan prinsip yang sama untuk pengembangan dengan proses yang cepat dan mudah beradaptasi dengan perkembangan yang ada. Pengembangan dengan metode ini diharapkan memiliki hasil yang bagus dan sesuai dengan kecepatan yang dimiliki oleh tim pengembang, disebutkan seperti itu karena dari kata Agile memiliki sifat cepat, ringan, waspada, dan bergerak.
Pengembangan dengan Agile ini merupakan penjabaran dari 4 poin utama yang disebut Agile Allience’s Manifesto yaitu
Team Interaction
Interaksi team lebih penting dalam pengembangan software dengan metode agile, karena jika interaksi di dalam team kurang maka dalam proses pengembanga akan terhambat bahkan tertunda jika tidak ada interaksi yang baik bahkan poin digambarkan bahwa interaksi antar team lebih baik dan penting daripada proses dan alat yang diperlukan.
Working Software
Perangkat lunak yang berfungsi dengan menggunakan metode Agile lebih baik untuk ditampilkan kepada klien daripada kumpulan dokumentasi hasil pengembangan yang telah dibuat. Software yang berfungsi lebih baik juga karena lebih menunjukkan bahwa pengembangan nya berhasil dan sudah bisa digunakan oleh klien.
Client Collaboration
Komunikasi dan hubungan dengan klien dalam bentuk kolaborasi pengembangan software saat menggunakan metode Agile lebih penting, karena pengembangan itu memerlukan klien agar bisa didiskusikan dan dimprovisasi bersama sehingga hasil akhir yang diperoleh bisa maksimal.
Response of Change
Suatu pengembangan dengan menggunakan metode Agile memerlukan respon terhadap perubahan yang terjadi, entah perubahan karena situasi dan kondisi atau perubahan karena keinginan klien untuk merubah konsep software yang sedang dikerjakan.
2. 12 Prinsip Agile
Dalam metode Agile ada 12 prinsip yang harus diterapkan dalam pelaksanaannya, seluruh prinsip itu menjadi dasar dan menjadi syarat agar sebuah team bisa menggunakan metode Agile untuk mengembangkan software dengan sukses. Berikut adalah 12 prinsipnya dan penjabaran menurut pendapat saya
- “Our highest priority is to satisfy the customer throught early and continous delivery of valuable software
Agile memiliki prinsip untuk memprioritaskan kepuasan pelanggan sebuah team developer yang menggunaan metode Agile dalam pengembangannya.
- “Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.”
Team yang mengembangkan software dengan metode Agile akan menerima perubahan keinginan yang diterima dari klien bahkan saat sudah akan selesai.
- “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”
Menunjukkan software yang berfungsi secara rutin kepada klien sebagai bukti nyata bahwa fitur dari software berfungsi.
- “Business people and developers must work together daily throughout the project.”
Team pengembang dan pihak konsumen harus bekerja sama terus menerus secara rutin selama pengerjaan software.
- “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”
Mengembangkan proyek dengan anggota team yang termotivasi sehingga bisa diberi kepercayaan untuk menyelesaikan proyek tersebut.
- “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.”
Melakukan komunikasi secara langsung dan aktif secara efektif untuk menyampaikan informasi terkait pengerjaan proyek.
- “Working software is the primary measure of progress.”
software yang berfungsi menjadi tolak ukur suatu kemajuan dalam pengerjaan proyek yang sedang dilakukan.
- “Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.”
Memprioritaskan pengembangan secara continue agar klien bisa menggunakan software secara stabil dan berkelanjutan
- “Contionous attention to technical excellence and good design enchances agility.”
Fokus kepada mengoptimalkan aspek teknis dan konsep rancangan untuk mempersingkat waktu pengembangan
- “Simplicity–the art of maximizing the amount of work not done–is essential.”
Mengerjakan proyek sesuai standar keinginan klien, tidak perlu menambahkan fitur lain yang tidak diinginkan klien agar pekerjaan menjadi efektif dalam pengerjaan yang waktunya terbatas.
- “The best architectures, requirements, and designs emerge from self-organizing teams.”
Manajemen resource, dan konsep pengembangan yang optimal dari team yang bisa merencanakan nya secara mandiri
- “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”
Memikirkan suatu cara secara rutin tentang bagaimana agar team nya bisa berkembang secara efektif berdasar kebiasaan dalam mengerjakan suatu proyek
3. Cara Kerja Pengembangan Metode Agile
Cara mengembangkan suatu Software dengan metode Agile adalah dengan melengkapi faktor berikut
Team Composition
Dalam pengembangan metode Agile ada 3 peran berikut
- Product Owner menentukan konsep software yang akan dikerjakan oleh team yang menggunakan metode Agile , serta melakukan test dan memberi comment terhadap software jika sudah selesai dikerjakan.
- Manajer/Scrum Master bertugas untuk menghubungkan team developer dengan klien agar dapat meng evaluasi dan men target jangka waktu pengerjaan software
- Team Development adalah team yang akan melakukan pengembangan bersama dengan product owner agar software yang dikerjakan sesuai dengan keinginan owner.
Story
Story adalah list dari resource yang dibutuhkan, dan fitur yang akan diisikan ke dalam software yang akan dibuat. Story biasanya merupakan permintaan dari klien untuk team pekerja tentang bagaimana software ini sesuai dengan keinginan sang klien, agar klien bisa memahami sebuah story maka story harus ditulis dengan bahasa yang mudah dipahami klien tetapi tidak menjauh dari inti yang ada di story tersebut.
Sprint
Sprint adalah rapat yang dilakukan secara rutin selama pengerjaan sampai software yang dikerjakan itu selesai dan klien merasa puas dengan hasilnya. Syarat yang wajib ada saat akan melakukan sprint adalah
- Tujuan melakukan sprint
- Kehadiran seluruh team
- Sprint Backlog atau daftar story yang akan dibahas di dalam sprint
- Penjadwalan demonstrasi software yang dikerjakan
- Jadwal dan lokasi akan dilakukan nya sprint
Semua itu harus disiapkan sebelum sprint dilakukan agar memberikan hasil yang maksimal dan menjadi rapat yang efektif dalam pembahasannya.
4. Tujuan adanya metode Agile untuk software development
Berikut tujuan adanya metode Agile untuk pengembangan software adalah sebagai berikut
Tujuan adanya metode Agile dalam pengembangan software
- Menciptakan software yang berfungsi secara efektif dan memiliki harga jual tinggi
- Mengembangkan software agar bisa selalu berkembang, memiliki fungsionalitas yang banyak, dan sesuai dengan kebutuhan klien
- Menyesuaikan software yang dibuat agar sesuai dengan kebutuhan pengguna sehingga waktu dan biaya pengerjaan bisa di kontrol
- Memproduksi suatu software dengan fungsionalitas yang maksimal walau waktu dipercepat dan biaya yang diminimalisir
- Meminimalisir kesalahan dalam pembuatan software dan mempermudah perubahan rencana apabila ada kesalahan saat pembuatan
- Memaksimalkan kesempatan untuk berkolaborasi dengan klien untuk membahas perkembangan proyek dan untuk menerima feedback dari klien setiap diadakan nya test software yang dibuat
- Membuat suatu manajemen team yang bisa mengatur diri sendiri yang terdiri dari orang orang terbaik di bidangnya