Software Project Planning Departemen Ilmu Komputer IPB 2009
Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring a complex technical project. Why? So the end result gets done on time, with quality!
The Steps Scoping - understand the problem and the work that must be done Estimation - how much effort? how much time? Risk - what can go wrong? how can we avoid it? what can we do about it? Schedule - how do we allocate resources along the timeline? what are the milestones? Control strategy - how do we control quality? how do we control change?
To Understand Scope... Understand the customers needs understand the business context understand the project boundaries understand the customer’s motivation understand the likely paths for change understand that... Even when you understand, nothing is guaranteed!
Write it Down! SoftwareProjectPlan Project Scope EstimatesRisksSchedule Control strategy
Cost Estimation project scope must be explicitly defined task and/or functional decomposition is necessary historical measures (metrics) are very helpful at least two different techniques should be used remember that uncertainty is inherent
Estimation Techniques past (similar) project experience conventional estimation techniques ◦ task breakdown and effort estimates ◦ size (e.g., FP) estimates tools
Functional Decomposition Statement of Scope perform a "grammatical parse" functionaldecomposition
Conventional Methods: LOC/FP Approach compute LOC (line of code)/FP (functional/feature point) using estimates of information domain values use historical effort for the project
Example: LOC Approach
Example: FP Approach number of user inputs number of user outputs number of user inquiries number of files number of ext.interfaces algorithms measurement parameter count x x x x x x count-total = = = = = = weight complexity multiplier feature points 0.25 p-m / FP = 120 p-m
Creating a Task Matrix Obtained from “process framework” applicationfunctions framework activities Effort required to accomplish each framework activity for each application function
Tool-Based Estimation project characteristics calibration factors LOC/FP data
Empirical Estimation Models General form: effort = tuning coefficient * size exponent usually derived as person-months of effort required either a constant or a number derived based on complexity of project usually LOC but may also be function point empirically derived
Estimation Guidelines estimate using at least two techniques get estimates from independent sources avoid over-optimism, assume difficulties you've arrived at an estimate, sleep on it adjust for the people who'll be doing the job—they have the highest impact
The Make-Buy Decision
Computing Expected Cost (path probability) x (estimated path cost) (path probability) x (estimated path cost) i i For example, the expected cost to build is: expected cost = 0.30($380K)+0.70($450K) similarly, expected cost = $382K expected cost = $267K expected cost = $410K build reuse buy contr expected cost = = $429 K
Analisa Terhadap Hasil Analisis dan Penjadwalan Another Practical Approach
Agenda Lesson learn dari tahap analisis dan penjadwalan Analisa dan strategi penjadwalan Jumlah anggota tim.
Kualitas Analisis Cukup Jelas kalimat yang digunakan? Mencakup seluruh kebutuhan? Hasil analisa mampu diturunkan menjadi butir kebutuhan pengguna?
Contoh Kalimat Analisis (Bad) Modul : Info Pasien Sistem mampu menampilkan informasi yang dibutuhan oleh pengguna. Cukup Jelas ??
Bandingkan… Modul : Info Pasien Sistem mampu menampilkan data pasien meliputi nama, umur, dan sejarah penyakit. Sejarah penyakit adalah : data diagnosa, tindakan medis yang dilakukan, dan keberlanjutan terapi. Jika sistem gagal menemukan data pasien akan dimunculkan pesan kesalahan.
Seperti Apa user stories?
Potongan kertas dengan bagian : ◦ Title : judul yang mewakili satu kebutuhan sistem ◦ Description : Deskripsi singkat tentang kebutuhan yang dicantumkan pada title.
Contoh Isi User Stories
Bagaimana Memancing User Bicara? Role Playing ◦ Jadikan diri anda sebagai sistem komputer, mintalah user membayangkan bagaimana mereka menginput data, memilih menu, dsb. ◦ Catat setiap point penting dari fungsi yang disebutkan dalam user stories. ◦ Konfirmasi dan diskusikan setiap user stories yang berhasil dituliskan.
Bagaimana Memancing User Bicara? Observation ◦ Jika memungkinkan, perhatikan mekanisme user bekerja, catat hal-hal penting dari hasil observasi. Let them write ◦ Biarkan user menuliskan sendiri kebutuhannya. ◦ Dapat dilakukan jika user paham atau tahu tentang sistem.
Susun Prioritas Setelah user stories berhasil diperoleh, mintalah user : ◦ Mereview kembali dan membubuhkan paraf sebagai tanda approval. ◦ Memberikan nilai prioritas (1 -10) semakin tinggi nilai yang diberikan semakin rendah prioritas yang diberikan.
Lakukan Penjadwalan Anda diberikan waktu Tiga Bulan dalam pengembangan sistem. Tentukan jadwal pekerjaan dan jumlah iterasi yang ingin Anda lakukan. Jika jumlah user stories melebihi waktu pekerjaan, silahkan lakukan diskusi dengan user untuk “mengurangi beban Anda”.
Analisa hasil penjadwalan
Kendala dalam penjadwalan Salah memahami urutan kerja Salah melakukan breakdown iterasi kerja Waktu SDM kurang
Waktu Kurang…
Bagaimana Menguranginya? Negosiasi dengan user, buat mereka memahami “sulitnya” kondisi yang dihadapi Mengatur ulang prioritas Menambah SDM?
Calculate your resources
Velocity.. Need to consider
Sample…
Terima Kasih