Agile adalah satu prinsip dalam model project management
yang sekarang ini banyak digunakan. Hal ini terkait dengan berkembangnya banyak
produk teknologi, software produk, aplikasi, yang dikembangkan oleh startup yg
menjamur. Jika dulu kita mengenal project management banyak digunakan untuk
project konstruksi, building, dan bangunan fisik lainnya. Sekarang dengan trend
perusahaan yang mengutamakan scalability dan low asset, maka perusahaan
membangun “virtual asset” yaitu software as a service. Pendekatan project
management yang digunakanpun ikut berubah, jika dulu mengikuti proses
waterfall, sekarang mengikuti agile.
Pola waterfall mensyaratkan kita sudah memiliki “bangunan
yang sudah jadi secara mental”. Yang kemudian dituangkan dalam produk
requirement. Misalkan membangun rumah, kita sudah tahu persis bentuk rumahnya,
bentuk tampilan muka dan belakang, pintunya dimana, jendela dimana, kamar ada
berapa, tembok menggunakan material apa, pintu, jendela, ubin pakai material
apa, tembok rumah dan dinding dalam rumah menggunakan cat apa, dsb. Kita sudah
tahu persis perwujudan fisik rumah yang sudah jadi secara mental. Kemudian hal
ini dituangkan dalam perwujudan product requirement dan spesifikasi.
Ada moto dalam project management waterall yaitu “no gold
plating”. Tidak ada spesifikasi dan scope yang berubah saat project berjalan.
Semuanya dikunci dan dituangkan dalam kontrak yang disepakati sebelum project
dijalankan. Kemudian proses dijalankan mulai dari fase initiating, planning,
executing, control, sampai closing. Tidak ada gold plating, tidak ada perubahan
scope. Satu perubahan pada spesifikasi akan menimbulkan masalah ke project plan
keseluruhan. Goal yang harus dicapai adalah On Quality, On Time, On Cost, dan
On Scope.
Setiap fase dijalankan secara serial, mulai dari fase
initiating ke planning dan seterusnya. Tidak ada turning back, karena akan
mengganggu project secara keseluruhan. Di dalamnya kita juga mengenal knowledge
areas yaitu management time, cost, scope, resources, quality, procurement,
communication, risk, dsb. Saat pola waterfall ini diadopsi oleh project manager
dalam membuat produk software maka masalah muncul. Software beda dengan produk
fisik. Produk software memiliki requirement yang berkembang dengan sangat cepat
seiring waktu. Software memiliki bug yang baru ditemui pada proses testing.
Customer dari produk software ada banyak dan memiliki preference dan keinginan
untuk customisasi. Bentuk akhir berupa user interface perlu diupdate mengikuti
desain yang terbaru. Feature yang dibutuhkan terkadang baru diketahui tidak
pada awal project. Dan sebagainya.
Sedemikan banyak masalah dan perbedaan antara produk
software dan produk bangunan fisik, maka saat project management waterfall
diadopsi oleh project manager maka muncul masalah-masalah berikut: Software
banyak yang tidak selesai, banyak yang error saat delivery, banyak produk jadi
yang membutuhkan rework, banyak software yang gagal dideliver, banyak software
yang sudah dideliver ternyata akhirnya tidak dipakai, dan masih banyak masalah
lainnya. Akhirnya para project manager berkumpul dan memikirkan perlu adanya
pendekatan yang baru. Sampai akhirnya lahirlah Agile. Berbeda dengan waterfall,
agile menggunakan prinsip iterasi. Produk tidak dibangun sekaligus besar,
tetapi dibangun kecil-kecil tapi sering. Tujuannya adalah meminimalkan resiko
diakhir project. Pola pengembangan software yaitu desain-build-test-release
dipecah dalam banyak iterasi yang disebut sebagai sprint box.
Product final dengan feature lengkapnya juga
dipecah-pecah menjadi produk kecil dengan fitur minim tapi bisa berjalan, yang
disebut dengan minimum viable product.
Hal ini tidak memungkinkan untuk produk fisik konstruksi, tapi mungkin untuk
produk software. Bayangkan jika waterfall kita membuat bangunan rumah, pertama
kita buat fondasi dulu, kemudian dinding, kemudian atap, kemudian pintu dan
jendela, kemudian finishing berupa pengecatan. Jika di agile, maka ilustrasinya
adalah pertama kita bikin rumah burung dara, terus bikin rumah anjing, bikin
rumah kuda, bikin rumah sederhana, sampai akhirnya bikin rumah mewah. Bentuknya
tetap rumah dan berfungsi, tetapi fiturnya sedikit. Bangunan fisik hal ini
tidak mungkin, tapi kalau membuat software hal ini mungkin.
Keuntungan yang didapat adalah: Produk akan lebih cepat
terdeliver ke customer, jika ada kesalahan maka akan cepat dikoreksi, resiko
juga akan lebih kecil karena kesalahan terdeteksi lebih awal, feature-feature
baru dapat ditambahkan pada iterasi berikutnya, lebih uptodate dan mengikuti
trend, secara bisnis akan menguntungkan karena ada produk yang sudah bisa
dideliver, perubahan feature baru pada produk dan perbaikan bug akan masuk
dalam update produk, ada kepastian kapan software akan dideliver, team
development memiliki tanggungjawab yang jelas dalam mendeliver produk sesuai
target waktu dan komitmen.
Kita mengenal ada 4 agile manifesto yaitu: deliverables
produk lebih penting dibanding dokumentasi proyek, interaksi individu lebih
pentiing dibanding proses tools, kolaborasi dengan customer lebih penting
dibanding negosiasi kontrak, merespon perubahan dibanding hanya mengikuti plan.
Ini yang membedakan agile dengan waterfall. Sedangkan metodologi yang digunakan
mengikuti agile adalah scrum. Jika agile menjelaskan prinsipnya maka scrum
menjelaskan organisasi dan prosesnya. Organisasi scrum terdiri dari 3 yaitu
scrum master, product owner, dan team developer.
Scrum master
berperan sebagai coach, memastikan team mengikuti rule of the game, membantu
meresolve masalah terkait proses scrum. Product owner adalah orang yang
bertanggung jawab terhadap produk, mendeliver value ke pelanggan, mampu
menyediakan resources, dan mengatasi hambatan selama proses development. Team
member bertugas mendesain, build, memastikan kualitas produk, dan mendeliver
produk tepat waktu. Ketiga peran ini mengikuti proses scrum secara iterasi
mulai dari visioning, release planning, spesifikasi, sprint planning, daily
standup, sprint review, dan retro.
Proses Visioning adalah membuat user stories untuk
menjelaskan apa yang akan dibuat, untuk siapa dibuat, dan kenapa harus dibuat.
User stories datang dari semua stakeholder mulai dari produk owner, customer,
dan team developer. User stories ini dikumpulkan dalam suatu list yang disebut
produk backlog. Salah satu artifact dalam scrum methodology. Produk backlog ini
memprioritaskan user stories berdasarkan value terhadap customer. Prioritas
dibagi menjadi 3 yaitu high, medium, low. Setelah produk backlog selesai maka masuk ke
tahapan release planning. Proses ini berupa meeting yang bertujuan merancang
release dalam kotak2 sprint. Caranya adalah dengan mengumpulkan beberapa user
stories ke dalam satu sprint box. Dengan catatan bahwa jika user stories
tersebut dibuat maka akan menjadi satu deliverables. Meskipun itu baru bersifat
minimal. Akhirnya semua akan dikelompokkan dalam beberapa sprint box dan
memberi estimasi akan ada berapa kali sprint dan kapan akan dilakukan release.
Setiap release akan memiliki rentang waktu tidak lebih dari 1 bulan. Baru
kemudian akan disusul oleh release berikutnya.
Proses berikutnya adalah spesifikasi yaitu setiap user
stories yang ada harus memiliki acceptance criteria, termasuk screenshotnya
akan seperti apa. Tahapan spesifikasi adalah merinci requirement dari user
stories. Karena spesifikasi ini akan dikunci saat masuk ke tahapan sprint.
Proses berikutnya adalah sprint planning, yaitu membuat rencana pelaksanaan
sprint. User stories yang ada akan diberikan estimasi waktu yang dibutuhkan
untuk penyelesaian. Dan setiap penyelesaian maksimal adalah 8 jam. Jika lebih
dari 8 jam maka akan dipecah menjadi beberapa task dengan waktu kurang dari 8
jam. Disini task sudah mencakup desain, coding, test, dan fine tune. Kemudian
diberikan urutan task mana yang akan dikerjakan dulu.
Setelah sprint planning maka masuk ke tahapan pekerjaan
sprint yang sesungguhnya. Setiap hari akan dimulai daily standup meeting di
depan sprint planning board. Dimana ada task yang sudah direncanakan dan waktu
yang dibutuhkan. Di dalam prinsip agile, ada komitmen dan tanggungjawab
individu. Disini produk owner tidak melakukan assignment tetapi justru anggota
team yang melakukan pull. Mereka mengambil tanggung jawab dalam menentukan task
yang akan dikerjakan dan komitmen penyelesaian. Setiap daily standup meeting
setiap anggota team development akan menyampaikan tiga hal yaitu: Apa yang
kemarin sudah dikerjakan, Apa yang akan dikerjakan, Apa masalah yang ditemui
jika ada. Hal ini untuk showcase apa yang sudah dikerjakan, dan memunculkan
perasaan accomplishment, ownership terhadap work result, dan tidak ada
informasi yang hilang selama proses. Daily standup meeting maksimal waktunya 15
menit. Jika ada masalah tidak dibahas dimeeting tapi harus diselesaikan secara
offliine.
Setelah melakukan beberapa kali iterasi dalam sprint,
maka akan sampai pada titik sprint tersebut selesai dan masuk ke proses sprint
review. Sprint review adalah meeting untuk menunjukkan apa yang sudah
dikerjakan dan mendapat feedback. Team akan mendemonstrasikan hasil sprint yang
sudah ditest dan accept. Kemudian akan mendapat feedback atas pekerjaan mereka.
Tahapan berikutnya adalah retro. Retro adalah meeting untuk mengevaluasi
performance team. Bagaimana team bekerja, apa yang bagus dan apa yang perlu
diimprove. Retro akan mengevaluasi laporan selama sprint seperti burn up chart
dan burn down chart, berapa tugas yang selesai tepat waktu, berapa tugas masih
tersisa, bagaimana performance individu, berapa jumlah defect, berapa kali test
gagal, dan sebagainya. Hasil evaluasi ini akan dituangkan dalam action plan
untuk perbaikan kinerja team. Proses sprint ini akan diulang terus-menerus,
sehingga deliverables produk makin lama akan makin sempurna dengan update
terbaru.
Sehingga bisa kita simpulkan Agile dan metode Scrum ini
adalah focus pada deliverables yang cepat, meminimalkan resiko dengan frequent test
inspection, align dengan kebutuhan customer yang terus berkembang, dan
menekankan pada tanggungjawab serta komitmen dari anggota team. Pertanyaan yang
sering muncul adalah apakah Agile Scrum ini dapat diimplementasikan untuk
project non software? Jika kita melihat prinsip-prinsip dan proses yang
dijelaskan, maka sangat mungkin untuk menerapkan Agile scrum untuk project
non-software. Sudahkah anda mencoba menggunakan Agile?
No comments:
Post a Comment