Disusun oleh:
Nama : Reza Ardian Sitorus
Nim : 211011401391
Kelas : 05TPLE006
TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS PAMULANG
1
KATA PENGANTAR
Puji syukur kami ucapkan kehadirat Allah SWT atas segala rahmat-Nya
sehingga makalah ini dapat tersusun sampai dengan selesai. Tidak lupa kami
mengucapkan terima kasih terhadap bantuan dari pihak yang telah berkontribusi dengan
memberikan sumbangan baik pikiran maupun materinya.
Penulis sangat berharap semoga makalah ini dapat menambah pengetahuan dan
pengalaman bagi pembaca. Bahkan kami berharap lebih jauh lagi agar makalah ini bisa
pembaca praktekkan dalam kehidupan sehari-hari.
Bagi kami sebagai penyusun merasa bahwa masih banyak kekurangan dalam
penyusunan makalah ini karena keterbatasan pengetahuan dan pengalaman Kami. Untuk
itu kami sangat mengharapkan kritik dan saran yang membangun dari pembaca demi
kesempurnaan makalah ini.
Penulis
2
DAFTAR ISI
3
DAFTAR GAMBAR
4
BAB I
PENDAHULUAN
5
BAB II
PEMBAHASAN
6
bisa menekankan ego masing-masing dan bersosialisasi agar dapat
bekerja sama dengan programmer lain, karena ini merupakan tugas
utama tim developer .
2) Courage
Demi tercapainya proyek pengembangan yang sukses, setiap
masing-masing anggota tim harus selalu memiliki keberanian,
keyakinan serta integritas dalam melakukan tugasnya. Anggota tim
harus konsisten dalam menjaga segala jenis kondisi termasuk saat
adanya tekanan dari klien atau pemilik perusahaan. Anggota tim
juga dituntut untuk berani mengerjakan tugas dan setiap
menemukan kesalahan harus segera diperbaiki.
3) Simplicity
Dengan menggunakan Extreme Programming, artinya tim
developer harus tetap melakukan semuanya dengan sederhana,
karena salah satu nilai dasar dari Extreme Programming adalah
mencoba untuk selalu mencari solusi yang paling sederhana dan
paling praktis. Gunakanlah method yang mudah, pendek atau tidak
terlalu rumit dalam pembuatan desain serta hilangkanlah fitur-fitur
yang tidak berguna. Inilah yang membedakan Extreme
Programming dengan metodologi pengembangan sistem
konvensional lainnya. Extreme Programming berfokus pada
kebutuhan saat ini dibandingkan kebutuhan besok.
4) Feedback
Hal ini merupakan salah satu hal penting yang bertujuan untuk
mengetahui kemajuan dari proses maupun kualitas perangkat lunak
yang dibangun. Dan sudah menjadi kewajiban anggota tim maupun
pihak lainnya untuk terlibat dalam memberikan feedback yang
baik. Anggota tim harus selalu mendengarkan pendapat anggota
tim lainnya tanpa adanya cemohan terhadap pendapatnya tersebut.
Dengan hal tersebutlah terkadang akan menyadari kita di bagian
mana yang dapatditingkatkan lagi.
7
2.1.2 Aspek Dasar Extreme Programming
8
mengharuskan untuk membuat desain baru maka resiko kegagalan
pada desain dapat diperkecil.
5) Refactoring
Refactoring merupakan suatu aspek khusus pada Extreme
Programming. Refactoring adalah proses mengubah kode program
dari perangkat lunak yang bertujuan untuk meningkatkan kualitas
dari struktur program agar developer tidak harus mengulang proses
desain.
6) Testing
Pada proses ini, developer team harus membuat tes yang akan
dipakai untuk menjalankan software dan mengembangkannya. Pada
saat proses coding selesai maka software tersebut akan diuji
menggunakan model tes yang telah dibuat sebelumnya.
7) Pair Programming
Pair programming merupakan aspek di mana 2 orang
programmer bersama-sama dalam satu tempat atau komputer ,mereka
saling berinteraksi dan berdiskusi tentang suatu masalah dan
menyelesaikannya bersama.
8) Collective Ownership
Didalam aspek ini, para programmer dituntut untuk saling
berbagi informasi, sehingga ketergantungant erhadap seorang
programmer terhadap programmer lain dapat diminimalisir.
9) Coding Standart
Coding standart merupakan suatu kesepakatan antara
programmer dalam memahami script/program tersebut, sehingga para
programmer memiliki pemahaman yang sama.
10) Continous Integration
Di dalam aspek ini, para software developer diwajibkan untuk
melakukan build, build ditujukan agar kesalahanpada program dapat
dideteksi dan diperbaiki secepat mungkin. Maksimal waktu yang di
butuhkan untuk melakukan build di dalam Extreme Programming
adalah 1 hari.
11) 40-hours week
Kent Beck berpendapat bahwa, waktu ideal seorang
programmer bekerja adalah 8 jam/hari atau 5 kali dalam seminggu.
12) On-Side Customer
Dalam proses pengembangan software, Extreme
Programming menganjurkan untuk mengikut sertakan seorang
klien. Klien tersebut ikut berpartisipasi dalam proses build dan test
9
yang di lakukan. Klien tersebut di harapkan dapat memberikan
masukan dan koreksi atas pengembangan yang di lakukan.
10
Gambar 2. 3 Extreme Programming Life Cycle
11
1) Planning
Pada Planning berfokus untuk mendapatkan gambaran fitur dan
fungsi dari perangkat lunak yang akan dibangun. Aktivitas
planning dimulai dengan membuat kumpulan gambaran atau cerita
yang telah diberikan oleh klien yang akan menjadi gambaran dasar
dari perangkat lunak tersebut. Kumpulan gambaran atau cerita
tersebut akan dikumpulkan dalam sebuah indeks dimana setiap
poin memiliki prioritasnya masing-masing. Tim pengembang
aplikasi juga akan menentukan perkiraaan waktu serta biaya yang
dibutuhkan untuk masing-masing indeks. Setelah semua kebutuhan
terpenuhi, tim XP akan menentukan alur dari pengembangan
aplikasi sebelum memulai pengembangan tugas. Selama proses
pengembangan perangkat lunak, klien dapat mengubah setiap
rencana dari aplikasi yang dibuat. Tim XP akan
mempertimbangkan semua hal yang ingin diubah oleh klien
sebelum mengubah aplikasi tersebut.
2) Design
Aktivitas design dalam pengembangan aplikasi ini, bertujuan untuk
mengatur pola logika dalam sistem. Sebuah desain aplikasi yang
baik adalah desain yang dapat mengurangi ketergantungan antar
setiap proses pada sebuah sistem. Jika salah satu fitur pada sistem
mengalami kerusakan, maka hal tersebut tidak akan mempengaruhi
sistem secara keseluruhan. Tahap Design pada model proses
Extreme Programming merupakan panduan dalam membangun
perangkat lunak yang didasari dari cerita klien sebelumnya yang
telah dikumpulkan pada tahap planning. Dalam XP, proses design
terjadi sebelum dan sesudah aktivitas coding berlangsung. Artinya,
aktivitas design terjadi secara terus-menerus selama proses
pengembangan aplikasi berlangsung.
3) Coding
Setelah menyelesaikan gambaran dasar perangkat lunak dan
menyelesaikan design untuk aplikasi secara keseluruhan, XP lebih
merekomendasikan tim untuk membuat modul unit tes terlebih
dahulu yang bertujuan untuk melakukan uji coba setiap cerita dan
gambaran yang diberikan oleh klien. Setelah berbagai unit tes
selesai dibangun, tim barulah melanjutkan aktivitasnya ke
penulisan coding aplikasi. XP menerapkan konsep Pair
Programming dimana setiap tugas sebuah modul dikembangkan
oleh dua orang programmer. XP beranggapan, 2 orang akan lebih
cepat dan baik dalam menyelesaikan sebuah masalah. Selanjutnya,
modul aplikasi yang sudah selesai dibangun akan digabungkan
dengan aplikasi utama.
4) Testing
Walaupun tahapan uji coba sudah dilakukan pada tahapan coding,
XP juga akan melakukan pengujian sistem yang sudah sempurna.
12
Pada tahap coding, XP akan terus mengecek dan memperbaiki
semua masalah-masalah yang terjadi walaupun hanya masalah
kecil. Setiap modul yang sedang dikembangkan, akan diuji terlebih
dahulu dengan modul unit tes yang telah dibuat sebelumnya.
Setelah semua modul selesai dan dikumpulkan ke dalam sebuah
sistem yang sempurna, maka tim XP akan melakukan pengujian
penerimaan atau acceptance test. Pada tahap ini, aplikasi akan
langsung diuji coba oleh user dank lien agar mendapat tanggapan
langsung mengenai penerapan gambaran dan cerita yang telah
dilakukan sebelumnya.
Kelemahan:
Extreme Programing hanya menjalankan 1 proyek dan
dijalankan oleh 1 tim
Developer harus dan akan menghadapi perubahan yang harus
mereka jalankan.
Extreme Programming tidak dapat dikerjakan jika developer
saling terpisah
13
Extreme programming belum terbukti dapat bekerja di dalam
sistem yang mempunyai masalah skalabilitas.
2.2 Scrum
Metode Scrum merupakan metodologi yang termasuk dalam agile software
development. Scrum dinilai dapat menghasilkan kualitas perangkat lunak yang baik
sesuai dengan keinginan pengguna, dapat digunakan dalam proyek besar maupun kecil,
dan mudah untuk mengadopsi perubahan. Scrum didasari oleh teori kontrol proses
empiris atau disebut dengan empirisme. Empiris memenekankan bahwa pengetahuan
berasal dari pengalaman dan pembuatan keputusan didasari oleh pengetahuan yang telah
dimiliki hingga saat ini. Scrum menggunakan pendekatan berkala (iterative) dan
bertahap (incremental) untuk meningkatkan prediktabilitas dan mengendalikan resiko.
Tim Scrum terdiri dari Product Owner, Tim Pengembang, dan Scrum Master. Tim
Scrum mengatur diri mereka sendiri dan berfungsi antar-lintas. Tim yang mengatur
dirinya sendiri dengan menentukan cara terbaik untuk menyelesaikan pekerjaannya,
tanpa diatur oleh pihak lain yang berada di luar anggota tim. Tim yang befungsi antar-
lintas memiliki semua kompetensi yang dibutuhkan untuk menyelesaikan pekerjaan,
tanpa mengandalkan pihak lain yang berada di luar anggota tim. Model tim di dalam
Scrum dirancang sedemikian rupa untuk mengotomatisasi fleksibilitas, kreatifitas, dan
produktifitas. Metode Scrum membagi proses Development menjadi beberapa Sprint.
2.2.1 Tahapan atau Aktivitas Pengembangan Metode Scrum
Aktivitas wajib dalam Scrum dibuat untuk menciptakan sebuah
kesinambungan dan mengurangi adanya aktivitas lain yang tidak tercantum di
dalam Scrum. Setiap tahapan atau aktivitas di dalam Scrum memiliki batasan
waktu, yang artinya selalu memiliki durasi maksimum. Setiap aktivitas yang
terdapat dalam Scrum berkesempatan untuk meninjau dan merubah sesuatu.
Aktivitas dalam Scrum dirancang secara khusus untuk menciptakan transparansi
dan peninjauan sampai ke tingkatan kritis. Scrum memiliki tiga kelompok fase,
berikut merupakan kelompok dari fase Scrum :
1) Pregame
Terdapat 2 aktivitas pada fase ini, yaitu :
a) Perencanaan (Planning)
Perencanaan dibagi berdasarkan jenis pengembangan produk.
Apabila produk yang dikembangkan merupakan sebuah sistem
yang baru, maka pada fase ini dilakukan konseptualisasi dan
analisis. Sedangkan apabila produk yang dikembangkan
merupakan sistem yang telah ada, maka pada fase ini hanya
dilakukan analisis.
b) Arsitektur
Merancang daftar Backlog yang akan diimplementasikan. Pada
fase ini dilakukan modifikasi rancangan sistem dan rancangan
pada level yang lebih tinggi seperti tampilan.
14
2) Game
Pada fase ini terdapat Development Sprints, yaitu pengembangan
dari fungsionalitas yang baru, dengan memperhatikan variabel
waktu, permintaan, kualitas, harga, dan kompetisi. Interaksi dari
variabel tersebut akan mendefinisikan akhir dari fase ini. Terdapat
banyak Sprint yang dilakukan pada fase ini. Berikut aktivitas-
aktivitas yang dilakukan dalam metode Sprint :
a) Product Backlog
Proyek yang menggunakan metode Scrum didasari oleh sebuah
visi dari produk yang dibuat oleh Product Owner, dan
dituliskan ke dalam Product Backlog. Product Backlog
memuat daftar dari poin yang akan dibuat oleh tim yang
didasari oleh prioritas kebutuhan yang dinilai berdasarkan
kebutuhan customer. Product Backlog disusun disepanjang
waktu pengerjaan proyek, dengan penambahan, pengurangan,
dan perubahan prioritas yang berkesinambungan.
b) Sprint
Scrum menstrukturisasi pengembangan produk dengan
menggunakan satu runtunan pekerjaan yang disebut dengan
Sprint, iterasi dari pekerjaan yang biasanya berdurasi 1-4
minggu. Sprint memiliki durasi dan diakhiri pada waktu yang
spesifik tanpa memperhatikan status dari pekerjaan yang
dilakukan, baik selesai maupun tidak. Pada durasi yang
ditentukan tersebut, dilakukan pengembangan produk yang
terdapat dalam proyek. Durasi dari Sprint tidak dapat
diperpanjang.
c) Sprint Planning
Pada awal dari setiap Sprint, dilakukan pertemuan Sprint
Planning. Pada Sprint Planning, Product Owner dan tim Scrum
melakukan Review terhadap Product Backlog, mendiskusikan
hasil dan konteks dari poin yang akan dibuat, dan tim Scrum
memilih poin-poin yang terdapat pada Product Backlog untuk
dikerjakan dan dapat diselesaikan pada akhir dari Sprint,
dimulai dari daftar teratas pada Product Backlog. Setiap poin
yang dipilih dari Product Backlog kemudian didesain dan
didekomposisi dalam sebuah kumpulan pekerjaan individu.
Daftar dari pekerjaan dituliskan ke dalam sebuah dokumen
yang disebut dengan Sprint Backlog.
d) Daily Scrum Meeting
Daily Scrum adalah kegiatan dengan batasan waktu maksimum
selama 15 menit agar Tim Pengembang dapat
mensinkronisasikan pekerjaan mereka dan membuat
perencanaan untuk 24 jam ke depan. Hal ini dilakukan dengan
meninjau pekerjaan semenjak Daily Scrum terakhir dan
memperkirakan pekerjaan yang dapat dilakukan sebelum
15
melakukan Daily Scrum berikutnya. Tim Pengembang
menggunakan Daily Scrum untuk meninjau perkembangan
menuju Sprint Goal dan meninjau tren perkembangan menuju
selesainya pekerjaan yang ada di dalam Sprint Backlog. Daily
Scrum mengoptimalisasi kemungkinan Tim Pengembang akan
mencapai Sprint Goal. Daily Scrum meningkatkan komunikasi,
menghilangkan pertemuan-pertemuan lain, mengidentifikasi
hambatan untuk dihilangkan, mendukung pembuatan
keputusan secara cepat dan meningkatkan tingkat pengetahuan
tim. Pertemuan ini adalah kunci dari proses peninjauan dan
pengadaptasian.
e) Sprint Review and Retrospective
Setelah Sprint berakhir, terdapat satu aktivitas yang disebut
dengan Sprint Review. Sprint Review melibatkan tim Scrum
dan stakeholder untuk melakukan inspeksi pada pekerjaan
yang telah selesai dilakukan selama Sprint. Inspeksi ini
memuat diskusi mengenai perkerjaan yang sebelumnya dan
rencana selanjutnya untuk pekerjaan tersebut. Pertemuan
Sprint Review ini dihadiri oleh Product Owner, Tim
Pengembang, Scrum Master, beserta customer, stakeholders,
ahli, dan beberapa orang yang tertarik untuk
bergabung.Melalui Sprint Review, tim Scrum selanjutnya
mengadakan Sprint Retrospective. Pada Sprint Retrospective,
tim Scrum berkesempatan untuk meninjau dirinya sendiri dan
membuat perencanaan mengenai peningkatan yang akan
dilakukan pada Sprint berikutnya.
3) Postgame
Pada fase ini terdapat Closure. Closure merupakan satu fase yang
menyatakan bahwa manajemen dari tim merasa bahwa variabel dari
waktu, kompetisi, permintaan, harga, dan kualitas telah sesuai
untuk versi terbaru yang akan dirilis, dengan demikian proyek
dinyatakan "closed" dan memasuki fase ini. Fase ini
mempersiapkan produk yang telah dikembangkan untuk beberapa
kelengkapan umum lainnya seperti integrasi, pengujian sistem,
dokumentasi, persiapan materi pelatihan penggunaan sistem, dan
persiapan materi pemasaran.
16
Gambar 2. 5 Tahapan/Aktivitas Sprint dalam model Scrum.
17
2.2.3 Jenis Role dalam Metode Pengembangan Scrum
Terdapat 3 jenis role dalam metode pengembangan Scrum, yaitu :
1) Product Owner
Pengertian produk adalah tujuan dari proyek. Product Owner
memastikan bahwa proyek berjalan sesuai yang diharapkan.
Product Owner merupakan penjembatan antara client dengan team
Development. Product Owner akan menuliskan spesifikasi-
spesifikasi sesuai cara pandang client, di lain pihak harus punya
empati terhadap anggota team. Product Owner bertanggung jawab
untuk memaksimalkan nilai produk dan hasil kerja Tim
Pengembang.
2) Team Member
Scrum Team Member merupakan sekelompok individu yang
bekerja sama untuk menghantarkan ataupun menaikkan nilai dari
produk yang diminta oleh pelanggan. Prasyarat dari tim Scrum
adalah Semua anggota berpartisipasi, Mampu berkomunikasi
dengan baik dan Meaningful Conversation.
3) Scrum Master
Scrum Master akan mencegah hal-hal yang mengalihkan focus
team. Scrum Master akan membuat suasana kondusif supaya team
dapat bekerja sama dalam mencapai goal. Selain itu, Scrum Master
membantu memfasilitasi keputusan tim Development yang self
organizing dan menghapus hambatan-hambatan yang dihadapi. Di
dalam organisasi, Scrum Master membantu organisasi untuk
memahami Scrum dan membuat perubahan yang dapat mendukung
proses Scrum.
18
Dengan menggunakan Scrum, Anda dapat mengontrol dan
memonitoring aktivitas peningkatan dan penurunan beban
pekerjaan yang bisa terjadi kapan saja.
Seperti metodologi Agile pada umumnya, Scrum merupakan
metode iterative yang membutuhkan feedback secara
berkelanjutan dari user atau pengguna.
Kekurangan Scrum :
Scrum bisa menjadi salah satu penyebab utama terjadinya
scope creep, kecuali ada tanggal akhir tertentu. Stakeholder
proyek atau manajemen akan terus menuntut fungsi dan fitur
baru untuk disampaikan.
Setiap tugas harus didefinisikan dengan baik, karena hal ini
dapat mempengaruhi perkiraan biaya dan waktu pengerjaan
proyek. Jika tidak didefinisikan dengan baik maka semua hal
tersebut tidak akan akurat. Dalam kasus seperti ini, biasanya
tugas dapat tersebar di beberapa Sprint.
Jika anggota tim Anda tidak berkomitmen dengan baik, maka
proyek Anda tidak akan selesai atau bahkan bisa gagal.
Scrum dapat bekerja dengan baik jika seorang Scrum Master
dapat mempercayai tim yang mereka kelola. Jika Scrum
Master terlalu mengontrol secara ketat, hal ini dapat
menyebabkan tim menjadi tertekan dan stress, sehingga
mengakibatkan demoralisasi dan kegagalan dari proyek
tersebut.
Jika sering terjadi pergantian anggota tim saat pengembangan
proyek berlangsung, hal ini dapat menyebabkan efek yang
kurang baik bagi perkembangan proyek tersebut, proyek akan
semakin lama selesai dari waktunya.
19
BAB III
PENUTUP
3.1 Kesimpulan
Extreme Programming berguna untuk mempercepat pekerjaan suatu tim dalam
organisasi atau perusahaan. Karena dalam Extreme Programming life cycle menuntut ke
suatu tim untuk menyelesaikan rangkaian aktivitas Planning, Analys, Design & Code,
Test, Deploy dalam tempo waktu yang telahditentukan. Extreme Programming
merupakan salah satu metodologi yang mendukung percepatan pembangunan suatu
sistem. Dalam penerapan Extreme Programming tanggung jawab per individu menjadi
berkurang. Karena dalam mengembangkan suatu sistem, anggota tim selalu bekerja
bersama-sama sehingga tanggung jawab per individu pun berkurang.
Tujuan utama Scrum adalah untuk inspect & adapt yang berarti bahwa melihat
permasalahan yang ada, dan melakukan adaptasi terhadap masalah tersebut.
Pengambangan perangkat lunak menggunakan Scrum menekankan untuk mengambil
setiap langkah pada pengembangan perangkat lunak secara singkat. Metode Scrum
dapat digunakan sebagai kerangka kerja untuk mengembangkan interoperabilitas sistem
dengan waktu yang efisien.
3.2 Saran
Extreme Programming bisa di terapkan pada perusahaan atau organisasi yang
mempunyai tim khusus untuk pengembangan suatu sistem. Perusahaan atau organisasi
yang ingin menerapkan Extreme Programming diharapkan untuk bisa memahami dan
mengerti Extreme Programming practice, dan scrum. Jika perusahaan atau organisasi
sudah mengerti Extreme Programming dan scrum, maka bisa mempelajari scrum
terlebih dahulu lalu full Extreme Programming.
20
DAFTAR PUSTAKA
21