Perbandingan Metodologi Agile Software Development Dengan Key Process Area dalam Framework CMMI

7
Perbandingan Metodologi Agile Software Development Dengan Key Process Area dalam Framework CMMI Ari Brahmadi ( 1106144424 ) MTI UI 2011/2012 Kelas B I. Introduksi Seperti kebanyakan organisasi pengembangan perangkat lunak ( Software Development Organization – SDO ) di bisnis kecil menengah , metode agile software development menjadi suatu metode yg umum diterapkan baik secara sadar maupun tidak disadari. Hal ini terjadi karena pada umumnya SDO ini belum mengenal secara mendalam apa itu metodologi agile jika dibandingkan dengan Software Life Cycle Model yang umum disebutkan di literatur pada saat kuliah[1]. Metodologi agile juga bisa juga diterapkan pada SDO yang berada di bisnis kelas enterprise , yang sudah memiliki framework sebagai acuan dalam menghasilkan software product. Salah satunya adalah Framework Capability Maturity Model Integration(CMMI)[2]. Keuntungan dari metodologi agile dalam SDO adalah kepuasan Customer atas delivery software product yg ringkas cepat dan langsung bisa digunakan. Akan tetapi jika organisasi tersebut sudah merupakan organisasi software yang sudah mengacu pada framework CMMI , maka point2 proses dalam metodologi agile terlihat bisa menjadi suatu hal yang bertentangan dengan prinsip di dalam CMMI. Makalah ini berisi perbandingan metode Agile Software development dengan Key Process Area di CMMI serta kemungkinannya untuk dikombinasikan antara keduanya II.Konsep CMMI dan Agile Sebelum masuk ke pembahasan masalah , sebaiknya perlu diketahui apa itu CMM/CMMI , atau juga apa itu metodologi Agile Software Development. II.1 Konsep CMM/CMMI Suatu framework yang terdiri atas kumpulan2 best practice , seperti Proses area , Goals atas masing-masing Process Area serta Key Practice yg harus dilakukan dalam mencapai goals. Hal2 diatas dapat digunakan untuk mengukur tingkat kematangan organisasi dalam proses pengembangan software. Dirumuskan oleh Software Engineering Institution. Adapun tingkatan2 kematangan dalam CMMI adalah :

description

Suatu Kajian perbandingan kecil antara metodologi agile dengan CMMI

Transcript of Perbandingan Metodologi Agile Software Development Dengan Key Process Area dalam Framework CMMI

Page 1: Perbandingan Metodologi Agile Software Development Dengan Key Process Area dalam Framework CMMI

Perbandingan Metodologi Agile Software DevelopmentDengan Key Process Area dalam Framework CMMI

Ari Brahmadi ( 1106144424 )MTI UI 2011/2012 Kelas B

I. Introduksi Seperti kebanyakan organisasi pengembangan perangkat lunak ( Software Development Organization – SDO ) di bisnis kecil menengah , metode agile software development menjadi suatu metode yg umum diterapkan baik secara sadar maupun tidak disadari. Hal ini terjadi karena pada umumnya SDO ini belum mengenal secara mendalam apa itu metodologi agile jika dibandingkan dengan Software Life Cycle Model yang umum disebutkan di literatur pada saat kuliah[1].

Metodologi agile juga bisa juga diterapkan pada SDO yang berada di bisnis kelas enterprise , yang sudah memiliki framework sebagai acuan dalam menghasilkan software product. Salah satunya adalah Framework Capability Maturity Model Integration(CMMI)[2].

Keuntungan dari metodologi agile dalam SDO adalah kepuasan Customer atas delivery software product yg ringkas cepat dan langsung bisa digunakan. Akan tetapi jika organisasi tersebut sudah merupakan organisasi software yang sudah mengacu pada framework CMMI , maka point2 proses dalam metodologi agile terlihat bisa menjadi suatu hal yang bertentangan dengan prinsip di dalam CMMI.

Makalah ini berisi perbandingan metode Agile Software development dengan Key Process Area di CMMI serta kemungkinannya untuk dikombinasikan antara keduanya

II.Konsep CMMI dan Agile Sebelum masuk ke pembahasan masalah , sebaiknya perlu diketahui apa itu

CMM/CMMI , atau juga apa itu metodologi Agile Software Development.

II.1 Konsep CMM/CMMI Suatu framework yang terdiri atas kumpulan2 best practice , seperti Proses area ,

Goals atas masing-masing Process Area serta Key Practice yg harus dilakukan dalam mencapai goals. Hal2 diatas dapat digunakan untuk mengukur tingkat kematangan organisasi dalam proses pengembangan software. Dirumuskan oleh Software Engineering Institution. Adapun tingkatan2 kematangan dalam CMMI adalah : 1.Initial ;2.Repeatable;3.Define;4.Managed;5.Optimize. Di masing2 tingkat kematangan terdapat key proses area yang bisa dijadikan acuan untuk mencapai goals-goals tertentu agar tingkat kematangan tersebut bisa dilalui. Masing masing tingkatan juga punya karakteristik2 tertentu sesuai dengan tahapan2 proses yang telah dilakukan. Karakteristik untuk masing-masing tingkat kematangan adalah sebagai berikut :

Level 1 (initial) : Hasil tidak bisa diprediksi dan kurang terkontrol Level 2 (repeatable) : Fokus kepada managerial dan dokumentasi dan sudah ada project

management.Level 3 (defined) : Ada perkembangan strategi dalam software development Level 4 (managed) : Telah menggunakan metode kuantitatif dan metode sudah didalam

model statistic sehingga dapat dinilai dengan angka

Page 2: Perbandingan Metodologi Agile Software Development Dengan Key Process Area dalam Framework CMMI

Level 5 (optimizing) : Mengambil data dari proyek yang sudah pernah dilakukan dan untuk optimizing proyek yang baru serta overloop tanpa batasan untuk proses improvement

Untuk mencapai tingkat kematangan yang lebih tinggi , semua goals dalam tingkatan tersebut harus di satisfied( istilah untuk mencapai goals ) Key Proses Area yang terdapat pada CMM :

Level 2 ( Repeatable ) - Requirement Management ( RM ) - S/W Project Planning ( PP ) - S/W Project Tracking & oversight ( PP ) - S/W SubContract management ( SCM ) - S/W Quality Assurance ( SQA ) - S/W Configuration management ( CM ) Level 3 ( Define )- Organization Process Focus ( OPF ) - Organization Process Definition ( OPD )- Training Program ( TP ) - Integrated S/W Management ( ISM ) - S/W Product Engineering - Intergroup Coordination - Peer ReviewLevel 4 ( Manage )- Quantitive Process Management ( QPM ) - S/W Quality Management ( SQM ) Level 5 ( Optimizing )- Process Change Management- Technology Change Management - Defect Prevention

II.2 Konsep Agile Software Development Definisi dari Agile Software Development adalah : sekelompok metodologi

pengembangan software yang didasarkan pada prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun[3]. Dicetuskan pertama kali oleh Kent Beck dan 16 rekannya pada tahun 1996. Manifesto Agile :

1. Interaksi individual / perorangan lebih penting dari Proses dan tools. ; 2. Software yg berfungsi lebih penting daripada dokumentasi yang komprehensif ; 3. Kolaborasi dengan Customer lebih penting daripada negosiasi kontrak ; 4.Respon terhadap perubahan lebih penting daripada hanya mengikuti suatu

rencana yang telah diatur sebelumnya Metodologi agile yang diterapkan ini harus selalu sesuai dengan manifesto yang disebutkan di atas.

Salah satu model dari Agile adalah , Extreme Programming (XP).XP ini sendiri pertamakali dicetuskan oleh Kent Beck, Ron Jeffries, and Ward Cunningham.Dimana nilai-nilai dalam XP adalah sbb :

- Memberikan tanggapan yang cepat - tanggapan meningkatkan desain

Page 3: Perbandingan Metodologi Agile Software Development Dengan Key Process Area dalam Framework CMMI

- Mengedepankan Simplicity – fokus ke hal2 yang kecil terlebih dahulu- Perubahan yang bertahap – efeknya akan mengurangi risiko.- Embrace Change – dengan pendekatan iteratif maka perubahan2 dapat diakomodasi- Melakukan pekerjaan yang berkualitas – Sering menggunakan pengujian dan umpan

balik konsumen . Menulis tes untuk masing-masing skenario yang disediakan oleh pengguna sebelum menuliskannya ke dalam program serta menjaga semua tes dijalankan setiap saat. Penulisan UAT baru dimulai ketika fungsi sudah diidentifikasi berjalan .Pengujian terus berkembang seiring dengan sistem lifetime

Prinsip-prinsip di dalam XP :

- Planning Game : Cepat menentukan lingkup rilis berikutnya , menggabungkan, prioritas bisnis dan perkiraan teknis. Pelanggan memutuskan ruang lingkup, prioritas, dan tanggal dari perspektif bisnis, sedangkan orang teknis memperkirakan dan melacak kemajuan

- Small Release : mendeliver system kecil yang simple ke dalam production secepatnya , release versi baru dalam waktu yang singkat ( two-weeks) Cycle

- Metaphor : menuntun semua team development dengan simplicity ,

- Simple Design : mendesain sesimple mungkin

- Testing : Developer secara kontinu melakukan unit test

- Refactoring : Merestrukturisasi system tanpa merubah behaviour-nya,

- Continuous integration :Mengintegrasi dan build system sesering mungkin

- 40-hour/ weeks :bekerja tidak lebih dari 40 jam seminggu

- Pair Programming : semua code ditulis oleh 2 programmer atau lebih yahh

- On site Customer : Memiliki user yang sebenarnya berjaga per malam atau Lebih

- Coding standard :Mempunyai standard coding yang terdokumentasi

III.Pembahasan Masalah Masalah yang dibahas adalah bagaimana agile software development di dalam

kerangka framework CMMI bisa berjalan tanpa melanggar prinsip CMMI itu sendiri , yang juga mestinya bisa mengakselerasi peningkatan level kematangan CMMI di organisasi tersebut.Dalam hal ini penulis memberi contoh salah satu model agile yaitu Extreme Programming ( XP )

Karena dalam CMMI hanya fokus dalam management dari software development, dan hanya sedikit membahas tentang proses development proses , maka development proses tersebut dapat disediakan oleh XP , setidaknya utk project yang lebih kecil[5]

Page 4: Perbandingan Metodologi Agile Software Development Dengan Key Process Area dalam Framework CMMI

III.1 XP dan CMMI XP & CMMI , keduanya fokus pada issue management yang terkait dengan efisiensi

dan efektifitas proses dalam improvement Process. XP, di lain sisi adalah kumpulan practice2 yang spesifik.ketika disatukan maka keduanya bisa bersinergi.Untuk jelasnya maka akan dijabarkan hubungan antara XP dengan CMM KPA

III.2 XP Development di Level 2 ( Repeatable ) Mapping XP terhadap Process Area Requirement Management ( RM ), melalui

penggunaan atas user stories , Onsite Customer dan Integrasi yang terus menerus. Meskipun perubahan akan berlangsung terus menerus , XP mengintegrasikan feedback atas harapan customer dan kebutuhannya dengan menekankan siklus yang singkat dan keterlibatan customer secara terus menerus.

Mapping XP terhadap Process Area Project Planning ( PP ) , melalui planning Game dan release2 kecil . XP mengintegrasikan team software kedalam proses komitmen dengan mengestimasi effort yang dikeluarkan untuk mengimplementasikan cerita customer ( Customer Stories )

Mapping XP terhadap software project tracking dan oversight adalah melalui percepatan proyek, dan komitmen (cerita) untuk rilis kecil. Komitmen XP adalah ekspektasi yang jelas di awal untuk keduabelah pihak ( Customer vs XP Team )

Mapping XP dengan Software Quality Assurance adalah pada budaya pair programming.

Mapping XP dengan Software Configuration Management adalah pada : Collective ownership , Small Release dan continues Integration.

III.3 XP Development di Level 3 ( Define ) Di Level 3 Mapping XP Terhadap organization Process Focus adalah lebih ke team

daripada level pada organisasi , karena memang XP fokus sebagai engineering process bukan management process.

Untuk mapping Organization Process Development dan training program , beberapa literatur menyatakan bahwa 2 hal tersebut langsung berkaitan dengan XP , tapi tidak termasuk organizational Assets. Konsekuensinya adalah integrated Software management tidak bisa dimapping krn mungkin tidak ada organizational asset bisa dibentuk.

Beberapa XP Practice secara efektif melakukan mapping software product engineering , Intergroup Coordination serta Peer Reviews dengan metaphor , simple design , refactoring , coding standards , unit testing dan functional testing

III.4 XP Development di luar level 3 ( Managed & Optimizing ) XP sangat sedikit yg bisa di mapping pada level 3 & 4. XP mungkin bisa dimaping

langsung dengan defect prevention , tapi kaitannya sangat sedikit sekali . Banyak sekali KPA yg diabaikan oleh XP , maupun hanya dicover sebagian , tidak diragukan lagi ditujukan kepada project sebenarnya. XP membutuhkan management dan support infrastruktur , meskipun tidak spesifik dipanggil utk itu.

IV.KesimpulanPada awal perbandingan terlihat bahwa XP secara umum fokus pada pekerjaan

teknikal. Dimana CMM secara umum fokus pada issue manajemen. Kedua metode ini bersangkutan dengan kultur / budaya

Akan tetapi ada beberapa prinsip di XP bisa dimapping dengan KPA di CMM , yang jika terkait dengan project2 yang besar , penerapan XP mungkin bisa cukup sulit untuk

Page 5: Perbandingan Metodologi Agile Software Development Dengan Key Process Area dalam Framework CMMI

diimplementasi , karena menekankan arsitektur yang baik secara filosofi akan menjadi semakin penting bagi keberhasilan proyek.

Penerapan XP juga tergantung pada jenis bisnis yang dijalani. Jika itu membutuhkan high reliability atau life critical , maka XP tidak bisa digunakan krn XP kekurangan atas Design documentation dan support infrastruktur .@

Daftar Pustaka[1].Rekayasa Perangkat Lunak - Prof Suryadi HS., SSi., MMSI – Universitas Gunadarma[2]. CMMI - CMMI – Ralph Kneupper –Rockynook Inc 2009 Bab 1 [3]. Dwijaantara's Blog - http://dwijaantara.wordpress.com/2010/10/25/agile-method/[4] Extreme Programming from a CMM Perspective - Mark C. Paulk, Software Engineering

Institute [5] CMMI – Ralph Kneupper –Rockynook Inc 2009 Bab 6 Hal 129