pendekatan agile software development assessment dengan menggunakan cmm1
DESCRIPTION
Pendekatan Agile Software Development Assement dengan menggunakan CMMIIndra AdhityaMagister Teknologi Informasi, universitas Indonesia Jalan Salemba Raya Jakarta Pusat Indonesia [email protected],Abstract - Organisasi pengembang software meningkat dan kebanyakan mengadopsi agile development methods. Meskipun CMMI tidak sulalu dapat men-support interpretasi yang ada pada konteks agile . Makalah ini melakukan pendekatan process area(PA) CMMI ke dalam Agile assessment I. Introduksi Selama beberaTRANSCRIPT
Pendekatan Agile Software Development Assement
dengan menggunakan CMMI
Indra Adhitya
Magister Teknologi Informasi, universitas Indonesia
Jalan Salemba Raya Jakarta Pusat Indonesia
Abstract - Organisasi pengembang software meningkat dan
kebanyakan mengadopsi agile development methods.
Meskipun CMMI tidak sulalu dapat men-support
interpretasi yang ada pada konteks agile . Makalah ini
melakukan pendekatan process area(PA) CMMI ke dalam
Agile assessment
I. Introduksi
Selama beberapa tahun terakhir, Capability
Maturity Model (CMM) dan Capability Maturity Model
Integration(CMMI)[1] dikenal secara luas oleh organisasi-
organisasi maupun perusahaan software, untuk membantu
tingkat kemajuan/perkembangan dan proses kematangan di
seluruh dunia[2]. Beberapa organisasi atau perusahaan ,
mengimplementasikan dalam SOP, bahkan secara rutin
telah menggunakan CMMI assessment dan appraisal
sebagai acuan khusus kerja. Dikarenakan standar acuan
kerja CMMI, dengan best practice-nya, memberikan
kemudahan dan keuntungan bagi kemajuan organisasi.
Belakangan, pendekatan perkembangan
metodologi software terbaru memiliki ketertarikan secara
luas perusahaan pengembang software. Agile software
development method, memberikan keuntungan kepuasan
custumer untuk memberikan software yang berkualitas
dengan pemercepatan proses saat pengembangannya[4-6]
Perusahaan yang memerlukan usaha yang besar
untuk meningkatkan proses produksi mereka lebih
menyadari bahwa pendekatan agile dapat membantu
perbaikan proses tersebut. Lain pihak, penerapan agile dapat
dikritisi karena lemahnya disiplin dan hanya cocok untuk
beberapa tipe aplikasi, contohnya untuk team kecil maupun
aplikasi yang tidak begitu besar begitu besar.[4,7].
Organisasi yang menerapkan metodologi agile
mungkin saja mengalami kendala-kendala penerapan
SDLC(System Development Cycle)[8] agile pada proses
kerja mereka. Framework agile pada CMMI dapat
membantu dan memberikan solusi kendala yang dihadapi
serta membangun kepercayaan team terhadap metodologi
agile. CMMI merepresentasikan cara yang lebih spesifik
dan dapat memulihkan kinerja team sampai tuntas.
Makara edukasi berdiri pada tahun 2007, dengan
akta notaris nomor ME/jkt/Ind 06-34-2007 merupakan salah
satu organisasi pengembang software pendidikan yang
berbasis teknologi. Didirikan oleh Achmad Solechan, M.Si,
makara edukasi memiliki visi dan misi sejalan dengan
pembukaan UUD’ 45 yakni mencerdaskan kehidupan
bangsa. Makara edukasi menerapkan metodologi Agile,
dalam pelaksanaan dan operasional pengembangan
software. Selain faktor kuantitas karyawannya tidak
banyak, Agile dititikberatkan bagaimana kualitas kerjasama
dan komunikasi team yang baik pada setiap proses
pengembangan.
Makalah ini disusun sebagai berikut Bab 2
memperkenalkan latar balakang agile development software,
CMMI, dan hubungan antara keduanya; Bab 3 menjelaskan
mengenai Tujuan makalah dengan pendekatan CMMI dan
konteks contoh kasus agile; Bab 4 menjelaskan pendekatan
process area pada CMMI untuk dapat membantu Agile
software development; dan yang terakhir adalah Bab 5
sebagai kesimpulan dari makalah ini
II. Latar Belakang
Pada bab ini dijelaskan mengenai prinsip pengembangan
agile piranti lunak, CMMI, dan keduanya.
2. 1 Prinsip agile development software
Beberapa metode pengembangan software telah
digunakan, seperti Extreme Programing(XP)[9], Scrum[10],
Crystal[11]. Semuanya menerapkan terus-menerus
pengerjaan piranti lunak sesuai dengan yang didefinisikan
Agile Manifesto[12]. Rancangan(plandriven)
pengembangan software dan metode agile selalu melihat
pada pengembangan yang terjadi pada setiap fase
pengembangannya. Pendekatan plandriven agile
menganggap bahwa pengembangan piranti lunak selalu
berulang dan prosesnya dapat diprediksikan.
Metodologi agile mendefinisikan bagaimana
sebuah pekerjaan harus dapat dikerjakan sesuai dengan nilai
dan prinsip-prinsip agile manifesto[14] untuk menjawab
tantangan perkembangan piranti lunak yang sangat cepat
beserta perubahan-perubahan kebutuhannya. Agile practice
dapat menjelaskan berbagai aktivitas yang efisien walaupun
mendapatkan perubahan requirement yang cepat[5]. Agility
adalah kemampuan dari kedua sisi, yakni kreatif dan
responsif terhadap perubahan, dengan tujuan keuntungan
diperoleh dari perubahan sisi bisnis yang selalu dinamis.
2. 2 CMMI
Capability Maturity Model Integration(CMMI)[1],
dikenal secara luas sebagai pendekatan atau tepatnya penilai
dalam skala kematangan dan kemampuan sebuah organisasi
software. CMMI memiliki 4 aturan yang dapat disesuaikan
menurut organisasi software, yakni : System
Engineering(SE), Software Engineering(SW) Integrated
Product and Process Development(IPPD), dan Supplier
Sourcing(SS). Model pada CMMI memiliki 2 rerpresentasi
yaitu level dan continuous. Representasi pada level
memfokuskan pada kumpulan Process Area(PA) dengan
menorganisir tingkatan kemampuannya. sedang continuous
merepresentasikan setiap process area(PA) disesuaikan
dengan tingkat kemampuan organisasi.
.
CMMI menjelaskan terdapat 25 process Area(PA)
dengan setiap proses memiliki specific dan generic goals
yang dapat menjadi kerangka tingkat kematangan
perusahaan pengembang piranti lunak. specific goals dari
area proses memberikan deskripsi tentang aktivitas-aktivitas
yang mesti laksanakan pada setiap tingkatan dalam CMMI.
Sedangkan, Generic goals mengaplikasikan rangkaian area
proses yang betujuan sebagai seberapa baik rangkaian
aktivitas tersebut dilaksanakan pada proses pengembangan
piranti lunak.
2. 3 Agile software development Assessment
Pendekatan yang dilakukan Boehm dan Turner[4]
menberikan jalan untuk assessing perusahaan software.
Metode ini tetap melakukan fokus terhadap agile assessing
dan rancangan metodologi ketinbang harus mecari
kelemahan dari setiap proses area yang ditetapkan pada
CMMI. Pada pembahasan Turner dan Jain[13], menemukan
bahwa hasil observasi terhadap metode Agile dan komponen
CMMI yang saling mendukung satu sama lainnya,
khususnya dalam hal fokus terhadap manajemen project.
Dua model tersebut diatas belum dapat
dibandingkan sebagai dua entitas karena Metode agile
menggambarkan prosess pengembangan software,
sedangkan CMMI adalah suatu referensi kerangka acuan
untuk menilai bagaimana proses pengembangan software
tersebut dilaksanakan. Menurut Paulk[14], dengan
menggabungkan keduanya(Agile methods and CMMI) dapat
memberikan sinegi yang baik, dalam menggabungkan
teknik implementasi dan manajemen yang sama baiknya.
III. Rancangan penelitian
Pada bagian ini, dijelaskan tentang tujuan riset dan
pendekatan-pendekatan CMMI yang dibahas. Tidak lupa
contoh kasus, juga, akan disertakan.
3.1 Tujuan riset dengan pendekatan CMMI
Tujuan makalah ini adalah mempelajari bagaimana
CMMI[1] dapat digunakan untuk meng-assess
perkembangan software dimana situasi dari organisasi yang
merencanakan perubahan proses secara cepat sesuai dengan
kondisi yang ada saat ini. Pendekatan dibangun secara
bersama performa organisasi saat ini dan diadaptasi pada
pengembangan dan penilaian terhadap kasus.
Pembatasan masalah pada pendekatan kasus ini
adalah biaya(actual cost) yang digunakan tidak dievaluasi,
diasumsikan bahwa upaya pengembangan software dan
upaya pengembangan pendekatan tidak memiliki hubungan
sama sekali.
3.2 Konteks study kasus
Makalah secara umum bertujuan untuk
mendapatkan semua informasi pada proses pengembangan
software yang menggunakan CMMI pada Makara Edukasi
yang menggunakan Agile software development assessment.
Setiap assessment pada Makara Edukasi telah mengenal
CMMI dan kegunaannya pada setiap bagian dari proses
peningkatan pengembangan software yang dihasilkan
Makara Edukasi.
Gambar 1 Level pada CMMI
Software yang telah dihasilkan oleh Makara
Edukasi adalah Software penilaian hasil UAN (Ujian Akhir
Nasional). Pada tahap pengembangan software tersebut,
Manajemen Makara Edukasi melakukan proses planing
kebutuhan yang merupakan “baseline” informasi yang
menjadi acuan pengembangan. Project manajer yang
ditunjuk sebagai pemimpin proyek tersebut melakukan
tahap planning terhadap untuk kemudian diimplementasikan
oleh team pengembang untuk menjadi sebuah software,
team pengembang terdiri 1 project manager, 2 sistem analis,
dan 2 orang programer. Ada beberapa kendala yang
menjadikan hambatan pada pengembangan, yakni :
Scope(objek) yang terlalu besar, prototype yang tidak user-
friendly, testing model, user requirement yang selalu
berubah sampai pada masalah pendokumentasian yang tidak
tertata dengan baik.
Segala hambatan pada proses pengembangan
software tersebut, terbantu dengan metode agile
developmen yang digunakan. Pada proses planning,
Anggota mendapatkan job description masing-masing dan
memiliki spesialisasi kemampuan yang baik di bidangnya
masing-masing. Baiknya komunikasi dan saling memahami
merupakan suatu nilai yang berharga pada agile methods.
Pada setiap level perubahan kebutuhan, project manajer
dapat mengkomunikasikan dan memunculkan solusi yang
baik untuk team lainnya.
IV. Pendekatan CMMI untuk membantu Agile software
development
Sebagaimana kasus diatas, prosess CMMI dan
Agile practices sering terlihat bersebrangan serta CMMI
tidak selalu mendukung interpretasi yang ada pada konteks
agile. Pendekatan yang CMMI pada konteks agile bukan
untuk melakukan penilaian terhadap kinerja proses agile,
tetapi melakukan sinergi yang berbasiskan CMMI dan
metode agile. Penggunaan CMMI assessment dapat menjadi
permintaan kebutuhan sebagai acuan yang baik pada proses
yang digunakan pada agile software development.
Pendekatan assessment yang dapat dipergunakan pada kasus
Makara Edukasi seperti gambar 2
Pada tahap awal adalah setiap individu pada team
dapat memahami tujuan dari organisasi. Tahap ini,
dedefinisikan sebagai tahap awal process assessment. Tahap
kedua pelaksanaan eksekusi direncakan secara bersama-
sama dengan team agar selaras dengan tujuan organisasi.
Berikutnya adalah mapping antara process area yang ada
pada CMMI ke dalam Assessment-assement yang ada pada
agile. Tahap keempat merupakan ciri agile development
proses yankni melaksanakan secara berulang-
ulang(dievaluasi sesuai dengan kebutuhan user) dengan
tidak lupa memperhatikan tujuan organisasi pengembang.
Tahap ini dapat dilaksanakan dalam bentuk rapat dengan
stackholder, interview, maupun workshop. Selama
workshop tersebut ada audiens dapat melakukan
bantahan/masukan/memberikan argumentasi untuk direviw
kembali oleh pihak pengembang sotware. Tahap terakhir
meliputi analisis final, bersama presentasi beserta review
paket software yang merupakan versi akhir pengembangan
software. Tahapan-tahapan berbentuk cycle untuk
melakukan review yang mingin sewaktu-waktu dibutuhkan.
V. Kesimpulan
Makalah ini melakukan pendekatan agile software
methodology menggunakan CMMI sebagai kerangka acuan
standar yang digunakan sebuah organisasi pengembang
software untuk mencapai tujuan organisasi dan menjadi
standard operasional pelaksanaan baku pada proses
pengembangan piranti lunak.
Mapping yang digunakan pada pendekatan CMMI
antara proses area yang ada pada CMMI dan agile practice
adalah tools yang digunakan dalam pendekatannya.
Walaupun, pembatasan masalah yang ada adalah kurangnya
informasi mengenai pembiayaan pengembangan software
ini sehingga informasi mengenai kendala biaya sampai
dengan return of investment(ROI) tidak terbahas ada pada
makalah ini.
Pengembangan piranti lunak dengan menggunakan
dapat menjadi acuan standard bagi organisasi-organisasi
pengembang piranti lunak untuk dapat mengukur skala
kematangan organisasi tersebut, sehingga pada persaingan
pasar bebas ini, organisisasi-organisasi dapat melaksakan
yang dinakannya persaingan sehat dimana kemampuan
penerimaan proyek-proyek pengembangan software menjadi
lebih kompetitif.
Daftar Pustaka
[1] CMMI, "CMMISM for Systems Engineering/Software
Engineering/Integrated Product and Process
Development/Supplier Sourcing, Version 1.1, Staged
Representation (CMMISE/ SW/IPPD/SS, V1.1, Staged.",
2002
Gambar 2. Pendekatan CMMI
[2] D. Zubrow, "Current Trends in the Adoption of the CMMI
Product Suite," In Proceedings of the 27th Annual
International Computer Software and Applications
Conference, pp. 126129, 2003.
[3] M. Buch and D. Dunaway, CMMI Assessments, Motivating
Positive Change, AddisonWesley, 2005.
[4] B. Boehm and R. Turner, Balancing Agility and Discipline
A Guide for the Perplexed, AddisonWesley, 2003.
[5] J. Highsmith, Agile Project Management, Creating
innovative products, AddisonWesley, 2004. [6] D. J.
Anderson, Agile Management for Software Engineering,
Applying the Theory of Constraints for Business Results,
Prentice Hall, 2003.
[6] D. J. Anderson, Agile Management for Software
Engineering, Applying the Theory of Constraints for
Business Results, Prentice Hall, 2003.
[7] P. E. McMahon, "Extending Agile Methods: A Distributed
Project and Organizational Improvement Perspective,"
CrossTalk, The Journal of Defense Software Engineering,
vol. 18, issue 5, pp. 1619, 2005.
[8] Alan Dennis, “System Analisys and Design with UML
Version 2.0”, Wiley International Edition, 2005
[9] K. Beck, Extreme Programming Explained: Embrace
Change, AddisonWesley, 2000.
[10] K. Schwaber and M. Beedle, Agile Software Development
With Scrum, Prentice Hall, 2002.
[11] A. Cockburn, Crystal Clear, A HumanPowered
Methodology for Small Teams, AddisonWesley, 2004. [12] AgileManifesto, Manifesto for Agile Software
Development http://agilemanifesto.org/ (1.3.2006)
[13] R. Turner and A. Jain, "Agile Meets CMMI: Culture Clash
or Common Cause," In proceedings of the Second XP
Universe and First Agile Universe Conference on Extreme
Programming and Agile Methods XP/ Agile Universe, pp.
153165, 2002.
[14] M. C. Paulk, "Extreme Programming from a CMM
Perspective," Software, vol. 18, issue 6, pp. 1926, 2001.