resume paper - scrum

10

Click here to load reader

Upload: christian-ozora

Post on 04-Oct-2015

215 views

Category:

Documents


2 download

DESCRIPTION

Review Paper SCRUM Method

TRANSCRIPT

Institut teknologi sepuluh nopember surabaya

Christian S.K.A 5114201007Article history:Received 20 August 2010Accepted 23 August 2010Available online 31 August 2010The Agile Requirements Refinery: Applying SCRUM Principles to SoftwareProduct ManagementKevin Vlaanderen a,, Slinger Jansen a, Sjaak Brinkkemper a, Erik Jaspers ba Department of Information and Computer Sciences, Utrecht University, Utrecht, The Netherlandsb Planon B.V., P.O. Box 38074, 6503 AB, Nijmegen, The Netherlandshttp://www.sciencedirect.com/science/article/pii/S0950584910001539

[Institut teknologi sepuluh nopember surabaya]

Christian S.K.A 5114201007[Institut teknologi sepuluh nopember surabaya]

6

A. Review

Terdapat beberapa hal yang harus di perhatikan dalam pembuatan atau pengembangan suatu perangkat lunak, mulai dari sumber daya manusia (resources) yang menangani proyek tersebut, sampai dengan metode apa yang harus diterapkan dalam proses pengembangan perangkat lunaknya. Terdapat banyak metode dalam proses pengembangan perangkat lunak salah satunya yaitu metode Agile Sofware Development.

Agile development atau yang dapat diartikan secara bebas sebagai pengembangan yang gesit merujuk pada suatu jenis metodologi perencanaan proyek yang meminjam dari konsep manufaktur efisien. Ia banyak bergantung pada komunikasi tim, software yang bekerja, dan fleksibilitas untuk menyesuaikan diri dengan realita bisnis yang dinamis. Dalam metodologi ini, persyaratan dan solusi berkembang melalui kolaborasi antara tim-tim yang bekerja lintas bidang dan terorganisasi sendiri. Kelebihannya ialah mengedepankan perencanaan adaptif, perkembangan evolusioner, penyelesaian awal, perbaikan terus menerus dan mendorong respon yang fleksibel dan cepat terhadap perubahan yang menghampiri sebuah perusahaan. Inilah framework konseptual yang berfokus pada bagaimana menghasilkan software yang sukses sesuai target dengan seminimal mungkin upaya.Dalam industri software, misalnya, meteodologi ini sudah diterapkan oleh sebagian para pelakunya. Karena Agile lebih menawarkan fleksibilitas dalam menangani perubahan, dan dalam era sekarang ini, dimana perubahan adalah sebuah keharusan maka mau tidak mau kita harus agile terhadap perubahan tersebut.

Dari model-model proses di atas dapat diambil beberapa poin penting:1. Komunikasi mempunyai peran penting dalam pembanguna software2. Kebutuhan software tidak mudah untuk diidentifikasikan secara lengkap3. Kerja sama dalam tim menentukan kelancaran pembangunan software

Agile process model pada Software Product Management (SPM) berusaha untuk menyiasati asumsi penting tentang proyek software pada umumnya : Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering 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.

Studi kasus dilakukan pada perusaahan produk perangkat lunak di Belanda yang sudah menerapkan agile SPM selama kurang lebih 2 tahun. Planon Internasional adalah salah satu perusahaan yang dikenal menerapkan prinsip-prinsip agile SPM (secara lebih spesifiknya SCRUM). Dengan memaparkan pengalaman selama penerapan agile SPM tersebut, beberapa pengetahuan dapat diperoleh dalam mengimplemntasikan SCRUM pada perusahaan lain.

Hal tersebut didasarkan pada pandangan bahwa proyek pengembangan software modern terlalu kompleks untuk diprediksi secara konsisten. Scrum mengurangi kompleksitas dengan prinsip yaitu : Kemajuan dan hambatan sebuah proyek setiap hari dan seterusnya terpantau oleh semuanya. Dengan interval teratur dilakukan penyerahan dan penilaian terhadap fungsi produk yang dikembangkan (SCRUM daily meeting). Persyaratan untuk produk bukan merupakan harga mati, tetapi setelah diserahkan dievaluasi kembali dan disesuaikan jika perlu (Adapt Cycle).

B. Ringkasan Studi Literatur :

SCRUM bukanlah sebuah proses ataupun teknik untuk mengembangkan produk. namuun sebuah kerangka kerja di mana di dalamnya dapat memasukkan beragam proses dan teknik. SCRUM meningkatkan kecepatan penyelesaian produk yang berkualitas tinggi dengan biaya SPM yang efektif, namun sesuai dengan visi awal yang telah dirumuskan. Pelaksanaan konversi dari visi ke dalam sebuah produk tidak disusun sangat detil dalam daftar persyaratan yang kemudian dieksekusi secara bertahap, melainkan dengan formulasi yang jelas dari perspektif pengguna berupa User Stories. Pelaksanaannya, kemudian dilakukan dalam interval dua sampai empat minggu secara berulang dan bertahap berupa sebuah Sprint. Pada akhir setiap sprint adalah penyerahan fungsi (software) yang selesai sebagai peningkatan produk yang berpotensi untuk diserahkan kepada pelanggan.

Orang yang terlibat dalam proses SCRUM dibagi menjadi 3 jenis peran (role), yaitu :

Product Owner Hanya satu orang yang ditempatkan pada role ini dengan harapan hanya ada satu orang yang menentukan requirement yang akan dipenuhi. Requirement ini dapat diperoleh berdasarkan pertemuan dengan client, sales, dll. Tetapi yang menjadi poin penting adalah bahwa hanya Product Owner lah yang menentukan skala prioritas dan validitas requirement. Mekanisme ini akan meng-eliminasi adanya kebingungan anggota tim terhadap perbedaan asumsi requirement, opini yang berkembang, dan dari gangguan-gangguan lainnya. Beberapa peranan dari Product Owner pada aktifitas SCRUM : yaitu orang yang menentukan spesifikasi atau feature dari software yang akan di-deliver. Dia akan memimpin dan mengarahkan pengembangan product, sprint by sprint (iterasi demi iterasi) demi tercapainya target. Menentukan skala prioritas, release plans, dan pemilik(assingment) dari setiap product backlog yang ada. Selain itu dia juga membuat development timeschedule berdasarkan skala prioritas backlog.

Scrum MasterYang bertanggung jawab untuk mengatur SCRUM proses selama proyek berjalan. Oleh karena itu Scrum Master harus menguasai SCRUM process. Scrum Master adalah fasilitator yang mempersiapkan dan memimpin pertemuan (meeting)Scrum Master melayani Product Owner dengan berbagai cara yang mencakup: Mencari teknik yang paling efektif untuk mengelola Product Backlog. Membantu Tim SCRUM untuk memahami pentingnya Product Backlog item yang jelas dan padat. Memahami bagaimana perencanaan produk pada lingkungan yang didasarkan empirisme. Memastikan Product Owner tahu bagaimana mengelola Product Backlog guna memaksimalkan nilai dari produk. Memahami dan mempraktikkan agility. dan, Memfasilitasi acara-acara dalam SCRUM bila dipanggil dan dibutuhkan Scrum Master melayani Tim Pengembang lewat berbagai cara yang mencakup: Membimbing Tim Pengembang untuk dapat mengatur dirinya sendiri dan berfungsi antar-lintas. Membantu Tim Pengembang untuk membuat produk bernilai tinggi. Menghilangkan hambatan-hambatan yang dialami oleh Tim Pengembang. Memfasilitasi acara-acara dalam SCRUM bila dipanggil dan dibutuhkan. dan, Membimbing Tim Pengembang dalam suasana organisasi di mana SCRUM belum sepenuhnya diterapkan dan dipahami.Scrum Master melayani organisasi tempat dia berada lewat berbagai cara yang mencakup: Memimpin dan membimbing organisasi dalam penerapan SCRUM. Merencanakan implementasi SCRUM di dalam organisasi. Membantu setiap pegawai dan stakeholder dalam memahami dan menggunakan SCRUM dan pengembangan produk dengan metoda empiris. dan, Membuat perubahan yang dapat meningkatkan produktifitas di dalam Tim SCRUM.

Development Team Merupakan self-organizing team yang menjalankan project, seperti business analyst, software architect, developer, tester dan lain-lain.Scrum tidak mengenal adanya jabatan tertentu untuk anggota Tim Pengembang selain Pengembang ataupun sub-tim pengembang, apapun pekerjaan yang dikerjakan oleh masing-masing anggota tim. Tidak ada pengecualian untuk aturan yang satu ini. Jumlah anggota Tim Pengembang yang optimal adalah cukup kecil untuk dapat berkoordinasi dengan cepat, dan cukup besar untuk dapat menyelesaikan pekerjaan dalam satu Sprint. Jumlah anggota tim yang kurang dari tiga orang akan mengurangi interaksi dan akan menyebabkan produktifitas yang rendah.

Proses eksekusi Sofware Product Management (SPM) dengan menggunakan SCRUM :

First meeting / Backlog GroomingBacklog Grooming merupakan tahap pertama yang harus dilakukan sebelum melakukan tahap-tahap sprint pada Scrum. Meeting ini dilakukan dengan tujuanmemilihtahapan prioritas mana saja yang harus dilakukanselama pengerjaan sprint.BacklogGrooming wajib dihadiri oleh seluruhScrum Team, yang meliputi Product Owner, Scrum Master dan Development Team.Keputusan tertinggi terletak pada Product Owner.Untuk itu Development Teamharusmengetahui apa yang sebenarnya diinginkan oleh Product Owner.

Product Backlog merupakan sebuah daftar requirement, beserta skala prioritas, dan estimasi waktu yang diperlukan untuk penyelesaian/implementasi. Estimasi waktu biasanya dalam satuan hari, dan biasanya tersusun mulai dari prioritas tertinggi. Dimana prioritas tertinggi ditentukan berdasarkan hal yang dinilai krusial atau penting dengan sistem yang akan dibangun. Daftar ini dapat secara dinamis berubah, bergantung pada bisnis rule dan teknologi yang digunakan.

Sprint Planning Sprint Planning merupakan meeting yang harus dilakukan setiap kali akan memulai sprint baru.Pada meeting ini Scrum Team merumuskan task-task apa saja yang akandikerjakan pada 1 sprint. Scrum Master dan anggota tim memecah Product Backlog menjadi task-task yang lebih kecil (Sprint Backlog), dan kemudian memilih task-task dari Sprint Backlog yang akan dikerjakan beserta estimasi waktunya untuk 1 sprint duration Perlu diperhatikan bahwa dalam 1 kali sprint yang penting bukan banyaknya task yang bisa dikerjakan, tetapikemampuan task yang dapat dikerjakan dari requirement sampai dengan testing dalam 1 kali waktu sprint berjalan. Waktu sprint ideal berkisar 1-2 minggu, tetapi masihmemungkinkan apabila sprint berjalan dalam waktu 1 bulan apabila scope tasknya cukup besar dan tidak dapat dipisah.Sprint Backlog adalah sekumpulan task yang akan dikerjakan oleh scrum team pada setiap sprint.

Sprint Backlog dibuat berdasarkan Product Backlog. Dan biasanya lebih detil daripada Product Backlog. Sprint Backlog ini lah yang sebenarnya lebih dicek pada Daily Srum untuk dikonfontir dengan Product Backlog yang bersangkutan.

Daily Scrum (Inspect and adapt cycle) Daily Scrum merupakan meeting yangdilakukan setiap haripada pengerjaan sprint.Pada meeting ini anggota tim saling berbagai apa yang telah dikerjakan kemarin, apa yang akan dikerjakan hari ini, dan apa saja hambatan yang ditemui selama pengerjaan. Scrum Master harus memastikan seluruh anggota Development Team mengutarakanpendapatnya masing-masing. Meeting harian selama tidak lebih dari 15menit. Yang boleh bicara dalam tim ini adalah scrum master dan anggota tim (pig) Orang lain yang berkepentingan (chickens) dapat ikut dalam tim tetapi tidak boleh berkomunikasi (berbiicara) Scrum master menyakan 3 pertanyaan dari kepada anggota tim :1. Apa yang sudah kamu lakukan kemarin (selama 24 jam kebelakang) ?2. Apa yang akan dikerjakan pada esok hari (24 jam mendatang) ?3. Hal apa yang bisa menghentikan pekerjaan besok hari (kendala) ?

Sprint Review Sprint Review merupakan meeting yang dilakukan setelah 1 kali pengerjaan sprint selesai. Meeting ini dilakukan dengan cara mendemonstrasikan apa yang telah dicapai 1 sprint. Dalam hal ini Scrum Team mendemonstrasikan hasil pekerjaannya kepada stakeholderterkait.Apabila stakeholder memiliki masukan terkait hasil produk pada sprint terakhir,stakeholder dapat meminta meeting dengan Scrum Team. Meeting setelah aktivitas selama 2 minggu atau 1 bulanan (Sprint) berakhir, yang kemudian diikuti oleh sprint planning meeting untuk Sprint berikutnya. Meeting sebagai review atas Sprint yang sudah dilaksanakan. Memperbarui (update) sprint backlog yang merefleksikan berapa lama waktu yang dibutuhkan untuk menyelesaikan pekerjaan (task).

Sprint RetrospectiveSprint Retrospective merupakan meeting yang dilakukan pada terakhir 1 masa sprint.Pada meeting ini masing-masing anggota Development Team mengutarakanpendapat mereka terkait kinerja tim pada 1 sprint terakhir. Pendapat yang diutarakan lebih mengarah ke kemampuan komunikasi, pembagian tugas, tanpamembahas sisi teknis project. Meeting setelah Sprint review meeting dan Sprint planning meeting Scrum Master dengan tim untuk merevisi proses dan cara kerja SCRUM, proses development agar Sprint berikutnya lebih efektif dan enjoyable. Meeting ini sebaiknya tidak lebih dari 3 jam.

Kekurangan SCRUM

1. Scrum akan mengakibatkan keterlibatan setiap pihak hingga akhir proyek, termasuk manajemen dan kostumer, menjadi bertambah bukan justru menurun.2. Scrum tidak menyarankan anggota tim untuk melakukan beberapa proyek sekaligus karena Scrum mengharapkan setiap anggota tim fokus dengan satu proyek agar kualitas terjaga dan lembur yang berlebih tidak terjadi.3. Scrum akan mengakibatkan organisasi menjadi lebih ramping karena peran-peran atau jabatan-jabatan yang tidak membawa nilai dihilangkan. Hal ini bisa berimplikasi kepada pemutusan hubungan kerja.4. Scrum akan mengakibatkan anggota tim yang tidak dapat beradaptasi dengan peer-pressureyang tinggi untukresigndari perusahaan.5. Scrum disarankan untuk tidak digunakan untuk proyek yang jumlah anggotanya kurang dari 3 orang ataupun jangka waktunya relatif pendek (kurang dari 1 minggu) karena hanya akan menyebabkan overhead.