SCRUM DAN AGILE
AGILE
Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang.
Terdapat enam langkah yang digunakan dalam Metodologi pengembangan perangkat lunak, yaitu :
· Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari perangkat lunak yang akan dibuat.
· Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.
· Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.
· Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.
· Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem. Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.
· Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala.
Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s Manifesto, diantaranya :
1. Interaksi dan personel lebih penting daripada proses dan alat.
2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
3. Kolaborasi dengan klien lebih penting daripada negosiasi kontrak.
4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.
Pengertian dari Agile Alliance's Manifesto dijelaskan di bawah ini:
· Interaksi dan personel lebih penting daripada proses dan alat, di dalam agile interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
· Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
· Kolaborasi dengan klien lebih penting daripada negosiasi kontrak, salah satu ciri dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.
· Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile development methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat proses pembuatan perangkat lunak.
Agar suatu tim berhasil dalam menerapkan agile development methods, maka tim tersebut harus mengikuti dua belas prinsip yang ditetapkan oleh Agile Alliance, yaitu :
1. Prioritas utama proses agile adalah memuaskan klien dengan menghasilkan perangkat lunak yang bernilai dengan cepat dan rutin.
2. Menyambut perubahan kebutuhan, walaupun terlambat dalam pengembangan perangkat lunak. Proses Agile memanfaatkan perubahan untuk keuntungan kompetitif klien.
3. Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka waktu beberapa minggu sampai beberapa bulan, dengan preferensi kepada jangka waktu yang lebih pendek.
4. Rekan bisnis dan pengembang perangkat lunak harus bekerja sama tiap hari sepanjang proyek.
5. Kembangkan proyek di sekitar individual yang termotivasi. Berikan mereka lingkungan dan dukungan yang mereka butuhkan, dan percayai mereka untuk menyelesaikan pekerjaan dengan baik.
6. Metode yang paling efisien dan efektif untuk menyampaikan informasi dari dan dalam tim pengembang perangkat lunak adalah dengan komunikasi secara langsung.
7. Perangkat lunak yang bekerja adalah ukuran utama kemajuan.
8. Proses agile menggalakkan pengembangan berkelanjutan. Sponsor-sponsor, pengembang-pengembang, dan pengguna-pengguna dapat mempertahankan kecepatan tetap secara berkelanjutan.
9. Perhatian yang berkesinambungan terhadap keunggulan teknis dan rancangan yang baik meningkatkan Agility.
10. Kesederhanaan (memaksimalkan sumber daya yang tersedia) adalah hal yang amat penting.
11. Arsitektur, kebutuhan, dan rancangan perangkat lunak terbaik muncul dari tim yang yang dapat mengorganisir diri sendiri.
12. Secara berkala, tim pengembang berefleksi tentang bagaimana untuk menjadi lebih efektif, kemudian menyesuaikan dan menyelaraskan kebiasaan bekerja mereka.
Dua belas prinsip tersebut menjadi suatu dasar bagi tim agar sukses menerapkan agile development methods. Dengan prinsip-prinsip tersebut agile berusaha untuk menyiasati tiga masalah yang biasanya dihadapi saat proses pembuatan perangkat lunak, yaitu:
· Kebutuhan perangkat lunak sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.
· Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
· Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.
Beberapa model dari agile development methods, yaitu :
· Acceptance Test Driven Development (ATDD)
· Agile Modeling
· Adaptive Software Development (ASD)
Adaptive software development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari adaptive software development adalah kolaborasi manusia dan tim yang mengatur diri sendiri. Sistem kerja adaptive software development : collaboration dan learning. '
1. Collaboration : orang-orang yang bermotivasi tinggi bekerja sama, saling melengkapi, rela membantu, kerja keras, terampil di bidangnya, dan komunikasikan masalah untuk menyelesikan masalah secara efektif.
2. Learning: tim developer sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui tiga cara:
1. Fokus grup, klien dan pengguna memberi masukan terhadap perangkat lunak.
2. Formal Technique Reviews, tim ASD lengkap melakukan review.
3. Postmortems, tim ASD melakukan instrospeksi pada kinerja dan proses.
Secara garis besar tujuan dirumuskannya agile development methods, yaitu :
1. High-value & working App system, diharapkan dengan memakai agile development methods dapat dihasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa berjalan dengan baik.
2. Iterative, incremental, evolutionary, agile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner. Tim harus bekerja dalam waktu yang singkat(biasanya 1-3 minggu) dan juga selalu menambah fungsionalitas dari perangkat lunak sesuai dengan kebutuhan klien. Agile dapat dianalogikan ketika seseorang ingin pergi ke suatu kota dan dia tidak tahu jalannya. Lalu bagaimana dia bisa sampai tujuan? Dengan sering bertanya kepada orang yang dia temui dijalan hingga dia sampai di tempat tujuan.
3. Cost control & value-driven development, salah satu tujuan dari agile yaitu pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna, tim bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol.
4. High-quality production, walaupun biaya pembuatan perangkat lunak bisa ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari perangkat lunak yang dibuat harus tetap dijaga. Dengan melakukan tes setiap fungsionalitas perangkat lunak setelah selesei dibuat berarti agile juga mengakomodir kebutuhan ini.
5. Flexible & risk management, jika kita menggunakan metode pembuatan yang biasanya dipakai, jika ingin mengubah fungsionalitas dari wireframe yang telah dibuat di butuhkan proses yang rumit. Mulai dari pertemuan dengan sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis produk hingga perubahan biaya produksi. Pertemuan dengan klien untuk melakukan tes perangkat lunak juga sering dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun bisa diminimalisir.
6. Collaboration, dengan menggunakan agile, tim pengembang diharuskan sering bertemu untuk membahas perkembangan proyek dan feedback dari klien yang nantinya akan ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi dengan maksimal.
7. Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan SDM lainnya. Dengan agile, developer dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.
Kelebihan
Beberapa kelebihan dari agile diantaranya :
· 82% Menambah produktivitas tim.
· 77% Menambah kualitas perangkat lunak.
· 78% Menambah kepuasan klien.
· 37% Menghemat biaya.
Kekurangan
Sedangkan kekurangan dari agile antara lain :
· Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
· Tidak cocok dalam skala tim yang besar (>20 orang).
· Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.
opik selanjutnya yaitu tentang cara kerja agile development methods. Disini akan dijelaskan bagaimana agile development methods (model scrum) digunakan dalam manajemen proyek.
Komposisi tim
Secara umum komposisi dari sebuah tim pengembang perangkat lunak yaitu :
· Owner / Klien, bersama dengan developer sebagai bagian terpenting dalam proyek, tugas dari klien menentukan fungsi dari perangkat lunak yang akan di buat, melakukan testing dan memberikan feedback.
· Manajer / Scrum Master, bertugas mengkolaborasikan developer dengan klien, membuat dan mengevaluasi target pengerjaan perangkat lunak.
· Sistem Analis, membuat arsitektur sistem dari perangkat lunak yang akan dibuat.
· Developer, merupakan titik vital dalam tim, tanpa developer perangkat lunak tidak akan bisa dibuat.
Story
Story adalah daftar kebutuhan atau fitur yang nanti akan dibuat. Story berisi apa yang klien kehendaki, dan ditulis dalam bahasa yang dimengerti klien. Dengan kata lain dapat disimpulan Story adalah bagian terpenting dari Scrum.
Story terdiri dari kolom-kolom berikut ini:
· ID – Identifikasi unik, biasanya berupa nomor urut. Hal ini untuk menghindari kehilangan jejak story kalau kita mengganti namanya.
· Nama – Nama story bersifat deskriptif, padat, singkat, dan jelas (2-10 kata), sehingga tim dan klien memahami kira-kira story yang dibicarakan.
· Kepentingan – Derajat kepentingan yang diberikan oleh klien terhadap story. Pemberian derajat kepentingan biasanya menggunakan deret fibonacci (1,1,2,3,5,dst). Semakin tinggi nilainya maka semakin tinggi pula prioritas pengerjaannya.
· Perkiraan awal – Perkiraan awal tim tentang berapa banyak kerja yang diperlukan untuk mengimplementasikan sebuah story.
· Demo – deskripsi umum bagaimana cara story ini didemokan pada waktu sprint demo (lakukan ini, klik itu, lalu ini akan muncul,dll).
Sprint
Sprint (Rapat perencanaan pembuatan perangkat lunak dilakukan 2-8 minggu sekali), yang perlu diperhatikan saat melaksanakan sprint antara lain[9] :
· Tujuan sprint.
· Daftar anggota tim harus lengkap.
· Sprint backlog (daftar story yang akan diikutkan dalam sprint).
· Tanggal demo yang pasti.
· Tempat dan waktu yang jelas untuk pelaksanaan sprint berikutnya.
Tim akan melakukan sprint secara simultan sampai perangkat lunak selesei dikerjakan, sebagai contoh:
Sprint 1, tim membuat fungsi login,logout dan demo perangkat lunak akan dilakukan 3 minggu kemudian. Setelah dilakukan demo untuk mengevaluasi kerja yang dilakukan tim pada Sprint 1, maka Sprint 1 dianggap selesei. Bahan evaluasi dari Sprint 1 akan dibawa ke Sprint 2 begitu seterusnya sampai aplikasi selesei dikerjakan.
SCRUM
Sejarah dan Penjelasan Umum
Scrum adalah sebuah kerangka kerja untuk mengembangkan dan mengelola produk kompleks. Scrumdapat digunakan untuk menyelesaikan permasalahan kompleks yang senantiasa berubah, dimana padasaat bersamaan menghasilkan produk dengan nilai setinggi mungkin secara kreatif dan produktif. Scrumtelah digunakan untuk mengelola pengembangan produk kompleks semenjak awal tahun 1990-an.Scrum bukan menrupakan sebuah proses ataupun teknik untuk mengembangkan produk; daripada itu,ini adalah sebuah kerangka kerja dimana di dalamnya dapat dimasukkan beragam proses dan teknik.Scrum akan mengekspos pergerakan efektifitas manajemen produk dan praktik pengembangan yangsedang dijalani, dan hal ini akan membantu dalam melakukan peningkatan.Scrum didasari oleh teori kontrol proses empiris atau disebut dengan empirisme. Empirismemenekankan bahwa pengetahuan berasal dari pengalaman dan pembuatan keputusan didasari olehpengetahuan yang telah dimiliki hingga saat ini. Scrum menggunakan pendekatan berkala (iterative) danbertahap (incremental ) untuk meningkatkan prediktabilitas dan mengendalikan resiko.Tim Scrum terdiri dari Product Owner, Tim Pengembang, dan Scrum Master. Tim Scrum mengatur dirimereka sendiri dan berfungsi antar-lintas. Tim yang mengatur dirinya sendiri dengan menentukan caraterbaik 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 menyelesaikanpekerjaan, tanpa mengandalkan pihak lain yang berada di luar anggota tim. Model tim di dalam Scrumdirancang sedemikian rupa untuk mengotomatisasi fleksibilitas, kreatifitas, dan produktifitas.Tim Scrum menghantarkan produk secara berkala dan bertahap untuk memperbesar kesempatanmendapatkan masukan. Penghantaran secara bertahap dari sebuah produk yang "Selesai", memastikanproduk yang berpotensi dapat digunakan, selalu siap
Scrum adalah salah satu metode rekayasa perangkat lunak dengan menggunakan prinsip-prinsip pendekatan AGILE, yang bertumpu pada kekuatan kolaborasi tim, incremental product dan proses iterasi untuk mewujudkan hasil akhir. Scrum sendiri bukan satu-satunya metode yang menggunakan pendekatan AGILE. Mungkin kita juga pernah mendengar metode Extreme Programming (XP) yang juga menggunakan pendekatan AGILE dalam rekayasa perangkat lunak. Masing-masing metode memiliki fokus atau penekanan yang berbeda yang tentu saja dapat dikombinasika untuk menghasilkan proses yang optimal.
Teknik SCRUM dapat dilakukan di sebuah kepanitiaan ataupun project lain diluar bisnis teknologi informasi. Dalam teknik SCRUM terbagi dalam tiga roles, yang pertama adalah Product Owner, Scrum Master dan Develophment/Scurm Team. Product owner bertugas mengatur urusan dengan Stakeholder sedangkan Scrum Master mengurusi bagian internal, di bagian Development Team mengatur urusan teknik pengerjaan project dan pembahasan yag lebih rinci.
Banyak perusahaan multinasional menginternalisasi atau mengadopsi teknik ini sebagai standar bekerja mereka, karena secara umum teknik crum berhasil membuat beberapa perusahaan menaikan omset karena system yang telah teruji ini. Teknik scrum membuat pekerjaan anda menjadi lebih tertata dan lebih detail.
Namun segala sesuatu memiliki nilai plun dan minus, begitu juga dengan teknik scrum ini, scrum menjadikan pekerjaan lebih rapi namun teknik ini tidak cocok diterapkan pada perusahaan jasa yang butuh deadline cepat. Scrum membuat pekerjaan menjadi lebih lama dalam estimasi waktu. Namun segala sesuatunya pasti dapat di selesaikan apabila sudah memiliki persiapan yang matang dari awalnya.
Peran di Scrum
Ada tiga peran berbeda yang diperlukan dalam melakukan metode Scrum, yaitu:
Master Scrum memastikan prosedur diikuti, memastikan semua berjalan lancar, dan melindungi tim dari gangguan. Master Scrum berbeda dari manajer proyek tradisional dalam banyak hal, termasuk peran ini tidak memberikan arahan sehari-hari kepada tim dan tidak memberikan tugas kepada individu.
Product Owner (Pemilik Produk), biasanya merupakan orang yang dianggap paling penting dari sebuah proyek. Bagian dari tanggung jawab pemilik produk adalah memiliki visi tentang apa yang ingin dia buat dan menyampaikan visi tersebut kepada tim Scrum. Tugas utama Pemilik Produk adalah untuk menjadi nilai bagi stakeholder atau pemegang saham.
Tim Scrum . Sebuah tim Scrum adalah tim yang bisa mengatur pekerjaan mereka sendiri dan merupakan sebuah tim yang lintas fungsional. Member tim akan melakukan analisis, implementasi, perancangan, pengujian, dan lain-lain. Meskipun individu dapat bergabung dengan tim dengan berbagai jabatan, di Scrum, judul tersebut tidak signifikan. Metodologi scrum menyatakan bahwa setiap orang berkontribusi dengan cara apa pun yang mereka bisa untuk menyelesaikan pekerjaan pada setiap sprint. Individu dengan demikian akan menghabiskan sebagian besar (dan terkadang semua) waktu mereka bekerja dalam disiplin apa pun yang mereka ketahui, baik itu analisis, desain, pengembangan, tes dan lain lain.
Ada beberapa poin penting untuk Scrum yang membuat banyak orang tertarik untuk menggunakannya, misalnya:
1. Berorganisasi sendiri dengan fokus pada tim.
2. Tidak perlu dokumentasi dalam jumlah besar. Scrum menggunakan pendekatan yang to the point dalam membagikan tugas atau menanyakan progress.
3. Tim Scrum adalah sebuah tim yang memiliki lintas fungsional sehingga bisa bekerja sama sebagai satu kesatuan.
4. Komunikasi yang kuat dan banyak interaksi.
5. Memiliki ritme yang pasti dan berulang untuk menyelesaikan pekerjaan dalam waktu maksimal 30 hari.
6. Alih-alih mencoba melakukan keseluruhan pekerjaan pada saat bersamaan, Scrum membantu menyelesaikannya satu persatu dengan interval waktu yang ditentukan.
7. Mengaplikasikan Scrum dapat membuat anggota tim member Anda merasa dipercaya dan Anda juga tahu member mana yang ahli di bidangnya dan bisa mengerjakan tugasnya sehingga tidak ada tunggu-menunggu.
Cara Implementasi Scrum
Untuk mencoba metode Scrum, Anda bisa memulai dengan mengerjakan satu proyek yang sederhana dan singkat. Dengan begitu, Anda bisa membantu tim Anda untuk memiliki pola pikir yang benar mengenai metode Scrum.
Perlu diingat bahwa sama dengan kerja tim pada umumnya, beberapa orang dalam tim akan menyukainya dan beberapa orang akan membencinya. Ini sangat normal dan Anda harus mendorong orang-orang di tim untuk mencobanya dengan benar sebelum mereka menyerah. Jika seseorang akhirnya menyerah, lepaskan mereka dari tim dan biarkan orang lain masuk.
Untuk memulainya, Anda bisa mengikuti langkah-langkah berikut:
1. Tentukan Tim Scrum pertama Anda
Tim terdiri dari 5-9 anggota. Semua anggota ini memiliki kombinasi kompetensi dan dapat mencakup untuk menjadi developer, penguji, pendukung, perancang, analisis bisnis, dan lain-lain. Semua anggota terus bekerja sama. Tim itu sendiri bertanggung jawab untuk memastikan bahwa mereka akan memproduksi produk yang bisa dipresentasikan di akhir setiap sprint.
2. Tentukan panjang atau lamanya Sprint Anda
Sprint adalah tenggang waktu yang berlangsung antara 7 dan 30 hari, dan biasanya tetap sama panjang selama proyek berlangsung. Tentukan tenggang waktunya dalam sebuah meeting perencanaan dan tim tersebut harus berkomitmen untuk menyelesaikan pekerjaan ini. Pada akhir sprint, Anda sebaiknya mengadakan sebuah review atau ulasan (bisa berupa meeting) dengan demonstrasi hasil kerja. Disini perbaikannya ditinjau dan dikerjakan agar sprint berikutnya bisa direncanakan. Jika Anda masih tidak yakin dengan tenggang waktu, Anda bisa mulai dengan 2 minggu terlebih dahulu.
3. Tunjuk Seorang Master Scrum
Scrum Master adalah seorang katalisator untuk sebuah kelompok scrum. Mereka memastikan bahwa kelompok scrum bekerja secara efektif dan progresif. Jika terjadi hambatan, master Scrum akan menindaklanjuti dan menyelesaikan masalah untuk tim tersebut.
Master Scrum memang bisa dianggap sebagai manajer proyek untuk tim tersebut, kecuali orang tersebut tidak boleh mendikte apa yang tim kerjakan dan seharusnya tidak terlibat dalam pengelolaan mikro sekalipun. Master Scrum akan membantu tim dalam merencanakan pekerjaan sprint yang akan datang.
4. Tunjuk Pemilik Produk (Product Owner)
Pemilik Produk harus merupakan seseorang yang dapat bertanggung jawab memastikan tim menghasilkan sebuah produk yang bisa dipresentasikan dan pasarkan ke bisnis, klien atau siapapun yang menginginkan hasil proyek tersebut (pembeli akhir). Pemilik Produk biasanya menuliskan persyaratan sehubungan dengan apa yang diinginkan dari produk tersebut dalam bentuk sebuah cerita, kemudian memprioritaskan item-item dalam proses pembuatan, dan memasukkannya ke backlog.
5. Buat Backlog Produk Awal
Produk backlog adalah daftar keinginan yang berupa semua cerita pengguna yang diharapkan akan dibuat dan diselesaikan dalam proyek tersebut. Cerita yang paling penting harus berada di urutan teratas daftar, jadi keseluruhan simpanan tersusun secara teratur berdasarkan urutan kepentingan cerita.
Sebuah simpanan biasanya berisi 2 jenis item pekerjaan:
Epics – Cerita tingkat tinggi yang sketsanya sangat kasar tanpa banyak detail.
Stories – Persyaratan lebih rinci untuk apa yang harus dilakukan (mungkin dilakukan).
Sebuah epics biasanya dapat dibagi menjadi beberapa cerita.
Sebuah cerita biasanya akan dipecah menjadi beberapa tugas terpisah sehingga tim dapat bekerja dan melaporkan progressnya nanti. Stories juga bisa memiliki beberapa tipe seperti development, bug, tugas, dan lain lain. Stories baru dapat ditulis dan ditambahkan ke backlog produk kapan saja dan oleh siapa saja.
Jika sebuah epic meningkat dalam prioritas, sebaiknya masukkan detail yang lebih rinci agar tim dapat mulai mengerjakannya. Pemilik Produk bebas untuk memprioritaskan kembali backlog sesuai dengan keinginan dia.
Contoh stories yang bisa dikembangkan menjadi produk:
· Sebagai power user, saya bisa menentukan file atau folder yang akan di backup berdasarkan ukuran file, tanggal yang dibuat dan tanggal dimodifikasi.
· Sebagai pembelanja buku, saya bisa membaca ulasan sebuah buku pilihan untuk membantu saya memutuskan apakah akan membelinya.
· Seorang nasabah bank bisa mengganti PIN-nya
6. Rencanakan dan Mulailah Sprint Pertama Anda
Berdasarkan prioritas backlog, tim sekarang mengambil item dari daftar (biasanya dari paling atas). Tim lalu melakukan brainstorming dan memutuskan apa dan berapa banyak yang bisa mereka selesaikan dalam sprint mendatang. Ini disebut rapat perencanaan sprint.
Begitu tim setuju, sprint dimulai dan tim dapat mulai mengerjakan proyeknya.
7. Tutup Arus dan Mulai Sprint Berikutnya
Bila akhir tenggat waktu sudah tercapai dan semua pekerjaan yang direncanakan sudah lengkap dilakukan, tergantung pada tim untuk memutuskan apakah pekerjaan yang tersisa harus ditransfer ke sprint berikutnya atau dimasukkan kembali ke dalam backlog.
Setiap sebuah tim menyelesaikan tugasnya, tim disarankan untuk melakukan retrospektif di mana mereka mendiskusikan apa yang berjalan dengan baik dan apa yang bisa diperbaiki untuk sprint berikutnya. Setelah itu, pertemuan perencanaan sprint untuk sprint berikutnya dimulai dan prosesnya diulang.
Tidak ada batasan untuk jumlah sprint kecuali jika ditetapkan oleh deadline (berdasarkan budget atau waktu) atau seluruh backlog selesai. Jika tidak satu pun kriteria ini terpenuhi, sprint terus berlanjut tanpa batas waktu.
Kegiatan yang harus dilakukan sebagai bagian dari Scrum
1. Rapat Perencanaan
Pertemuan Perencanaan Sprint adalah titik awal Scrum. Ini adalah pertemuan dimana seluruh tim Scrum berkumpul; Bekerja sama dengan Product Owner dan Master Scrum, tim memilih story dari backlog dan brainstorm secara bersama-sama. Berdasarkan percakapan, kelompok Scrum memutuskan kompleksitas story dan memutuskan mana yang harus masuk ke sprint.
2. Melengkapi Pekerjaan
Seperti judulnya, perlu bagi tim untuk menyelesaikan pekerjaan untuk kemajuan proyek. Orang-orang di tim bekerja pada epics atau story sampai mereka selesai dan kemudian mereka beralih ke yang berikutnya. Biasanya story disusun di papan dengan langkah-langkah terpisah, jadi mudah untuk merasakan bagaimana sprint tersebut berkembang.
3. Pertemuan Scrum Harian
Melalui siklus sprint, setiap hari tim scrum bertemu maksimal lima belas menit (biasanya di pagi hari). Ada 3 hal yang akan dibahas oleh setiap member tim, yaitu:
· Apa yang saya lakukan kemarin?
· Apa yang ingin saya lakukan hari ini?
· Jelaskan jika orang tersebut memiliki sesuatu yang menghalangi mereka menyelesaikan pekerjaan mereka pada hari itu.
4. Pertemuan Review Sprint
Setelah setiap sprint, tim mengadakan Sprint Review Meeting untuk menunjukkan progress kerja kepada Product Owner dan orang lain yang tertarik. Pertemuan tersebut harus menampilkan demonstrasi langsung, bukan sebuah laporan. Pemilik Produk dapat memverifikasi story sesuai dengan kriteria penerimaan mereka.
5. Rapat Retrospektif
Pertemuan retrospektif terjadi setelah pertemuan review. Kelompok Scrum bertemu dan berbicara mengenai hal-hal berikut:
· Apa saja yang terjadi dengan baik selama sprint
· Apa saja yang tidak berjalan seperti yang direncanakan dalam sprint.
· Pelajaran yang dipelajari
· Item tindakan yang harus ditindaklanjuti.
Dari pembahasan di atas dapat dilihat bahwa Scrum adalah solusi bagus untuk mendukung perkembangan proyek yang cepat dari hampir semua jenis proyek. Ini sangat efektif dalam menjamin efektifitas bagi organisasi manapun.
Jika Anda lebih tertarik untuk melakukan project management dengan cara yang lebih tradisional, Anda juga bisa membaca artikel kami tentang berbagai tools project management yang dapat membantu Anda, terutama secara digital.
Contoh Kasus atau Karakteristik Proyek
Dalam sejarah Scrum, sudah banyak proyek yang telah memakai metode Scrum dalam pengembanganproduknya. Berikut beberapa contoh kasus pengunaan Scrum dalam pengembangan produknya, antaralain :
1. Google AdWordsMerupakan proyek pengembangan perangkat lunak yang paling menguntungkan dalam sejarah.Proyek ini merupakan salah satu implementasi proyek yang paling menarik dalam Scrum. Aplikasiyang dibangun menjadi penyumbang terbesar pertumbuhan pendapatan Google bahkan menjadipemegang pasar yang jauh diatas Intel dan tepat diatas Chevron, salah satu perusahaan minyak yangpaling menguntungkan di dunia. Proyek AdWords menggunakan Scrum dalam pengembangannya,dengan memiliki tim yang disebar secara terdistribusi di lima lokasi dan menyatukan secara virtualsemua produk Google disetiap dilakukan perilisan. Dalam perkembangannya, manajer dari proyekGoogle dibutuhkan untuk mengisi beberapa struktur tim. Hadirnya manajer ini pada tim Scrumbertujuan untuk membantu memberikan arahan untuk menyelesaikan prioritas pekerjaan yangtertinggi yang dirasa sulit diimplementasikan oleh tim. Dengan hal ini, tim tidak lagi membutuhkanScrumMaster, dikarenakan tim sudah dapat berjalan dengan sendirinya.
2. SirsiDynixProyek SirsiDynix merupakan suatu proyek yang mengimplementasikan sistem perpustakaanwarisan dengan lebih dari 12.500 daerah pengimplementasian. Tim yang sangat besar menjadipemeran dalam pengerjaan proyek ini. Di dalam pengerjaannya yang sudah berlangsung selamabertahun-tahun terdapat perubahan lingkungan bisnis yang menangani permintaan-permintaanbaru di tengah pengerjaan proyek. Dan yang paling menyulitkan, industri pengembangan perangkatlunak perpustakaan sedang dalam fase konsolidasi. Dynix telah memulai proyek pada tahun 2002dan kemudian dikonsolidasi dengan Sirsi pada tahun 2005 dan membentuk SirsiDynix.Menjadi suatu keuntungan, Dynix memulai proyek dengan menggunakan proses Agile yangmemungkinkan adaptasi terhadap perubahan permintaan selama proyek berlangsung. Dalampengembangannya, proyek ini juga didukung oleh StarSoft yang memiliki sejarah penggunaan XPyang memberikan hasil yang baik dalam pengembangan perangkat lunak berbasis sistem.Kombinasi dari resiko yang tinggi, skala yang besar, perubahan permintaan, konsolidasi dan akuisisifaktor bisnis, dan pengalaman SirsiDynix dengan Scrum yang dikombinasikan dengan StarSoft yangmenggunakan XP mengantarkan proyek ini untuk menggunakan implementasi Scrum yangteringtegrasi.Scrum yang teringtegrasi dilakukan dengan paradigma terdistribusi, sehingga dalam praktikpengembangan proyek ini, aktifitas dari Scrum dilakukan secara terdistribusi. Daily Scrum untukseluruh pengembangan dilakukan dengan teringtegrasi untuk seluruh site , begitu juga untukpertemuan harian tim dari Product Owner yang dilakukan secara terintegrasi untuk seluruh site
0 Comments