Wednesday, September 4, 2019

Metode Pengembangan Sistem: SCRUM

Disusun Oleh: 

1. Nurhaini Rahmawati (F1D 016 066)

2. Salma Nabilla Ulpa (F1D 016 080)


SCRUM



Abstrak/Filosofi



      Metode Scrum merupakan suatu pendekatan iteratif pada pengembangan perangkat lunak yang mengusung prinsip agile (ketangkasan). Metode Scrum membuat beberapa blok waktu yang dinamakan sprint. Pada sebuah produk yang menggunakan Scrum, kualitas bukan menjadi salah satu variabel yang sangat menentukan. Fungsionalitas pada Scrum menekankan pada selesainya sebuah fungsi atau fitur yang di dalamnya sudah terdapat kualitas, testing, dokumentasi, review dan sebagainya. Kelebihan dari metode Scrum ini yaitu salah satunya pekerjaan dilakukan terbagi-bagi sehingga dapat diselesaikan dengan cepat. Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan.

Sejarah



Scrum bermula ketika anak buah Jeff Sutherland yang bekerja di Easel Corporation membaca tulisan dari Professor Takeuchi Tanaka yang dimuat di Harvard Business Review mengenai manajemen produk pada tahun 1993. Tulisan tersebut memuat bagaimana Professor Takeuchi Tanaka kagum dengan tim olahraga Rugby yang bekerja bersama menyingkirkan semua hambatan yang ada di depannya. Professor Takeuchi Tanaka lalu membawa konsep ini ke manajemen produk dan menamakan metode kerja ini Scrum.
Pada tahun 1994, Jeff mengajak Ken Schwaber untuk bekerja di Easel Corporation untuk mendokumentasikan dan memformalisasikan proses ini. Hasil buah pikir antara Jeff dan Ken dipresentasikan di konferensi OOPSLA pada tahun 1996. Sejak itu, Scrum telah berangkat menjadi pilihan utama lainnya dari pendekatan pengembangan produk klasik lainnya. Scrum telah diadopsi oleh banyak manajer yang ingin memastikan bahwasanya mereka menghasilkan produk yang terbaik mungkin dan oleh developer yang ingin memastikan bahwasanya mereka bisa melakukan pekerjaan mereka dengan sebaik mungkin.

Definisi SCRUM


Scrum adalah kerangka kerja proses yang telah digunakan untuk mengelola pengembangan produk kompleks semenjak awal tahun 1990-an. Scrum juga sebagai sebuah metodologi agile untuk mengelola produk melalui metode incremental dan iterative [2]. Scrum bukanlah sebuah proses ataupun teknik untuk mengembangkan produk; daripada itu, ini adalah sebuah kerangka kerja di mana di dalamnya dapat memasukkan beragam proses dan teknik. Scrum akan mengekspos pergerakan efektifitas manajemen produk dan praktik pengembangan yang sedang dijalani, dengan begitu dapat melakukan peningkatan [3].
Scrum Framework terdiri atas tim Scrum beserta peran-perannya, pertemuan-pertemuan, artefak-artefak, dan sekumpulan aturan main. Setiap komponen pada kerangka kerja Scrum memiliki tujuan tertentu dan sangat penting bagi keberhasilan dan penggunaan Scrum.


Prinsip-prinsip SCRUM



Scrum memiliki prinsip yaitu:
1.  Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain.
2.      Proses dapat beradaptasi terhadap perubahan teknis dan bisnis.
3.      Proses menghasilkan beberapa software increment.
4.      Pembangunan dan orang yang membangun dibagi dalam tim yang kecil.
5.      Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun.
6.    Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan.

Role-role dalam SCRUM



Roles dalam Scrum adalah peran-peran yang dimainkan dalam proses pengembangan perangkat lunak [5]. 

Tiga peran utama pada Scrum yaitu:

Product Owner 


Merupakan pihak yang bertanggung jawab terhadap suksesnya pengembangan produk, biasanya adalah representasi dari konsumen. Product Owner adalah bagian dari tim Scrum dan bisa bekerja sama dengan anggota tim lainnya dan memastikan bahwa pekerjaan yang dibutuhkan, berhasil selesai sesuai keinginan [6].

Product Owner diharapkan memiliki kriteria di bawah ini [6]:


  • Memiliki visi dan misi
  • Bisa memimpin tim
  • Komunikator dan Negosiator
  • Memiliki wewenang and berkomitmen
  • Selalu ada dan memiliki kualifikasi

Scrum Master

Merupakan fasilitator untuk melayani tim, tidak bertindak sebagai manajer produk. Scrum Master bekerja dengan memastikan bahwa tim dapat melewati segala hambatan yang ditemukan dan sudah meminta bantuan sebelumnya [8].
Scrum Master bukan berarti orang menguasai Scrum, tapi merupakan sebuah peran tertentu dalam kerangka kerja ini, karena Scrum Master juga memiliki peran yang berhubungan dengan Product Owner [4].
Tanggung jawab dari Scrum Master adalah sebagai berikut [1]:


  •  Menjaga anggota tim dari gangguan eksternal
  • Bertindak sebagai agen perubahan dan selalu beradaptasi untuk memaksimalkan produktivitas tim
  • Memberi pelatihan kepada tim
  • Meminimalisir hambatan pada tim
  • Memastikan komunikasi yang efisien dan efektif antara tim dan product owner
  • Memberikan fasilitas untuk setiap kegiatan yang berhubungan dengan Scrum

Scrum Team

Scrum team merupakan sekelompok individu yang bekerja sama untuk menghantarkan ataupun menaikkan nilai dari produk yang diminta oleh pelanggan [1].
Prasyarat dari tim Scrum adalah sebagai berikut [7]:


  • Berfungsi Antarlintas
  • Semua anggota berpartisipasi
  •  Mampu berkomunikasi dengan baik
  • Meaningful Conversation
  • Memiliki tujuan yang sama

Artefak Pada SCRUM



Scrum juga mengidentifikasikan empat objek artefak yang dioperasikan oleh tim Scrum selama siklus pengembangan, yaitu:
1.      Product Backlog
Merupakan sebuah daftar item yang diperlukan pada produk dan merupakan sumber dari persyaratan yang dibutuhkan untuk membuat sebuah produk[3]. Produk backlog harus dilakukan dan sudah disusun berdasarkan prioritas tertentu. Item tersebut bisa berupa hasil dari eksplorasi kebutuhan pelanggan, deskripsi secara functional dan non-functional dan hal-hal yang diperlukan untuk merilis sebuah produk jadi [6].
2.      Sprint Backlog
Sprint Backlog adalah sekumpulan item Product Backlog yang telah dipilih untuk dikerjakan di Sprint, juga di dalamnya rencana untuk mengembangkan potongan tambahan produk dan merealisasikan Sprint Goal. Sprint Backlog adalah perkiraan mengenai fungsionalitas apa yang akan tersedia di iterasi selanjutnya dan pekerjaan yang perlu dikerjakan untuk menghantarkan fungsionalitas tersebut menjadi potongan produk yang dianggap selesai [3].
3.      Scrum Burndown Charts
     The Scrum Burndown Chart adalah alat pengukuran visual yang menunjukkan pekerjaan selesai per hari terhadap tingkat produksi penyelesaian pembebasan produk ini. Tujuannya adalah untuk memungkinkan bahwa produk ini tetap pada jalurnya untuk memberikan solusi yang diharapkan dalam jadwal yang ditentukan [1].


Penggunaan SCRUM


Scrum dikembangkan untuk mengelola dan mengembangkan produk. Scrum mulai digunakan sejak dan telah digunakan secara meluas di seluruh dunia, untuk:

1.      Meneliti dan menggali potensi pasar, teknologi, dan kemampuan produk.
2.      Mengembangkan produk dan peningkatan-peningkatannya.
3.      Merilis produk dan peningkatan-peningkatannya, sesering mungkin di setiap hari.
4.      Mengembangkan dan memelihara operasional sistem komputasi awan (daring, keamanan, sesuai permintaan) dan lingkungan operasional lain untuk penggunaan produk.
5.   Mengelola dan memperbarui sebuah produk.



Proses/tahapan SCRUM







1.      Sprint Planning
           Sprint Planning adalah sebuah aktivitas untuk membuat rencana pada Product Backlog Item (PBI) yang akan dan siap dikembangkan oleh tim pengembang pada satu Sprint [7]
      Ada beberapa hal yang perlu dipersiapkan sebelum melakukan Sprint Planning, yaitu:

  • Menentukan tujuan Sprint
  • Mempersiapkan pekerjaan sesuai dengan waktunya
  • Memperkecil item dari product backlog sehingga cukup untuk dikerjakan pada satu sprint.
  •  Memastikan Kejelasan, kemampuan untuk dites, dan Kelayakan.
2.      Daily Scrum
          Daily Scrum meeting atau biasa juga disebut daily Stand up meeting adalah kegiatan/pertemuan dengan batasan waktu maksimum selama 15 menit agar Tim Pengembang dapat mensinkronisasikan pekerjaan mereka dan membuat perencanaan untuk 24 jam ke depan [3]. Dilakukan di waktu dan tempat yang sama untuk menjaga konsistensi. Idealnya Scrum Team membentuk sebuah lingkaran, dan duduk saling berhadapan dengan anggota tim yang lain. Setiap tim diharuskan menjawab pertanyaan-pertanyaan di bawah ini :
  •        Apa yang sudah dikerjakan/dicapai semenjak Daily Scrum terakhir?
  •     Kendala apa yang ditemukan untuk mencapai target?
  •       Apa saja yang akan dikerjakan/dicapai sebelum Daily Scrum berikutnya?
3.      Sprint Review
         Sprint Review adalah sebuah aktivitas atau acara yang dilaksanakan pada akhir sprint yang tujuannya untuk meninjau hasil pekerjaan tim pengembang pada sprint yang terakhir dikerjakan [7]. Sprint Review ini sangat direkomendasikan untuk dilakukan secara informal, sehingga diharapkan tidak membebani tim secara psikologis. Sprint Review biasanya dihadiri oleh Product Owner, Scrum Master, Customer, Management, dan Scrum Team sendiri. Dalam rapat ini akan dibandingkan hasil Sprint dengan Sprint Goal yang telah disepakati saat Sprint Planning Meeting berdasarkan backlog yang terikat dengan Sprint yang bersangkutan.
4.      Sprint Retrospective
          Sprint Retrospective adalah sebuah kesempatan untuk tim Scrum meninjau dirinya sendiri dan melakukan peningkatan yang akan diimplementasikan pada sprint selanjutnya [7]. Sprint Review digunakan untuk melihat perkembangan system yang dibangun, sedangkan Spring restrospective digunakan untuk melihat perkembangan tim yang membangun sistem. Sprint Restrospective merupakan satu tool yang sangat penting untuk membuat tim semakin berkembang seiring pengembangan sistem.

  Karakteristik Aplikasi Yang Dikembangkan Dengan  Scrum 


1.    Aplikasi/produk yang kompleks dan besar, sesuai sifatnya Scrum adalah sebuah proses kerangka kerja yang disusun untuk menunjang pengembangan produk yang kompleks
2. Aplikasi/produk yang fleksibel (sewaktu-waktu memerlukan perubahan), sesuai     dengan karakteristik dari metode SCRUM yaitu berulang dan fleksibel karena SCRUM team harus selalu siap dengan adanya perubahan
3.  Aplikasi/produk yang membutuhkan waktu pengerjaan singkat (harus selesai secepat mungkin), sesuai dengan sifatnya Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan karena control jadwal pengerjaan dan kemampuan perkiraan yang baik.
4. Aplikasi/produk yang memiliki budget/modal besar, karena Scrum dapat mengerjakan produk kompleks dan dengan waktu yang singkat sesuai keinginan owner dan kesepakatan di awal.
5.    Produk yang pengerjaannya membutuhkan campur tangan user / produc owner.
6. Aplikasi/produk yang tidak membutuhkan dokumentasi lengkap, karena metode Scrum tidak
          berfokus pada dokumentasi melainkan kualitas pengerjaan produk


Perbandingan Metode Modern (Scrum) Dengan Metode Tradisional (Waterfall):

  





    Kelebihan

1. Scrum memberikan kepuasan pelanggan dengan mengoptimalkan waktu penyelesaian dan responsif terhadap permintaan.
2.    Meningkatkan kualitas
3.    Menerima dan dapat memperkirakan perubahan
4. Memberikan perkiraan yang lebih baik sambil menghabiskan lebih sedikit waktu untuk membuatnya
5.    Memberikan control lebih pada jadwal produk
6.    Scrum sangat ideal untuk kebutuhan akumulasi yang berubah dengan cepat
7.    Manfaat bagi pelanggan dan manajer produk
8.    Scrum cepat, tepat dan dapat beradaptasi dengan mudah
9.   Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain
10.  Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
11.  Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
12.  Perkiraan kerja jauh lebih mudah, dst.

    Kekurangan

1.      Kurang dalam hal dokumentasi
2.      Dedikasi anggota tim sangat penting
3.  Kerja tim sangat penting, jika anggota tim tidak bekerja sama dengan baik, produk akan menghadapi kegagalan
4.      Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
   

    Kesimpulan

           Scrum adalah serangkaian proses kerangka kerja pengembangan system Agile yang kompleks yang tidak dilakukan secara linear yang mengedepankan kerja sama tim untuk hasil yang maksimal dengan minim dokumentasi. Scrum bukanlah kerangka kerja yang mengharuskan anggotanya untuk mengikuti aturan dari buku secara keseluruhan, tapi juga diharapkan mampu berpikir out of the box. Oleh karena itu, para anggota tim Scrum, dianjutkan untuk selalu belajar dan mengembangkan diri.


   

   REFERENSI

  [1] Evans, Jenny, Scrum Revealed, International Scrum InstituteTM.
 [2] K. Schwaber dan M. Beedle, Agile Software Development with Scrum, Series in Agile Software Development, Prentice Hall, 2002.
  [3] Ken Schwaber dan Jeff Sutherland. 2017. “Panduan SCRUM” (Terjemahan Bahasa Indonesia).
  [4] Kim, Don, The State of Scrum: Benchmarks and Guidelines, ScrumAlliance, 2013.
  [5] Nuraminah, A. (2016). Analisis Tingkat Kematangan Manajemen Produk Pengembangan Perangkat Lunak Menggunakan Scrum Maturity Model : Studi Kasus PT . XYZ. STIMIK ESQ.
 [6] Pichler, Roman, Agile product management with Scrum : creating products that customers love, New York: Addison-Wesley, 2010.
  [7] Partogi, Joshua, Manajemen Modern dengan Scrum, Yogyakarta: Penerbit Andi, 2015.
  [8] Stellman, Andrew & Greene, Jennifer, Learning Agile: Understanding Scrum, Xp, Lean, And Kanban,California: O’Reilly Media, 2015.


No comments:

Post a Comment