Capability Maturity Mode - CMM

Capability Maturity Model (CMM) adalah model kematangan kemampuan (kapabilitas) untuk membantu pendefinisian dan pemahaman proses-proses pada suatu organisasi. Pengembangan model ini dimulai pada tahun 1986 oleh SEI (Software Engineering Institute) atas permintaan  Departemen Pertahanan Amerika Serikat, Departement of Defense(DOD).

CMM awalnya ditujukan sebagai suatu alat untuk secara objektif menilai  kemampuan kontraktor pemerintah untuk menangani proyek perangkat lunak yang diberikan. Walaupun berasal dari bidang pengembangan perangkat lunak, model ini dapat juga diterapkan sebagai suatu model umum yang membantu pemahaman kematangan kapabilitas proses organisasi di berbagai bidang. Misalnya rekayasa perangkat lunak, rekayasa sistem, manajemen proyek, manajemen risiko, teknologi informasi, serta manajemen sumber daya manusia.



Pengertian CMM secara harfiah:
•    Capability, diartikan menjadi kapabilitas yang berarti kemampuan yang bersifat laten. Dalam CMM ini, Capability lebih mengarah kepada integritas daripada kapabilitas itu sendiri.
•    Maturity,  berarti matang atau dewasa. Matang merupakan hasil proses. Dewasa merupakan hasil pertumbuhan
•    Model, didefinisikan sebagai suatu penyederhanaan yang representatif terhadap keadaan di dunia nyata

Nilai-nilai yang dilihat dalam pengukuran CMM:1.    Apa yang diukur (Parameter)
2.    Bagaimana cara mengukurnya (Metode)
3.    Bagaimana standar penilaiannya (Skala Penilaian)
4.    Bagaimana Interpretasinya (Bagi Manusia)

Capability Maturity Model memiliki 5 level kematangan yaitu :
1.    Initial Level
Kriteria dari initial level adalah:
a.    tidak ada manajemen proyek,
b.    tidak ada quality assurance,
c.    tidak ada mekanisme manajemen perubahan (change management),
d.    tidak ada dokumentasi, dan
e.    terdapat ketergantung pada kemampuan individual.

2.    Repeatable Level
Ciri-ciri dari repeatable level adalah:
a.    kualitas perangkat lunak mulai bergantung pada proses bukan pada individu,
b.    ada manajemen proyek sederhana,
c.    ada quality assurance sederhana,
d.    ada dokumen sederhana,
e.    ada software configuration management sederhana,
f.    tidak ada knowledge management,
g.    tidak ada komitmen untuk mengikuti SDLC dalam kondisi apapun,
h.    tidak ada stastikal control untuk estimasi proyek dan rentan perubahan struktur organisasi.

3.    Defined Level
Ciri-ciri dari Defined level adalah:
a.    SDLC sudah ditentukan,
b.    ada komitmen untuk mengikuti SDLC dalam keadaan apapun,
c.    kualitas proses dan produk masih bersifat kualitatif atau hanya perkiraan saja,
d.    tidak menerapkan Activity Based Costing, dan
e.    tidak ada mekanisme umpan balik yang baku.

4.    Managed Level
Ciri-cirinya Managed Level adalah:
a.    sudah ada Activity Based Costing yang digunakan untuk estimasi proyek berikutnya,
b.    proses penilaian kualitas perangkat lunak dan proyek masih bersifat kuantitatif,
c.    terjadi pemborosan biaya untuk pengumpulan data karena proses pengumpulan data masih dilakukan secara manual,
d.    sudah memiliki mekanisme umpan balik
e.    tidak ada mekanisme pencegahan defect

5.    Optimized Level
a.    Pengumpulan data secara automatis,
b.    ada mekanisme pencegahan defect,
c.    ada mekanisme umpan balik yang baik
d.    ada peningkatan kualitas dari SDM
e.    ada peningkatan kualitas proses.


Kegunaan CMM meliputi:
• Untuk menilai tingkat kematangan sebuah organisasi pengembang perangkat lunak
• Untuk menyaring kontraktor yang akan menjadi pengembang perangkat lunak
• Untuk memberikan arah akan peningkatan organisasi bagi top management di dalam sebuah organisasi pengembang perangkat lunak
• Sebagai alat bantu untuk menilai keunggulan kompetitif yang dimiliki sebuah perusahaan dibandingkan perusahaan pesaingnya.

* SDLC (Systems Development Life Cycle, Siklus Hidup Pengembangan Sistem) atau Systems Life Cycle (Siklus Hidup Sistem), dalam rekayasa sistem dan rekayasa perangkat lunak, adalah proses pembuatan dan
pengubahan sistem serta model dan metodologi yang digunakan untuk mengembangkan sistem-sistem tersebut. Konsep ini umumnya merujuk pada sistem komputer atau informasi.
SDLC juga merupakan pola yang diambil untuk mengembangkan sistem perangkat lunak, yang terdiri dari tahap-tahap:
a.    rencana(planning),
b.    analisis (analysis),
c.    desain (design),
d.    implementasi (implementation),
e.    uji coba (testing) dan
f.    pengelolaan (maintenance).