“Rivals can easily copy your improvements in quality and efficiency.
But they shouldn’t be able to copy your strategic positioning –
what distiguishes your company from all the rest.”

Michael A. Porter, 1996.

Rabu, Oktober 07, 2009

The Steps Of Agile Development

The Steps Of Agile Development
Activity framework (toward construction and delivery)
◦Customer communication
◦Planning
◦Modeling
◦Construction
◦Delivery
◦Evaluation

The Work Products
An operational ‗software increment‘ that is delivered to the customer on the appropriate commitment date
◦Remember: not able to define requirements fully before the project begins

The Assurance
If the agile team agrees that the process worksand the team produces deliverable software increments that satisfy the customer, then it is done right.

Agile Development

Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Kata ini digunakan sebagai
kata yang mengambarkan konsep model proses yang berbeda dari konsep model-model proses yang sudah ada.

Konsep Agile Software Development dicetuskan oleh Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile Software Development adalah cara membangun software dengan
melakukannya dan membantu orang lain membangunnya sekaligus.

Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan
alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. Namun demikian, sama seperti model proses yang lain, Agile Software Development memiliki kelebihan dan tidak cocok untuk semua jenis proyek, produk, orang dan situasi.

Agile Software Development memungkinkan model proses yang toleransi terhadap perubahan
kebutuhan sehingga perubahan dapat cepat ditanggapi. Namun di sisi lain menyebabkan produktifitas menurun.

Prinsip Agile Software Development
Salah satu ciri dari Agile Software Development adalah tim yang tanggap terhadap perubahan.
Mengapa? Karena perubahan adalah hal yang utama dalam pembangunan software: perubahan
kebutuhan software, perubahan anggota tim, perubahan teknologi dll. Selain itu Agile Software
Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang ditetapkan oleh Agile Alliance.

Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development:
1. kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus
menerus
2. menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
3. Penyerahan hasil/software dalam hitungan waktu dua minggu sampai dua bulan.
4. Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung
5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam
lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan proyek.
6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek
8. dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga
perkembangan yang berkesinambungan
9. perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
10. kesederhanaan penting
11. arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri
12. secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.

Kedua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya:
1. kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien
juga sering berubah seiring berjalannya proyek.
2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang
diperlukan sebelum pembangunan.
3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

Faktor Manusia pada Agile Process Model
Kunci faktor manusia pada model ini adalah proses didasari pada kebutuhan orang dan tim bukan sebaliknya, Untuk dapat sukses menerapkan model proses ini, pada faktor manusia ada beberapa kunci penting:
1. kompetensi: ketrampilan dalam membangun dan pengetahuan tentang proses membangun
2. Fokus: memiliki fokus yang sama sekalipun peran dalam tim berbeda
3. Kolaborasi : kerja sama dengan klien, anggota tim dan manajer.
4. Kemampuan ambil keputusan : tim pembangun memiliki otonomi dalam pengambilan
keputusan terkait teknis dan proyek
5. Kemampuan fuzzy problem-solving: mampu menyelesaikan memilah masalah yang penting
untuk dipecahkan segera atau nanti.
6. Saling percaya dan hormat: kekompakan tim yang didukung oleh rasa percaya dan saling
menghargai satu sama lain.
7. Manajemen diri: tim mengatur diri untuk selesaikan proyek, mengatur proses untuk disesuaikan dengan lingkungannya, tim menjadwal dirinya untuk menyerahkan hasil.

Jumat, Oktober 02, 2009

CMM to CMMI




What is CMMI?

Capability Maturity Model Integration atau CMMI (bahasa Indonesia: Integrasi Model Kematangan Kemampuan) adalah suatu pendekatan perbaikan proses yang memberikan unsur-unsur penting proses efektif bagi organisasi. Praktik-praktik terbaik CMMI dipublikasikan dalam dokumen-dokumen yang disebut model, yang masing-masing ditujukan untuk berbagai bidang yang berbeda.
Saat ini terdapat dua bidang minat yang dicakup oleh model CMMI: development (pengembangan) dan acquisition (akuisisi). Versi terkini CMMI adalah versi 1.2 dengan dua model yang tersedia yaitu CMMI-DEV (CMMI for Development) yang dirilis pada Agustus 2006 dan ditujukan untuk proses pengembangan produk dan jasa, serta CMMI-ACQ (CMMI for Acquisition) yang dirilis pada November 2007 dan ditujukan untuk manajemen rantai suplai, akuisisi, serta proses outsourcing di pemerintah dan industri.
Terlepas model mana yang dipilih oleh suatu organisasi, praktik-praktik terbaik CMMI harus disesuaikan oleh masing-masing organisasi tergantung pada sasaran bisnisnya. Organisasi tidak dapat memperoleh sertifikasi CMMI, melainkan dinilai dan diberi peringkat 1-5. Hasil pemeringkatan penilaian ini dapat dipublikasikan jika dirilis oleh organisasi penilainya.

CMMI is:
- a model that provides a set of best practices that address productivity,
performance, costs, and stakeholder satisfaction
- a model which provides a structured view of process improvement across an
organization
 CMMI can help:
- set process improvement goals and priorities
- provide guidance for quality processes
- provide a yardstick for appraising current practices
 CMMI is NOT:
- a set of “bolt-on processes” that last only as long as the wheel is squeaking. CMMI
provides a consistent, enduring framework that accommodates new initiatives.
- restricted to a single discipline (I.e. Software Engineering or Systems Engineering).
CMMI focuses on the total software intensive system problem and integrates
multiple disciplines into one process-improvement framework that eliminates
inconsistencies and reduces duplication

CMMI Design Goals and Benefits

  • Design Goals
    v Integrate the source models, eliminate inconsistencies, reduce duplication
    v Reduce the cost of implementing model-based process improvement
    v Be sensitive to impact on legacy efforts
  • Benefits
    v Efficient, effective assessment and improvement across multiple process
    disciplines
    v Reduced training and assessment costs
    v A common, integrated vision of improvement for all elements of an
    organization
    v Integration of systems engineering and software environments for
    additional productivity & quality gains