Kupas Tuntas Seputar Agile Dan Contoh Penerapannya
Startup, perusahaan digital, atau bahkan programmer yang sedang melayani clientnnya untuk mengerjakan sebuah aplikasi memiliki metode.
Metode ini menjadi panduan baku yang kerap digunakan dimananpun dalam pengemabangan produk digital
Lebih mudahnya saat kita membangun aplikasi mobile. Kita akan mempelajari bahasa pemograman apa saja yang dibutuhkan, juga serba serbi framework dan tool yang memudahkan segala prosesnya
Metode yang baru saja saya ceritakan diatas dinamakan Agile. Sedangkan project yang menerapkan konsep tersebut dinamakan, Agile Project
Apa Itu Agile dan Agile Project?
Menurut Wikipedia.
Sekumpulan praktek yang bertujuan untuk menaikkan keefeketifan pengembangan suatu aplikasi secara profesional, tim dan terorganisir. Agile melibatkan pengembangan solusi melalui usaha secara kolaboratif dari sifat yang sudah terorganisir, fungsionalitas dan pelanggan
Metode ini sangat mengandalkan kolaborasi. Mulai dari para engineer hingga product manager, semuanya harus melalui sebagian proses agile
Sedangkan proses Agile memiliki alur seperti ini
Data. Data ini diambil biasanya dari sentimen para konsumen aplikasi kita. Cara mendapatkannya sederhana, biasanya kita akan melihat dari feedback yang diberikan pengguna, melihat rating bintang, atau turun langung ke forum forum seputar kendala dan manfaat yang didapat dari aplikasi kita
Jika aplikasi kita baru, maka kita bisa melihat keunggulan aplikasi kompetitor dan menerapkannya sendiri. Pastinya akan dijumpai kekurangan, tugas kita adalah menangggulanginya
Learn. Setelah kita mendapatkan data berupa feedback atau bisa jadi kebutuhan pasar, maka selanjutnya kita mempelajari teknologi yang bisa menyelesaikan rangkaian permasalahan. Jika kita ingin membuat aplikasi mobile, misalnya. Maka teknologi apa yang murah, efektif dan mudah dikolaborasikan bersama product manager dan engineer.
Product. Setidaknya setelah kita mempelajari segala tetek bengek, dan permasalahan, dan mengatasinya. Maka semua itu harus berakhir menjadi sebuah product yang disajikan kepada konsumen
Measure. Product yang sudah jadi harus kita ukur. Mulai dari skalabilitasnya, kapasitasnya, dan beberapa faktor yang barang kali bisa menjadi kesempatan kita untuk mengembangkannya. Termasuk mengukur target pasar siapa saja yang menikmati produk kita
Repeat. Ulangi proses ini, kembali lagi dapatkan data dari segala pengukuran (measure), pelajari, jadikan product yang lebih baik, ukur lagi, dan dapatkan data. Seterusnya, secara berulang ulang
Sedangkan Agile Project adalah project yang dijalankan sesuai dengan proses diatas.
Sebenarnya tidak ada definisi baku atas bagaimana agile itu bekerja sendiri. Maka dari itu di akhir postingan ini saya akan menjelaskan seputar agile manifesto
Jenis Jenis Agile Development
Karena memang tak ada terms yang mendefisinikan agile ini, maka ada beberapa jenis pengembangan aplikasi/product kita di luaran sana, yang sama sama menerapkan prinsip agile, yang berulang ulang
- Adaptive Software Development (ASD)
- Agile Modelling (AM)
- Crystal
- Dynamic System Development Method (DSDM)
- Extreme Programming (XP)
- Feature Driven Development (FDD)
- Rational Unified Process
- Scrum Methodology
Menarapkan Agile Untuk Para Developer
Apakah kamu seorang developer, seorang programmer, atau seorang engineer? Maka sepertinya kita harus mengerti bagaimana prinsip agile ini diterapkan di lingkungan para developer
Memang sepertinya apa yang saya akan jelaskan dibawah ini terkesan nyeleneh.Maklum, developer adalah orang yang bekerja dengan orang banyak dan menuntut produktifitasan dan fungsionalitas. Jika menjadi nyeleneh adalah satu satunya cara untuk menggapai keefektifitasan, maka mau tak mau semua itu harus dikerjakan
Jangan Mulai Dengan Proses
Lho, kenapaa begitu? Bagaimana saya bisa menyelesaikan product saya jika saya tak boleh melakukannya dengan proses?
Bukan, tanpa proses disini adalah maksudnya menyusun segala proses dan berharap segala perencanaan itu sesuai dengan yang diharapkan
Alih alih menyusun rencana dan terlalu stick dengan perencanaan, bagaimana jika kita buat product itu berdasarkan data apa saja yang kita dapat, mulai dengan sedikit proses, evaluasi, buang yang tak perlu, dan tambahkan jika itu mendukung
Saya akan membagikannya menjadi tiga bagian
1. Mulai dengan proses sekecil mungkin
2. Dapatkan Feedback
3. Tambah/Kurangi Proses Kapanpun dibutuhkan. Ingat, tak ada aturan dogmatis tentang bagaimana proses agile ini bekerja
Inilah saat saat dimana kita memungkinkan menerapkan semua itu
Setiap hari. Jika kamu adalah seorang manager dari proses ini, maka biarkan para engineer bekerja satu sama lain dan berkolaborasi
Setiap minggu. Setiap minggu kumpulkanlah para engineer untuk bisa meeting. Tak usah berbicara banyak seputar bagaimana meningkatkan prodcut, namun cukup bicarakan bagaimana tim kita bisa semakin efektif dalam beraktifitas
Ketahui Bagaimana Software Project Management Bekerja Terlebih Dahulu
Memang saat ini kita sedang membicarakan bagaimana sistem agile bekerja, namun sudah selayaknya paa engineer dan developer bagaimana project pembuatan software
1. Kumpulkan Yang Dibutuhkan
2. Rancang Sistem
3. Kembangkan Sistem
4. Test dan Cari Bug (jika ada)
5. Deploy Sistem
6. Maintain (itu pun hanya terkadang)
Proses ini biasa disebut sebagai Waterfall Model dikatakan waterfall (air terjun) karena memang proses ini hanya mengandalkan langkah langkah satu arah.
Untuk aplikasi/product sederhana menggunakan warerfall memang lebih mudah dikerjakan. Namun ketika kita menghadapi case yang lebih besar maka metode ini tidak efektif. Karena kita tak bisa kembali kepada proses dimana aplikasi/product kita direview atau dibenahi
Maka dari itu kita harus menerapkan metode agile. Karena agile sangat mendukung konsep kolaboratif disetiap tim dan berjalan dengan berulang ulang.
Agile manifesto adalah sebuah konsep dan nilai nilai bagaimana agile diterapkan. Berikut
1. Individual & Interaksi > Proses dan Alat
2. Software Yang Berjalan Dengan Baik > Dokumentasi Yang Mudah Dipahami
3. Kolaborasi Antar Konsumen > Negosiasi Kontrak
4. Adaptif Terhadap Perubahan > Mengikuti Rencana
Jika kita bekerja pada lingkungan pekerjaan yang kolot. Maka sepertinya, agile metodology diatas akan sangat mengejutkan. Apakah mungkin mengandalkan para manusia ketimbang proses dan perencanaan? Tentu agile menjamin penyelesaian project seperti itu, karena di lingkungan pekerjaan pada saat ini pun mengikuti perubahan berdasarkan konsumen sudah sangat lumrah terjadi
Setelah kita membahas metodologi, nilai nilai, prinsip dan beberapa konsep bagaimana agile diterapkan. Kini kita akan belajar hal hal yang lebih konkrit
Agile Toolset. Perlengkapan Sebelum Segalanya Dimulai
Layaknya sebuah pertempuran atau membangun istana. Maka kita memerlukan cangkul, pasir dan semen untuk mewujudukannya
Begitu pula untuk membangun tim yang berjalan secara agile. Kita membutuhkan segala perlengkapan, alat yang secara konkrit bisa kita rasakan. Sehingga kita merasa kita adalaha bagian dari proses ini
Saya mulai dengan mengetahui bagaimana proses agile bekerja. Barangkali sampai sini ada yang bingung terkait dengan proses, mengapa kita tak boleh mengedepankannya terlebih dahulu
Buat Aplikasi PHP Pertamamu Yuk!
Proses Tak Perlu Baku atau Too Much Sticked To The Plan
Betul, ada beberapa hal yang bisa kita sebut juga sebagai proses dan itu tak masalah. Gunakan beberapa proses atau cara dibawah sesuai dengan studi kasus kalian. Kita akan bedah satu persatu
Stands-Up. Meeting harian yang fokus pada tiga pertanyaan. Apa yang sudah dikerjakakan kemarin, hari ini, dan apakah ada sesuatu yang menghalangi segala rutinitas mereka
Retrospectives. Meeting yang mendiskusikan tiga hal. Apa yang sudah berjalan dengan baik, apa yang belum, dan apakah ada yang harus dirubah dari proses yang sudah berjalan kemarin?
Back-logs. Daftar segala task atau tugas yang harus dikerjakan
Sprints. Waktu yang ditentukan untuk menyelesaikan suatu daftar pekerjaan (Backlogs), biasanya berkisar antar 1 atau 2 minggu
Pair Programming. Ketika dua programmer mengerjakan pekerjaan bersama sama. Biasanya satu akan mengajakan dan yang lain lebih dominan untuk mendengarkan. Sangat cocok untuk team-building untuk segi ilmu
Pull Request. Ketika kode sudah selesai, maka kode tersebut akan direview. Sangat baik untuk menunjang kualitas kode yang baik
Roles. Pastikan Seluruhnya Punya Tanggung Jawab Yang Jelas
Project Manager / Scrum Master. Peran yang memiliki tugas untuk memastikan segalanya berjalan dengan baik dan lancar. Karena pada dasarnya programmer atau engineer tak menyukai segala aktifitas adminisrasi pada pekerjaan mereka, sehingga diperlukan seseorang yang menghandle semua itu.
Product Owner. Biasanya orang ini tidak memiliki skill yang mendalam pada bagian teknologi, namun kemampuan yang diperlukan darinya adalah mengkomunikasikan kebutuhan programmer yang
Agile Methodology
Ada banyak agile methodology di luar sana. Namun saya akan memberikan dua contoh saja, yaitu Scrum dan Kanban. Keduanya sangat cocok bagi kita yang ingin menerapkan prinsip agile ini sebagai permulaan
Kanban
Kanban sangat cocok diterapkan untuk peningkatan product yang konsisten. Biasanya kita akan meletakkan beberapa tugas pada suatu papan atau buletin (Jika kalian menggunakan trello seharusnya sangat familiar dengan ini) lalu nanti para developer atau engineer akan menyelesaikannya satu persatu tanpa ada aturan deadline
Scrum
Jika kalian masih ingin menggunakan prinsip deadline sepertinya, Scrum cocok dipilih. Katakanlah project yang saat ini dikerjakan harus selesai selama satu bulan. Maka kalian membaginya menjadi beberapa hari atau beberapa minggu untuk melaporkan segala hasil prosesnya. Setelah itu hasil pekerjaan dievaluasi untuk meraih hasil terbaik
Ingin Kerja Di Startup? Cari Tahu Dapat Tawaran Pekerjaan Lewat LinkedIn
Contoh Contoh Penerapan Agile Pada Perusahaan Digital
Nama nama perusahana dibawah menerapkan proses agile dalam bisnisnya. Namun jangan sampai terpaku atau menganggap bahwa proses yang mereka lakukan sudah sempurna. Justru dengan mereka menerapkan proses agile, mereka sebenarnya masih terbuka atas segala perubahaan dan adaptasi.
Lihatlah bagaimana keluaran atau hasil terbaik yang mereka lakukan. Jika itu bermanfaat, bisa saja kita terapkan pada bisnis yang kita jalani saat ini
Spotify. Autonomous Tribes
Dulu Spotify mengadopsi konsep fairly verbose framework, dimana mereka membagi divisi tim engineer menjadi tiga bagian Tribes, Chapters dan Guilds. Ini memungkinkan segala pengembangan aristektur aplikasi berjalans sangat ter-decentralized atau tak terpusat dan terbagi bagi sesuai dengan divisnya masing masing
Amazon. Press Release
Tak banyak aturan atau framework yang ada dalam konsep yang Amzon pilih ini. Sesuai dengan namanya Press Release, tim engineer pada Amazon lebih mengedepankan alasan atau "why" atas segala peningkatan fitur dan dampak yang mereka ingin berikan dari para konsumen mereka
WhatsApp. No Process
Betul, No Prosess. Tanpa proses. Bahkan di salah satu pertemuan antat tim pada perusahaan diakui bahwa setiap engineer memiliki semacam backlog dimana mereka memiliki kuasa atas segala apa yang mereka kerjakan. Dan itupun hanya satu yang diberikan: Benahi bugs terlebih dahulu
Ini juga memungkinkan para engineer bisa saling berkomunikasi dan bekerja sama atas bug apa saja yang mereka atasi
Tulisan ini bisa kalian baca dalam versi bahasa inggris disini
Comments
Post a Comment