Monday, January 2, 2012

Manajemen Proyek Pragmatis dan Agile

Bulan lalu beres baca buku ini, dan mau berbagi pemahaman yang didapat dari buku tersebut. Karena pemahaman yang akan di-share, maka isinya sebenarnya jauh sekali dari kualitas dan detail level-nya antara buku tersebut dengan artikel berikut. Jika tertarik, saran Saya, bacalah bukunya.

Disini pembahasan dibagi menjadi dua section, yaitu Starting Project dan Doing Project

Starting Project
Pada suatu project akan terdapat ekspektasi dari customer & sponsor, serta batasan yang harus dipenuhi. Contoh daftar ekspektasi dan batasan adalah sebagai berikut:


  • Harus selesai dibulan Januari
  • Memiliki fitur A, B, C, D
  • Biaya tidak lebih dari 10 juta
  • Mudah digunakan
  • Bug-free
  • High performance
  • Dan lain-lain

Masing-masing item pada daftar yang dibuat untuk suatu project, diprioritaskan berdasarkan kepentingannya, dan dibagi menjadi 3 kategory. Driver, Constraint, dan Float.

Driver
Driver adalah item utama yang memberi nilai pada project. Kegagalan memenuhi Driver dapat menghilangkan seluruh nilai dari Project. Hanya ada 1 item pada daftar yang boleh dikategorikan sebagai Driver. Lebih dari 1 Driver, maka project akan kacau.

Sebagai contoh, terdapat suatu project yang diharuskan selesai pada bulan desember, fitur/harga/kualitas seperti apapun tidak ada artinya jika belum selesai desember. Maka project Driver-nya adalah waktu.

Constraint
Beberapa item dengan prioritas tinggi namun dibawah Driver dapat dikategorikan Constraint. Kategori constraint boleh diberikan ke lebih dari 1 item.

Constraint perlu dipenuhi agar customer/sponsor. Apabila Constraint dengan Driver saling konflik, Constraint bisa tidak dipenuhi, namun akan menbuat customer/sponsor tidak senang. Apabila seluruh Constraint tidak terpenuhi, nilai project akan hilang seluruhnya, seperti halnya jika Driver tidak terpenuhi.

Constraint idealnya dua, lebih dari itu project menjadi un-managable. Kurang dari itu, project akan kacau karena seakan terdapat dua Driver.

Float
Float kategori item yang penting untuk dipenuhi, namun memiliki fleksibilitas dalam pencapaiannya dan dapat dinegosiasi dengan customer/sponsor mengenai targetnya.

Sama seperti Constraint, kategori Float dapat diberikan kepada lebih dari 1 item, idealnya 3. Tidak memenuhi seluruh Float akan mengakibatkan costumer/sponsor tidak senang, memenuhi seluruh Float akan membangun reputasi yang baik.



Release Criteria
Berbekal daftar Driver, Constraint, dan Float, tuliskan kondisi done untuk project, yang disebut dengan Release Criteria. Release Criteria harus Specific, Measurable, Achievable, Relevant dan Trackable ke daftar Driver, Constraint dan Float. Baik customer, sponsor, management dan pelaksana perlu mengetahui dan menyetujui Release Criteria.

Contoh Release Criteria:

  • Software Release tanggal 1 januari
  • Normal Skenario untuk fitur A, B, C tanpa bug-free
  • Halaman D, E, F dapat diakses hanya dengan 2 kali click.


Product Backlog
Last but not least, tuliskan dokumen Product Backlog. Product Backlog adalah dokumen yang berisikan daftar fitur sistem yang diberi angka prioritas. Prioritas diberikan oleh pemiliki sistem, dengan pertimbangan ROI bisnis. Perhatikan bahwa 1 angka hanya untuk 1 fitur, tidak boleh terdapat dua fitur yang memiliki angka prioritas yang sama.


Doing Project
Project dilaksanakan dengan life cycle iterative incremental. Berbekal Product Backlog yang dimiliki sebelumnya, project dilakukan dengan:

  1. Melaksanakan Iteration Planning Meeting di awal iterasi, yang melakukan
    1. Memilih fitur-fitur dengan angka prioritas tertinggi yang belum selesai
    2. Merencanakan waktu  1 iterasi dengan maksimal waktu 2 minggu
    3. Lakukan requirement gathering untuk fitur-fitur yang dipilih bila perlu
    4. Mem-breakdown fitur tersebut dengan task-task kecil yang dapat diselesaikan maksimal 8 jam.
    5. Mengestimasi man-hour untuk setiap task
    6. Membuat perencanaan dan target selesai untuk seluruh task tersebut
  2. Melaksanakan pertemuan harian untuk memantau pencapain rencana sepanjang iterasi
  3. Melaksanakan Iteration Review Meeting di akhir iterasi, yang:
    1. Apabila target tercapai, demokan fitur-fitur tersebut
    2. Apabila target tidak tercapai, lakukan evaluasi, targetkan demo untuk iterasi berikutnya

Lakukan kegiatan diatas berulang sampai Release Criteria terpenuhi


Change Request
Perubahan prioritas Product Backlog ataupun perubahan fitur-fitur yang ada pada Product Backlog dapat dilakukan kapan saja selama fitur tersebut bukan merupakan fitur yang sedang dalam pengerjaan iterasi.

Perubahan pada fitur yang telah diselesaikan iterasi sebelumnya menjadi prioritas utama untuk dikerjakan pada iterasi berikutnya.



----------

Sebenarnya buku tersebut membahas jauh lebih detail dan memberikan banyak sekali contoh kasus. Buku yang menurut Saya must-read untuk developer yang ingin mengetahui konsep agile project management, yang dilakukan dengan Pragmatic Way. Semoga bermanfaat.

No comments:

Post a Comment