1. Unified Process Unified Process (UP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulka mengumpulkan n berbagai berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan use-case driven dan pendekatan iteratif untuk siklus pengembangan perangkat lunak. Dalam kondisi apa UP dapat digunakan ?
UP tepat digunakan dalam kondisi : •
Pengembangan perangkat lunak yang berorientasi objek dengan berfokus pada UML (Unified (Unified Modeling Language) Language)
•
Mempunyai waktu pengembangan yang panjang
•
Dikembangkan pada perangkat lunak sebagai sarana interaksi antara pengguna dan perangkat keras
•
Mempunyai tim programmer tim programmer yang yang cukup banyak
•
Pengembangan dan perubahan perangkat lunak berdasarkan kebutuhanuser kebutuhan user RUP menggunakan menggunakan konsep object oriented , dengan aktifitas aktifitas yang berfokus pada pengembangan pengembangan
model dengan menggunakan Unified Model Language (UML). Melalui gambar dibawah dapat dilihat bahwa UP memiliki, yaitu:
Dimensi pertama digambarkan secara horizontal. Dimensi ini mewakili aspek-aspek dinamis dari
pengembangan perangkat lunak. Aspek ini dijabarkan dalam tahapan pengembangan atau fase. Setiap fase akan memiliki suatu major milestone yang menandakan akhir dari awal dari phase selanjutnya. Setiap Setiap phase phase dapat dapat berdiri berdiri dari dari satu satu atau atau beberap beberapaa itera iterasi. si.
Dimens Dimensii ini terdiri terdiri atas Inception, Inception,
Elaboration, Elaboration, Construction, Construction, dan Transition. Transition.
Dimensi kedua digambarkan secara vertikal. Dimensi ini mewakili aspek-aspek statis dari proses
pen pengem gemba banga ngan n pera perang ngkat kat luna lunak k yang yang dike dikelo lomp mpok okka kan n ke dalam dalam bebe bebera rapa pa disi disipl plin in.. Pros Proses es pengembangan perangkat lunak yang dijelaskan kedalam beberapa disiplin terdiri dari empat elemen when. Dimens penting, yakni who is doing , what , how dan when. Dimensii ini terdir terdirii atas atas Business Modeling, Requirement, Analysis and Design, Implementation, Test, Deployment, Configuration dan Change Manegement, Project Management, Environtment.
Gambar 1. Arsitektur Unified Process
1. Fase-f Fase-fase ase dala dalam m Unifie Unified d Proce Process ss Berdasarkan Berdasarkan pada pada Gambar 1 di atas, menjela menjelaskan skan mengenai mengenai fase-fase fase-fase pada pada
Unified Unified Process Process yang
termasuk ke dalam dimensi pertama dari UP : a.
Inception/insepsi
Pada tahap ini pengembang mendefinisikan batasan kegiatan, melakukan analisis kebutuhan user, dan melakukan perancangan awal perangkat lunak (perancangan arsitektural dan use case). case). Pada akhir akhir tahap tahap ini, ini, protot prototipe ipe perangk perangkat at lunak lunak versi versi Alpha harus harus sudah sudah diril dirilis. is. Kegiat Kegiatan an yang dilakukan pada tahap ini diantaranya : o
Menentukan Ruang lingkup proyek
Ruang Ruang lingk lingkup up proy proyek ek meli melipu puti ti,, tata tata cara cara untu untuk k mene menent ntuka ukan n wakt waktu u proye proyek k dimu dimula lai, i, perencanaan perencanaan lingkup proyek yang akan dikerjakan, dikerjakan, pendefinisi pendefinisian an ruang lingkup proyek, proyek, verifikasi proyek serta kontrol atas perubahan yang mungkin terjadi saat proyek tersebut dimulai. dimulai. Tujuan utama adalah untuk ruang lingkup lingkup sistem secara memadai sebagai dasar untuk mengesahkan biaya awal dan anggaran. o
Membuat ‘Business Case’
Busine Business ss Case Case adalah adalah alat alat yang menduku mendukung ng perenc perencanaa anaan n dan pengam pengambil bilan an keputu keputusan san-termasuk termasuk keputusan keputusan tentang tentang apakah yang akan dibeli, dibeli, produk apa apa yang akan dibawa ke pasar, proyek apa yang akan di danai, dan vendor mana yang akan dipilih, atau kapan proyek terseb tersebut ut dilaks dilaksana anakan. kan. Busine Business ss Case Case umumny umumnyaa diranca dirancang ng untuk untuk menjaw menjawab ab pertan pertanyaan yaan seperti di atas tentang konsekuensi dari suatu tindakan atau keputusan. Dalam Dalam tahap tahap ini kasus kasus bisnis bisnis yang mencak mencakup up konteks konteks bisnis bisnis,, faktor faktor-f -fakt aktor or kesuks kesuksesa esan n
(diharapkan pendapatan, pengenalan pasar, dll), dan prakiraan keuangan didirikan. Untuk melengkapi kasus bisnis, kasus penggunaan dasar model, rencana proyek, penilaian risiko awal dan deskripsi proyek (inti persyaratan proyek, kendala dan fitur utama) yang dihasilkan o
Menjawab pertanyaan “apakah yang dikerjakan dapat menciptakan ‘good business sense’ sehingga proyek dapat dilanjutkan
Sebuah kasus bisnis yang baik juga mengidentifikasi faktor kesuksesan dan kontinjensi yang harus dikelola untuk menargetkan tingkat, untuk mencapai hasil yang diharapkan. Dan, kasus ini juga harus mengidentifikasi risiko - faktor yang tidak dapat dikendalikan atau dikelola, tetapi yang dapat menyebabkan hasil yang berbeda untuk muncul.
b.
Elaboration/elaborasi
Pada tahap tahap ini dilaku dilakukan kan peranca perancanga ngan n perang perangkat kat lunak lunak mulai mulai dari dari menspe menspesif sifika ikasik sikan an fitur fitur perangkat lunak hingga perilisan prototipe versi Betha versi Betha dari perangkat lunak. Tujuan utama adalah untuk mengurangi resiko kunci item diidentifikasi dengan analisis hingga akhir fase ini. Fase perluasan dimana proyek mulai terbentuk. Dalam tahap ini masalah analisis domain dibuat dan proyek arsitektur mendapatkan bentuk dasarnya Kegiatan yang dilakukan pada tahap ini diantaranya : o
Menganalisa berbagai persyaratan dan resiko
Di dalam sebuah proyek, terdapat beberapa persyaratan-persyaratan yang harus dipenuhi agar suatu proyek tersebut dapat terlaksana dengan baik. Selain itu melakukan analisa terhadap resiko juga diperlukan agar pada saat resiko tersebut terjadi, sudah ada persiapan untuk menanggulangi resiko-resiko yang akan terjadi. o
Menetapkan ‘base line’
Baseline adalah sebuah copy dari suatu project. Kita dapat membandingkan antara baseline dengan kondisi yang sekarang untuk mengevaluasi progress. Sebelum kita melakukan proses dating dari dating dari sebuah schedule, sebuah schedule, kita harus terlebih dahulu membuat sebuah baseline. baseline. o
Merencanakan fase berikutnya yaitu construction
Merupa Merupakan kan titik titik awal awal peranca perancanga ngan n dan pengem pengembang bangan an testi testing ng dan dapat dapat dipaka dipakaii untuk untuk menganalisa iterasi.
c. Construction/konstruksi
Pengimpleme Pengimplementasi ntasian an rancangan rancangan perangkat perangkat lunak yang telah dibuat dilakukan dilakukan pada tahap ini. Tujuan utama adalah untuk membangun sistem perangkat lunak. Pada tahap ini, fokus utama adalah pada pengembangan komponen dan fitur lain dari sistem yang dirancang. Ini adalah tahap ketika ketika sebagi sebagian an besar besar terjad terjadii pengko pengkodean dean.. Dalam Dalam proyek proyek yang lebih lebih besar, besar, beberap beberapaa itera iterasi si
konstruksi bisa dikembangkan dalam aya untuk membagi penggunaan dikelola kasus ke segmen yang menghasilka menghasilkan n prototype prototype dibuktikan. dibuktikan. Pada akhir tahap ini, perangkat perangkat lunak versi akhir yang sudah disetujui administrator administrator dirilis dirilis beserta dokumentasi perangkat lunak. Kegiatan yang dilakukan pada tahap ini diantaranya : o
Melakukan sederetan iterasi
Mela Melaku kuka kan n sera serangk ngkai aian an kegia kegiata tan n dan tuga tugas, s, deng dengan an sumb sumber er daya daya yang yang dite diteta tapk pkan, an, mengandung mengandung ketergantungan ketergantungan tugas, untuk iterasi. iterasi. Biasanya Biasanya terdapat terdapat 2 rencana rencana iterasi iterasi yang aktif pada setiap waktu yang sama, yaitu : a. Rencana Rencana iteras iterasii yang saat ini digunaka digunakan n untuk melacak melacak kemajua kemajuan n dalam dalam iterasi iterasi yang sedang berlangsung. b. Rencana iteras iterasii yang selanjutn selanjutnya ya adalah rencana rencana yang yang digunakan digunakan untuk merencanak merencanakan an iterasi selanjutnya. rencana ini di siapkan untuk menghadapi akhir dari iterasi saat ini. o
Pada setiap iterasi akan melibatkan proses berikut: analisa desain, implementasi dan testing
d. Transition/transisi
Instalasi , deployment dan sosialisasi sosialisasi perangkat lunak dilakukan pada tahap ini. Tujuan utama adalah untuk ‘transisi’ sistem dari ke pengembangan produksi, membuatnya tersedia untuk dan dipaham dipahamii oleh oleh penggun penggunaa akhir. akhir. Kegiata Kegiatan n ini melip meliputi uti pelati pelatihan han tahap tahap akhir akhir penggun penggunaa dan pengelola dan beta testing dari sistem untuk memvalidasi itu terhadap pengguna akhir harapan. Produk ini juga diperiksa terhadap tingkat kualitas ditetapkan dalam fase Inception. Kegiatan yang dilakukan pada tahap ini diantaranya : o
Membuat apa yang sudah dimodelkan menjadi suatu produk jadi
o
Dalam fase ini dilakukan:
Beta dan performance testing
Melakukan testing pada produk yang sudah jadi untuk mengetahui apakah masih terdapat bug atau bug atau tidak, apabila produk tersebut masih terdapat bug maka feedback maka feedback akan akan dikirim ke developer untuk dilakukan pengecekan dan patching dan patching pada pada bug tersebut. bug tersebut.
Membuat dokumentasi tambahan seperti : training, user guides dan sales kit.
Membuat rencana peluncuran produk ke komunitas pengguna.
2.
Kelebihan dan Kekurangan dalam Unified Proccess
•
Keuntungan Pengembangan Perangkat Lunak UP : Ada beberapa keuntungan dengan mengunakan UP di antaranya :
a. Menyediakan Menyediakan akses akses yang mudah terhada terhadap p pengetahu pengetahuan an dasar bagi anggota anggota tim. b. Menyediakan Menyediakan petunju petunjuk k bagaimana bagaimana menggunak menggunakan an UML secara secara efektif. efektif. c. Mendukung Mendukung proses proses pengulangan pengulangan dalam pengembangan pengembangan software. software. d. Memungkinkan Memungkinkan adanya penambahan-p penambahan-penambah enambahan an pada pada proses. proses. e. Memungkinkan Memungkinkan untuk untuk secara secara sistematis sistematis mengont mengontrol rol perubahanperubahan- perubaha perubahan n yang terjadi terjadi pada software selama proses pengembangannya. f. Memungkinkan Memungkinkan untuk menjalankan menjalankan test case dengan menggunakan menggunakan Test Manager Manager Tool
•
Kekurangan Pengembangan Perangkat Lunak UP : Metodologi ini hanya dapat digunakan pada pengembangan perangkat lunak yang berorientasi objek dengan berfokus pada UML (Unified Modeling Language)
3.
Contoh Penerapan Metodologi Pengembangan Perangkat Lunak Unified Proccess
Pengembangan Perangkat Lunak dengan Menggunakan UP (Contoh Kasus) Perangkat lunak, atau piranti lunak adalah program komputer yang berfungsi sebagai sarana interaksi antara pengguna dan perangkat keras. Perangkat lunak dapat juga dikatakan sebagai ‘penterjemah’ perintah-perintah yang dijalankan pengguna computer untuk diteruskan ke atau diproses oleh perangkat keras. Perangkat lunak ini dibagi menjadi 3 tingkatan: tingkatan program aplikasi (application program misalnya Microsoft Office), tingkatan sistem operasi (operating system misalnya Microsoft Windows), dan tingkatan bahasa pemro pemrogra graman man (yang (yang dibagi dibagi lagi lagi atas atas bahasa bahasa pemrog pemrogram raman an tingka tingkatt tinggi tinggi sepert sepertii Pascal Pascal dan bahasa bahasa pemrograman tingkat rendah yaitu bahasa rakitan). Perang Perangkat kat lunak lunak adalah adalah progra program m komput komputer er yang yang isi instru instruksi ksinya nya dapat dapat diubah diubah dengan dengan mudah. mudah. Perangkat lunak umumnya digunakan untuk mengontrol perangkat keras (yang sering disebut sebagai device driver), melakukan proses perhitungan, berinteraksi dengan perangkat lunak yang lebih mendasar lainnya (seperti sistem operasi, dan bahasa pemrograman), dan lain-lain.
2. XP (Extreme Programming)
Extreme Programming (berikutnya Programming (berikutnya akan disingkat sebagai XP) adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembanga pengembangan n tersebut tersebut sehingga menjadi menjadi lebih adaptif dan fleksibel fleksibel.. Walaupun Walaupun menggunakan menggunakan kata programming , XP buka bukan n hanya hanya berf berfoku okuss pada pada coding tetapi tetapi meliputi meliputi seluruh seluruh area pengembangan pengembangan perangkat lunak. Dalam Kondisi apa XP dapat digunakan ?
XP tepat digunakan saat kondisi : •
Keperluan berubah dengan cepat
•
Resiko tinggi dan ada proyek dengan tantangan yang baru
•
Tim programmer sedikit, yaitu antara 2-10 orang
•
Mampu mengotomatiskan tes
•
Ada peran serta pelanggan secara langsung
Tujuan XP
Tujuan Tujuan utama utama XP adalah adalah menuru menurunka nkan n biaya biaya dari dari adanya adanya peruba perubahan han software. software. Dalam Dalam metodo metodolog logii pengembangan sistem tradisional, kebutuhan sistem ditentukan pada tahap awal pengembangan proyek dan bersifat fixed. Hal ini berarti biaya terhadap adanya perubahan kebutuhan yang terjadi pada tahap selanjutnya selanjutnya akan menjadi menjadi mahal. mahal. XP diarahkan untuk menurunkan menurunkan biaya dari adanya perubahan perubahan dengan memperkenalkan nilai-nilai basis dasar, prinsip dan praktis. Dengan menerapkan XP, pengembangan suatu sistem haruslah lebih fleksibel terhadap perubahan. Variabel XP
Terdapat 4 variabel XP, yaitu antara lain : 1. Cost Cost (bia (biaya ya)) Denga Dengan n meni mening ngkat katkan kan biaya biaya,, kita kita bisa bisa menc mencip ipta takan kan prog progra ram m yang yang lebi lebih h baik. baik. Sebaliknya mengurangi biaya untuk proyek tidak akan menyelesaikan masalah customer. Tetapi, biaya yang tiak terbatas juga akan menimbulkan kerusakan.
2. Time (waktu) (waktu) Dengan Dengan meningkatk meningkatkan an waktu makan makan kita akan mampu mampu mencipt menciptakan akan program program yang berkualitas dan dengan feature-feature yang lebih banyak.Akan tetapi waktu yang berlebihan tidak baik, karena dapat merusak terhadap diri sendiri. Waktu yang sedikit juga tidak baik karena kualitas yang dihasilkan akan jauh dari yang diharapkan. 3. Quality Quality (mutu) (mutu) Mutu Mutu merupa merupakan kan suatu variabel variabel pengendal pengendalii yang sangat sangat “menger “mengerika ikan” n” karena karena merupakan suatu hal yang sangat diperhatikan oleh konsumen. 4. Scope Scope (featu (feature) re) Scope merupak merupakan an varibe varibell prime primer. r. Jika kita kita mengur mengurangi angi Scope,m Scope,maka aka kita bisa mengurangi biaya dan meningkatkan kualitas. Kunci utama XP (XP Value)
Menurut penggagas dari metode XP, Kent Beck mendefinisikan lima kunci utama dari XP, yaitu : 1. Communicati Communication on XP memfokuskan memfokuskan pada pada hubungan hubungan komunikasi komunikasi yang yang baik antar antar anggota tim. tim. Para Para anggota tim harus membangun saling pengertian, mereka juga wajib saling berbagi pengetahuan dan ketera keteramp mpila ilan n dalam dalam mengem mengembang bangkan kan perang perangkat kat lunak. lunak. Ego dari dari para para progra programme mmerr yang biasanya biasanya cukup tinggi harus ditekan dan mereka mereka harus membuka diri untuk bekerjasama bekerjasama dengan programmer lain dalam menuliskan kode program. 2. Courege Courege Para anggota anggota tim dan penanggun penanggungja gjawab wab pengembang pengembangan an perang perangkat kat lunakharu lunakharuss selalu selalu memiliki keyakinan dan integritas dalam melakukan tugasnya. Integritas ini harus selalu dijaga bahkan dalam kondisi adanya tekanan dari situasi sekitar. Untuk dapat melakukan sesuatu dengan penuh integritas, terlebih dahulu para anggota tim memiliki rasa saling percaya. Rasa saling percaya inilah yang coba dibangun dan ditanamkan oleh XP pada berbagai aspeknya. 3. Simplicity Simplicity Lakukan Lakukan semua dengan dengan sederhana. sederhana. Hal tersebut tersebut adalah adalah salah salah satu nilai nilai dasar dari dari XP. Gunakan metode yang pendek dan simpel, jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya, dan berbagai proses penyederhanaan lain akan selalu menjadi nilai utama dari setiap aspek XP. 4. Feedbac Feedback k Berika Berikan n selalu selalu feedback feedback kepada kepada sesama sesama anggot anggotaa tim maupun maupun pihak-p pihak-piha ihak k lain lain yang terlibat terlibat dalam pengembangan pengembangan perangkat perangkat lunak. Utarakan selalu pikiran anda dan diskusikan diskusikan kesalahan-kes kesalahan-kesalaha alahan n yang muncul selama proses proses pengembangan. pengembangan.Dengar Dengarkan kan selalu selalu pendapat pendapat rekan yang lain. Dengan adanya feedback inilah seringkali kita menyadari bagian mana yang salah atau bisa ditingkatkan lagi dari perangkat lunak yang dikembangkan. 5. Quality Quality Work Semua Semua nilai di atas atas berujung berujung pada pada sebuah kondisi kondisi dimana dimana kita melakukan melakukan pekerjaa pekerjaan n dengan berkualitas. Denagn proses yang berkualitas maka akan muncul pula implikasi perangkat lunak yang berkualitas sebagai hasil akhir.
Prinsip utama XP
Dalam penerapannya, Extreme Programming memiliki lima prinsip utama, yaitu: 1. Rapid Rapid Feedback Feedback Menuru Menurutt ilmu psikol psikologi ogi,, waktu waktu antara antara sebuah sebuah aksi dengan feedback feedbacknya nya sangat sangat penting untuk dipelajari. Dalam sebuah proyek XP, developer memperoleh feedback sesegera mungkin, mungkin, menginterp menginterpretas retasikanny ikannya, a, lalu mengambil inti sarinya sarinya dan meletakkanny meletakkannyaa ke dalam system. Feedback dari pelanggan terhitung harian, bukan bulanan, dan feedback dari developer terhitung menitan, bukan mingguan! 2. Assume Assume Simplic Simplicity ity Hanya mendes mendesain ain untuk untuk masala masalah h saat saat ini dan menghem menghemat at waktu 98% dari masalah tersebut dan hanya menekuni sekitar 2% untuk bagian yang sulit. XP berencana untuk masa depan sehingga desainnya bias di-reuse, lakukan pekerjaan yang penting, dan percayalah bahwa untuk kekompleksitasan bias ditambahkan kemudian. 3. Incremental Incremental Change Change Pemecahan Pemecahan problem problem yaitu yaitu dengan bagian-bagi bagian-bagian an kecil perubaha perubahan n saja. Jadi Jadi perubahan-perubahan yang terjadi pada XP melalui tahap-tahap kecil dan waktu yang singkat. 4. Embracing Embracing Change Mencari Mencari dan menyedia menyediakan kan terlebih terlebih dahulu sebanyak sebanyak mungkin mungkin pilihan pilihan ketika ketika menyelesaikan masalah yang begitu menekan. 5. Quality Quality Work Setiap Setiap orang orang suka mengerjak mengerjakan an pekerjaan pekerjaan yang bagus dan dan layak dan kualit kualitas as yang dimaksud di sini adalah kualitas yang sempurna dan kualitas yang sempurna secara ekstrim. Karena tanpa kualitas kita tidak akan suka melakukan pekerjaan tersebut, hasilnya tidak akan sempurna dan proyeknya akan jatuh berantakan. Aspek Dasar XP
Aspek dasar XP terdiri dari berbagai teknik atau metode yang diterapkan Beck dan Jeffries pada C3 Project . Teknik-teknik tersebut dapat diamati pada gambar berikut ini:
Gambar 2. Teknik-teknik dalam XP
1. The Planning Game Pendekatan XP dalam perencanaan sangat mirip dengan metode yang diterapkan pada RAD pada RAD (Rapid Application Development). Proses Proses pendek pendek dan cepat, cepat, mengut mengutamak amakan an aspek aspek teknik teknik,, memisa memisahkan hkan unsur bisnis dengan unsur teknis dan pertemuan intensif antara klien dengan developer. Pada XP game” karena Beck menyarankan untuk menggunakan teknik proses ini menggunakan terminologi “ game” score card dalam card dalam menentukan requirements. requirements. Semakin sulit aspek teknis yang dibutuhkan semakin tinggi pula skor pada kartu rencana tersebut. 2. Small Releases Setiap release dilakukan dalam lingkup sekecil mungkin pada XP. Setiap developer menyelesaikan developer menyelesaikan sebuah unit atau bagian dari perangkat lunak maka hasil tersebut harus segera dipresentasikan dan didiskusikan dengan klien. Jika memungkinkan untuk menerapkan unit tersebut pada perusahaan, hal itu juga dapat dilakukan sekaligus sebagai tes awal dari penerapan keseluruhan sistem. Kendati demikian hal ini tidak selalu perlu dilakukan karena harus dihitung terlebih dahulu sumberdaya yang dibutu dibutuhkan hkan.. Apakah Apakah lebih lebih mengunt menguntungk ungkan an langsu langsung ng melakuk melakukan an tes terhada terhadap p unit unit terseb tersebut ut atau atau melakukan tes setelah unit tersebut terintegrasi secara sempurna pada sistem. 3. Metaphor Metaphor pada dasarnya sama dengan arsitektur perangkat lunak. Keduanya menggambarkan visi yang yang luas luas terh terhada adap p tuju tujuan an dari dari penge pengemb mban anga gan n pera perang ngkat kat luna lunak. k. Beck Beck send sendir irii sepe sepert rtii para para penand penandata atangan ngan Agile Agile Manife Manifesto sto lainny lainnyaa bercit bercita-ci a-cita ta menyede menyederha rhanaka nakan n proses proses pengem pengembang bangan an perangkat lunak yang saat ini sudah dianggap terlalu rumit. Arsitektur yang saat ini banyak berisi diagram dan kode semacam UML dianggap terlalu rumit untuk dimengerti, terutama oleh klien. Metaphor , walaupun mirip dengan arsitektur lebih bersifat naratif dan deskriptif. Dengan demikian diharapkan diharapkan komunikasi komunikasi antara klien dengan developer akan akan berlan berlangsu gsung ng lebih lebih baik baik dan lancar lancar dengan penggunaan metaphor . 4. Simple Design Sebagai salah seorang penandatangan Agile Manifesto, Beck adalah seorang yang tidak menyukai desain yang rumit dalam sebuah pengembangan perangkat lunak. Tidak heran jika dia memasukkan Simple Simple Design Design sebaga sebagaii salah salah satu satu unsur unsur XP. Pada XP desain desain dibuat dibuat dalam lingku lingkup p kecil kecil dan sederhana. Tidak perlu melakukan antisipasi terhadap berbagai perubahan di kemudian hari.
5. Refactoring Refactoring adalah salah satu aspek paling khas dari XP. Refactoring seperti didefinisikan oleh Martin Fowler adalah ”Melakukan perubahan pada kode program dari perangkat lunak dengan tujuan meningkatkan kualitas dari struktur program tersebut tanpa mengubah cara program tersebut bekerja”. Refactoring bekerja”. Refactoring sendiri sendiri sangat sesuai untuk menjadi bagian XP karena Refactoring karena Refactoring mengusung mengusung konsep penyederhanaan dari proses desain maupun struktur baris kode program. Dengan Refactoring Dengan Refactoring tim tim pengem pengembang bang dapat dapat melakuk melakukan an berbaga berbagaii usaha usaha untuk untuk mening meningkat katkan kan kualita kualitass progr program am tanpa tanpa kembali mengulang-ulang proses desain. Fowler adalah salah satu kolega dekat dari Kent Beck karena karena itu itu tidak tidak mengher mengheranka ankan n bahwa bahwa cara cara berpik berpikir ir mereka mereka terhada terhadap p proses proses pengem pengembang bangan an perangkat lunak sangat mirip satu dengan lainnya. 6. Testing XP menganu menganutt paradi paradigma gma berbeda berbeda dalam dalam hal tes dengan dengan model model pengem pengembang bangan an perangk perangkat at lunak lunak lainnya. Jika pada pengembangan perangkat lunak lainnya tes baru dikembangkan setelah perangkat lunak selesai menjalani menjalani proses proses coding maka pada XP tim pengembang harus membuat terlebih dahulu tes yang hendak dijalani oleh perangkat lunak. Berbagai model tes yang mengantisipasi penerapan perangkat lunak pada sistem dikembangkan terlebih dahulu. Saat proses coding selesai dilakukan maka perangkat lunak diuji dengan model tes yang telah dibuat tersebut. Pengetesan akan jauh lebih baik apabila dilakukan pada setiap unit perangkat lunak dalam lingkup sekecil mungkin daripada menunggu sampai seluruh perangkat lunak selesai dibuat. Dengan memahami tahap ini kita design. dapat melihat bahwa siklus pada XP adalah requirement analysis test code design. 7. Pair Programming Pair programming programming adalah adalah melakukan melakukan proses proses menulis menulis program program dengan berpasangan. berpasangan. Dua orang programer saling bekerjasama di komputer yang sama untuk menyelesaikan sebuah unit. Dengan melakukan ini maka keduanya selalu dapat berdiskusi dan saling melakukan koreksi apabila ada kesalahan dalam penulisan program. 8. Collective Ownership Tidak Tidak ada satupu satupun n baris baris kode program program yang hanya dipaha dipahami mi oleh oleh satu satu orang orang progra programer mer.. XP menuntut para programer untuk berbagi pengetahuan untuk tiap baris program bahkan beserta hak untuk mengubahnya. Dengan pemahaman yang sama terhadap keseluruhan program, ketergantungan pada programer programer tertentu tertentu ataupun berbagai berbagai hambatan hambatan akibat perbedaan perbedaan gaya menulis menulis program program dapat
diperkecil. Pada level yang lebih tinggi bahkan dimungkinkan para programer dapat bertukar unit yang dibangunnya. 9. Coding Standards Pair programming dan programming dan collective ownership hanya akan dapat berjalan dengan baik apabila para progr programe amerr memili memiliki ki pemaha pemahaman man yang yang sama sama terhad terhadap ap penuli penulisan san kode progra program. m. Dengan Dengan adanya adanya coding standards yang telah disepakati terlebih dahulu maka pemahaman terhadap program akan menjadi mudah untuk semua programer dalam tim. Hal ini dapat diterapkan sebagai contoh pada penamaan variabel dan penggunaan tipe data yang sama untuk tiap elemen semua record atau record atau array pada program. 10. Continous Integration Melakukan build seti setiap ap hari hari kerj kerjaa menj menjad adii sebua sebuah h mode modell yang yang disu disuka kaii oleh oleh berb berbag agai ai tim tim pengembang perangkat lunak. Hal ini terutama didorong oleh keberhasilan penerapan sistem ini oleh Microsoft Microsoft dan telah sering dipublikas dipublikasikan. ikan. Dengan melakukan build sesering mungkin berbagai kesala kesalahan han pada pada progr program am dapat dapat didete dideteksi ksi dan diperb diperbaik aikii secepa secepatt mungki mungkin. n. Apabi Apabila la banyak banyak tim pengembang pengembang perangkat lunak meyakini meyakini bahwa build sekali sehari adalah minimum maka pada XP hal tersebut adalah maksimum. Pada XP tim disarankan untuk melakukan build sesering mungkin misalnya setiap 4 jam atau bahkan lebih cepat lagi. 11. 40-hours Week Beck berpendapat bekerja 8 jam sehari dan 5 hari seminggu adalah maksimal untuk tiap programer. error pada baris-baris kode programnya Lebih dari itu programer akan cenderung membuat berbagai error pada karena kelelahan. 12. On-Site Customer Sebuah pendekatan klasik, di mana XP menganjurkan bahwa ada anggota dari klien yang terlibat pada pada prose prosess pengem pengembang bangan an perangk perangkat at lunak. lunak. Yang Yang lebih lebih penti penting ng lagi lagi ia harus harus ada di tempat tempat pemrogaman dan turut serta dalam proses build dan test yang dilakukan. Apabila ada kesalahan dalam pengembangan diharapkan klien dapat segera memberikan masukan untuk koreksinya.
3. AGILE MODELING
Salah satu ciri dari Agile Software Development adalah tim yang tanggap terhadap perubahan. Mengapa? Mengapa? Karena perubahan perubahan adalah hal yang utama dalam pembangunan pembangunan software: software: perubahan perubahan kebutuhan kebutuhan software, software, perubahan anggota anggota tim, perubahan teknologi teknologi dll. Selain itu Agile Software Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen businessmen,, antara developer developer dan managernya. managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun pembangun software. software. Ciri-ciri Ciri-ciri ini didukung oleh 12 prinsip prinsip yang ditetapkan ditetapkan oleh Agile Alliance. Alliance. Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development: 1. kepuasan klien adalah prioritas prioritas utama dengan menghasilkan produk produk lebih awal dan terus menerus 2. menerima perubahan kebutuhan, sekalipun sekalipun diakhir pengembangan. 3. Penyerahan hasil/software dalam hitungan hitungan waktu dua minggu sampai dua bulan. 4. Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung 5.
Membangun Membangun proyek dilingkungan dilingkungan orang-orang orang-orang yang bermotivasi bermotivasi tinggi tinggi yang bekerja dalam 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-prin prinsip-prinsip sip tersebur Agile Process Model berusaha 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 prioritas klien juga sering berubah seiring berjalannya proyek. 2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan 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 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 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 percaya dan saling saling menghargai satu sama lain. 7. Manajemen diri: tim tim mengatur diri diri untuk selesaikan proyek, mengatur proses untuk disesuaikan dengan lingkungannya, tim menjadwal dirinya untuk menyerahkan hasil. Agile Process Model
Berikut ini adalah model-model proses yang termasuk agile process model : 1. XP(Extreme Programming) 2. ADAPTIVE SOFTWARE DEVELOPMENT (ASD) 3. DYNAMIC SYSTEMS DEVELOPMENT METHOD 4. SCRUM 5. AGILE MODELING
4. SCRUM
Scrum adalah sebuah pendekatan tangkas untuk pengembangan perangkat lunak. Scrum merupakan suatu kerangka kerja. Jadi, bukannya menyediakan deskripsi rinci tentang bagaimana segala sesuatu yang harus dilakukan pada proyek seperti diserahkan kepada tim pengembangan perangkat lunak pada umumnya. Hal ini dilakukan supaya tim akan tahu bagaimana cara terbaik untuk memecahkan masalah yang mereka disajikan. Inilah sebabnya mengapa, misalnya, rapat perencanaan sprint digambarkan dalam bentuk hasil yang diinginkan (komitmen untuk mengatur fitur yang akan dikembangkan di sprint berikutnya), bukan definisi Tugas, kriteria Validasi, dll seperti yang akan disediakan dalam metodologi yang lain. Scrum bergantung pada pengorganis pengorganisasian asian-diri -diri,, tim lintas fungsional fungsional.. Tim scrum adalah mengorganisir diri dalam bentuk tidak ada pemimpin tim secara keseluruhan yang memutuskan mana orang yang akan melakukan tugas atau bagaimana suatu masalah akan dipecahkan. Mereka adalah isu-isu yang ditentukan oleh tim secara keseluruhan. Tim ini lintas fungsional sehingga setiap orang perlu untuk mengambil fitur dari ide untuk diimplementasi. Tim-tim Tim-tim pengembangan pengembangan scrum yang didukung didukung oleh dua orang tertentu: tertentu: Scrum Master dan Master dan pemilik produk ( product owner ). ). Scrum Master dapat dianggap sebagai pelatih bagi tim, membantu anggot anggotaa tim tim menggun menggunaka akan n kerang kerangka ka Scrum Scrum untuk untuk tampil tampil di tingka tingkatt tertin tertinggi ggi.. Pemili Pemilik k produk produk mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan produk yang tepat. proyek Scrum membuat kemajuan dalam serangkaian sprint, yang timeboxed iterasi tidak lebih lebih dari dari sebula sebulan n panjan panjang. g. Pada Pada awal awal sprin sprint, t, anggota anggota tim tim berkom berkomit itmen men untuk untuk member memberika ikan n beber beberapa apa nomor nomor fitur fitur yang terdaf terdaftar tar di produc productt backlog backlog proyek proyek.. Pada akhir akhir sprin sprint, t, fitur fitur ini dilakukan – mereka diimplementasikan, diuji, dan diintegrasikan ke dalam produk berkembang atau atau sistem sistem.. Pada akhir akhir sprin sprintt tinjau tinjauan an sprint sprint dilakuk dilakukan an selama selama tim menunj menunjukka ukkan n fungsi fungsi baru baru kepada pemilik produk dan pemangku kepentingan lain yang memberikan umpan balik yang dapat mempengaruhi sprint berikutnya. Penjelasan tambahan : a) Diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an b) Pengembangan berikutnya dilakukan oleh Schwaber dan Beedle c) Scrum memiliki memiliki prinsip: prinsip: •
Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya,
dan memberdayakan satu sama lain •
Proses dapat beradaptasi terhadap perubahan teknis dan
bisnis proses menghasilkan beberapa software increment •
Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
•
Dokumentasi dan pengujian terus menerus dilakukan setelah software
dibangun •
pro prose sess scru scrum m mampu mampu menya menyata takan kan bahwa bahwa produ produk k seles selesai ai kapan kapanpu pun n
diperlukan d) Aktifitas Scrum : Backlog, Sprints, Scrum Meetings, Demo
Gambar 4. Proses Scrum e) Aktifitas Backlog : Backlog adalah daftar kebutuhan yang jadi prioritas prioritas klien. Daftar dapat bertambah. f)
Aktifitas Aktifitas Sprints: Sprints: unit unit pekerjaan pekerjaan yang diperlukan diperlukan untuk untuk memenuhi memenuhi kebutuhan kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30hari). Selama proses ini berlangsung backlog tidak ada penambahan.
g) Aktifitas Aktifitas Scrum Meeting: pertemuan pertemuan 15 menit perhari untuk evaluasi evaluasi apa yang dikerj dikerjaka akan, n, hambata hambatan n yang ada, ada, dan target target penyeles penyelesaia aian n untuk untuk bahan bahan meeting meeting selanjutnya. h) Aktifitas Aktifitas Demo : penyerahan penyerahan software increment increment ke klien klien didemonstrasi didemonstrasikan kan dan dievaluasi.
16