Pendahuluan
Semakin banyaknya organisasi yang bergantung pada
model proses kematangan atau biasa disebut Capability Maturity Model Integration (CMMI) yang digunakan untuk menilai dan meningkatkan proses area mereka sendiri, karena semakin jelas bahwa kegagalan proyek yang paling umum biasanya disebabkan oleh tidak konsisten-nya suatu proses. Maka sudah selayaknya bila di suatu organisasi yang
besar akan selalu ada kebijakan baru yang mengharuskan setiap bagian organisasi
dapat mencapai tingkat kematangan tertentu.
Namun pada penerapannya
sifat CMMI yang birokratis (koordinasi yang banyak melalui
dokumentasi & tahapan yang kaku) mengakibatkan perkembangan yang lambat. Sehingga
di saat yang bersamaan, metode Agile terus mengalami peningkatan di karenakan hal
tersebut.
Metode Agile atau biasa disebut Agile
software development method, memberikan keuntungan dan kepuasan
kepada customer untuk memberikan hasil
yang berkualitas dengan mempercepat
proses saat pengembangannya. Disamping itu, perusahaan
juga memerlukan usaha yang besar untuk meningkatkan proses
produksi mereka dan lebih menyadari bahwa pendekatan agile dapat membantu jalannya
proses tersebut. Dilain pihak, penerapan agile dapat dikritisi karena lemahnya
disiplin dan hanya cocok untuk aplikasi kecil atau
aplikasi yang tidak begitu besar .
Di karenakan factor
tersebut banyak organisasi mengandalkan CMMI sebagai indikator proses
kematangan (maturity), sedangkan seharusnya hal itu diterjemahkan ke dalam
kualitas produk. Sehinga disisi lain
metodologi Agile seperti xp dan scrum menjadi lebih menonjol.
Maka tinjauan harus
dilakukan apakah metode Agile dapat disesuaikan untuk mencapai CMMI level.
Penulisan ini dimaksudkan sebagai tahapan awal dalam upaya mengungkapkan mungkinkah
metode agile dan CMMI dapat di pergunakan bersama-sama.
CMMI
CMMI adalah sebuah
model/ konsep / framework yang menyediakan kumpulan ‘best practices’ untuk
meningkatkan produktifitas, penyesuaian cost dan kepuasaan stakeholder.
Level 2 Proses area
focus pada perubahan dan mengelola proyek. Level 3 berfokus pada ketrampilan
teknik, pengelolaan berkembang dan organisai mulai memahami organisainnya
sendiri dengan lebih baik. Level 4 dan 5 berfokus pada pengunaan statistic
untuk meningkatkan kinerja organisai, dengan statistic dapat mengendalikan
proses yang dipilih dan mengurangi variasi.
Metode Agile
Metode Agile hadir
sebagai jawaban terhadap tantangan pengembangan perangkat lunak modern yang
dalam banyak kasus tidak dapat diatasi dengan proses ‘tradisional’. Metode ini
memungkinkan akan adanya kreativitas dan reaksi cepat dalam menyikapi perubahan
dengan menekankan partisipasi stakeholder serta terjadinya rilis yang terus
menerus.
Karakteristik metode
Agile yang rumit akan didefinisikan ke dalam dua belas prinsip - prinsip :
- Prioritas utama metode ini adalah untuk memuaskan Stakeholder dengan cara pengiriman awal dan terus berkesinambungan.
- Menerima permintaan perubahan (change request) bahkan ketika perangkat lunak sedang di bangun.
- Memberikan laporan perkembangan perangkat lunak ( setiap 2 sampai dengan 3 minggu)
- Pemakai dan developers harus bekerja sama setiap hari sepanjang proyek berlangsung.
- Komunikasi tatap muka, adalah metode yang paling efisien dan efektif untuk meyampaikan informasi ke dalam tim.
- Perangkat lunak yang di gunakan dalam berkerja merupakan factor kemajuan.
- Agile proses mempromosikan pembangunan secara berkelanjutan.
- Memperhatian secara terus-menerus akan keunggulan teknis dan desain yang baik sehingga dapat meningkatkan kelincahan.
- Kesederhanaan.
- Arsitektur terbaik, persyaratan, dan desain muncul dari dalam tim yang mengorganisir itu sendiri.
- Pada interval reguler, tim mencerminkan tentang cara untuk menjadi lebih efektif dan menyesuaikan perilaku yang sesuai.
Interaksi Antara Metode Agile dan Process Area
Maturity
Level
|
Proses
Area
|
Interaksi
|
Keterangan
|
|
5
|
Optimizing
|
Organization Innovation and Deployement
|
Konflik
|
Proses
perbaikan dan adaptasi yang dibuat oleh Agile hanya sampai pada pembuatan proyek dan tidak didokumentasikan, sehingga tidak
dapat disebarkan ke seluruh organisasi.
|
Casual Analysis and Resolution
|
Tidak Ada Keterkaitan
|
|||
4
|
Quantitatively
Managed
|
Organisation Process Performance
|
Konflik
|
Agile fokus pada individual dari
pada orientasi proses atau biasa di sebut dengan proses area.
|
Quantitative Project Management
|
Konflik
|
Proses area ini berfokus pada metode
statistik oleh karena itu, proses area ini bertentangan dengan prinsip Agile.
|
||
3
|
Defined
|
Requirements Development
|
Saling Mendukung
|
Di dalam Agile pelanggan
menetapkan diri mereka sendiri di dalam ‘user story’ dan turut serta dalam
tugas-tugas. Rincian-rincian tugas dibicarakan dan didiskusikan langsung
dengan pelanggan selama pengembangan.
|
Technical Solution
|
Saling Mendukung
|
Memilih produk komponen dilakukan
pada awal proyek melalui prototype dan kemudian mengalami pengembangan
berulang . Pada awalnya dengan desain yang sederhana dan terus di kembangkan
dengan pengembangan berulang. Sedangkan coding akan di dokumentasikan.
|
||
Product Integration
|
Saling Mendukung
|
Dibangun secara berkesinambungan
dan karena langkah-langkah integrasi dilakukan sangat sering, maka persiapan
menyeluruh sangatlah penting.
|
||
Verification
|
Saling Mendukung
|
Peer review di lakukan konstan
karena selalu menjadi bagian dari Agile.
|
||
Validation
|
Saling Mendukung
|
Pelanggan terus memvalidasi kerja
yang dilakukan oleh tim. Hal tersebut sangat memungkinkan karena pelanggan
ter integrasi di dalam tim. Selain itu pelanggan juga memvalidasi pengiriman
pada akhir setiap iterasi. Hal tersebut akan berpengaruh akan persyaratan
yang bertambah atau di ubah oleh pelanggan.
Peran serta yang besar oleh
pelanggan akan meningkatkan kemungkinan bahwa produk ini akan cocok dengan
lingkungan operasi yang di maksudkan.
|
||
Organizational Process Focus
|
Konflik
|
Daerah proses ini tidak ditangani
oleh Agile karena berlaku untuk organisai sedangkan Agile hanya berlaku untuk
proyek.
Pada metode Agile, penyesuaian
sering dilakukan selama proyek. Sehingga perbaikan terbatas pada proyek dan
tidak harus di dokumentasikan. Dari kondisi tersebut maka individu lah yang
akan mendapatkan pengalaman. Masalah akan dating apabila individu tersebut keluar
maupun pensiun. Konflik dapa ditangani dengan membentuk repository yang
menyimpan praktek terbaik dari setiap proyek dan juga pertukaran pengalaman
antar proyek.
|
||
Organizational Process Definition
|
Tidak Ada Keterkaitan
|
|||
Organizational Training
|
Saling Mendukung
|
Pada Agile pelatihan dilakukan
pada fase ekplorasi oleh karena itu sebuah proyek membutuhkan kemampuan
pelatih di suatu organisasi. Pair programming dan pelatihan (coacing) juga di
anggap sebagai pelatihan. Sama halnya seperti pada CMMI Training on the job,
coacing dan belajar manual dari buku.
|
||
Integrated Project Management
|
Saling Mendukung
|
Agile
memberikan kontribusi yang banyak dalam hal integrasi antar anggota proyek (
Pengembang, pelanggan, penguji dan manajemen) dan mempererat kerja sama antar
anggota.
|
||
Risk Management
|
Saling Mendukung
|
Fleksibilitas
yang diperoleh dengan menggunakan iterasi
pendek adalah alat ampuh untuk
mengurangi risiko.
|
||
Decision Analysis and Resolution
|
Konflik
|
Lebih mudah dengan menggunakan
metode Agile dalam hal menganalisis keputusan dan resolusi perubahan karena
kemampuannya akan adaptasi. Sedangkan pada CMMI terdapat langkah sistematik
yang dapat dilakukan dalam membuat keputusan dan perubahan.
|
||
2
|
Managed
|
Requirements Management
|
Saling Mendukung
|
Pemahaman Pemenuhan permintaan diperoleh melalui integrasi pelanggan
ke dalam tim dan komunikasi
yang intensif dengan pelanggan. Yang di butuhkan adalah Komitmen peserta Proyek beserta dengan
persyaratan yang diperoleh dalam tahap
perencanaan.
Apa bila
ada perubahan persyaratan maka dengan cepat ditukar dan
dibicarakan.
|
Project Planning
|
Saling Mendukung
|
Perkiraan untuk rencana dan tugas
telah ditetapkan namun tetap dapat di koreksi selama proyek berlangsung.
Perkiraan pun terus berkembang dan meningkat karena iterasi yang pendek.
Rencana Proyek didirikan dengan
system rilis yang terus berevolusi sepanjang proyek. Oleh karena itu rencana
pada jangka panjang tetap kabur dan rencana jangka pendek akan di buat dengan
rinci.
Komitmen yang diperoleh melalui keterliatan
yang tinggi dan tanggung jawab seluruh anggota tim.
|
||
Project Monitoring and Control
|
Saling Mendukung
|
Informasi tentang kemajuan proyek
dikumpulkan dan di ukur. Komunikasi
yang intensif antara anggota tim dan pelanggan dapat membantu tersampaikan
nya informasi tersebut. Sistem yang ketat dan iterasi yang pendek serta
komitmen yang rutin dapat membuat rencana lebih mudah untuk di panatau.
Isu yang menuntut tidakan korektif
dikumpulkan dan dianalisis. Iterasi baru dapat memberikan kesempatan yang
baik untuk melakukan penyesuaian.
|
||
Supplier Agreement Management
|
Tidak Ada Keterkaitan
|
Pada
proses ini akan melibatkan pemasok dan dapat menjadi masalah untuk Agile jika
menghalangi pengembangan iterasi. Hal tersebut menimbulkan masalah kritis
jika komponen yang di pasok tidak tersedia pada saat itu.
|
||
Measurement and Analysis
|
Saling Mendukung
|
Tujuan dari pengukuran adalah
sebagai control akan kemajuan. Data yang digunakan untuk mengukur diperoleh
melaui komunikasi yang intensif di dalam tim.
Biasaya tim menggunakan grafik
dinding namun data tersebut tidak dapat permanen di simpan. Seiring
perkembangan banyak piranti sudah tersedia sehingga ngeukuran dan hasilnya
dapat disimpan secara permanen tanpa perlu terlalu banyak usaha.
|
||
Process and Product Quality
Assurance
|
Saling Mendukung
|
Pada
Agile tidak menuntut akan adanya proses evaluasi dari proses namun metode ini
diterapkan dengan adanya seorang pelatih yang akan memandu dalam mengunakan
agile di dalam tim, sehingga dapat dilakukan dengan benar dan terkendali
Untuk
masalah kualitas dapat dengan mudah dikomunikasikan di dalam tim.
|
||
Configuration Management
|
Saling Mendukung
|
Dalam menetapkan baseline dokumen,
coding, desain, tes dan persyaratan merupakan item dari konfigurasi.
Konfigurasai sangat dianjurkan
karena akan berkaitan dengan iterasai yang akan terus berkesinambungan. Dan
biasanya akan di lakukan pada setiap akhir iterasi. Seperti mengecek
kebenarannya, kelengkapannya dan kekonsistensiannya.
|
Kesimpulan
CMMI
mengevaluasi sebuah organisasi secara keseluruhan dari proses
perkembangannya. Sebaliknya,
metode agile adalah
kerangka kerja dari suatu proses
pengembangan individu. Dengan
demikian, konsep tidak berbanding
lurus. Fokus
mereka berbeda,
tetapi tetap saja mereka memiliki saling keterkaitan. Dapat di simpulkan bahwa CMMI adalah sebuah
metode untuk manajemen perangkat lunak sedangkan pendekatan metode agile untuk
pengembangan perangkat lunak.
Mereka tidak
hanya dapat hidup berdampingan, tetapi mereka bahkan saling mendukung.
Memeriksa
cakupan metode agile dengan proses area dapat mengungkapkan akan kekurangan
di dalam pendekatannya dan dengan
demikian akan ada potensi untuk perbaikannya. Namun, proses
perbaikan dengan CMMI hanya dapat dilakukan sampai tingkat tertentu karena ada
beberapa proses area yang bertentangan
dengan prinsip agile.
Sebagian besar proses area dari level 2 dan beberapa pada level 3 dapat saling mendukung, tetapi
proses area tingkat 4 dan 5 bertentangan
yang pada akhirnya akan menimbulkan konflik. Hal ini akan
melemahkan metode agile dan
menghilangkan beberapa manfaatnya.
Tidak hanya sampai di situ, tindakan seperti itu
juga akan bertentangan dengan tujuan CMMI, yaitu meningkatkan proses area.
Jadi dapat ditarik
kesimpulannya bahwa
peningkatan dapat di lakukan dengan metode Agile dan yang terbaik adalah untuk
berhenti di tingkat CMMI level 3.
Sumber penulisan dan analisa :
CMMI: Improving Software and Systems Development Processes Using Capability Maturity Model Integration (CMMI-Dev) |
Tidak ada komentar:
Posting Komentar