Kerangka Kerja Agile Development


 

Assalamualaikum wr wb, semoga kalian semua diberikan keseahatan selalu , hari ini saya akan membagikan tentang Kerangka Kerja Agile Development, materi tersebut hadir dalam mata kuliah Analasisis Desain & Sistem Informasi. Berikut saya sampaikan :

1. PENGANTAR KANBAN AGILE FRAMEWORK

Kanban dalam bahasa Jepang artinya billboard. Metode ini memang lahir di Jepang pada tahun 1940-an, dimana saat itu metode ini digunakan oleh Toyota untuk meningkatkan workflow kerjanya. Setelah diadaptasi oleh David Anderson, metode Kanban dikembangkan supaya cocok untuk digunakan oleh berbagai jenis proses knowledge transfer, seperti Software Management, IT Management, Legal, Human Resources, bahkan Marketing. Kanban juga dapat disebut sebagai Visual Management Method, dimana fokus dari metode ini adalah melakukan visualisasi atas proses manajemen yang dilakukan. Ada setidaknya empat keuntungan dasar yang akan didapat bila menerapkan metode ini: mengelola dan mengembangkan flow kerja dengan baik, melakukan optimasi waktu pengerjaan proyek, men-deliver value lebih cepat kepada customer, dan meningkatkan prediksi dan kualitas pengerjaan proyek. 

Kerangka kerja ini berpusat pada cara melakukan kontrol terhadap backlog menggunakan suatu papan yang berisi setidaknya tiga kolom: task to be done, task in progress, dan completed task. Kolom tersebut mewakili proses dasar dari kegiatan yang dilakukan selama mengerjakan proyek. Tentunya proses tersebut dapat dikembangkan/didetilkan sesuai dengan keinginan dan kesepakatan tim. Tiga langkah dasar yang dilakukan dalam metode ini adalah: 

A) Memvisualisasikan Workflow

Pada tahap ini, kalian bersama tim akan menentukan alat apa yang akan digunakan untuk memvisualisasikan flow kerja. Alat fisik maupun daring tidak terlalu berpengaruh, menyesuaikan selera dan kesepakatan tim. Setelah menentukan alat, buat gambar berupa kolom -kolom yang menggambarkan proses mulai hingga selesai.  

B) Membatasi Work-In-Progress

Buat batasan waktu terhadap pengerjaan task-task yang dilakukan. Bila tidak dibatasi, seringkali waktu pengerjaan proyek jadi terbuang sia-sia. Menentukan batasan waktu dari pekerjaan juga dapat menghasilkan prediksi waktu pengerjaan proyek secara umum. 

C) Memperjelas Kebutuhan dan Aturan 

Ini merupakan bagian dari planning. Pada proses ini, tim memahami lebih detil dan eksplisit mengenai produk yang akan dibuat. Tidak lupa untuk membahas proses bisnis dan aturan lain yang dapat mempengaruhi produk yang dihasilkan. Proses ini bagus untuk memprediksi keberjalanan proyek. 

D) Mengelola dan Mengukur Workflow 

Setelah membahas kebutuhan dari hasil produk, hal yang perlu dilakukan adalah mengelola alur kerja. Bagaimana suatu task dipecah, menentukan PIC dari setiap task, menentukan waktu pengerjaan, dan seterusnya. Dengan pace yang runut dan baik, kualitas pengerjaan proyek akan optimal. 

E)  Menggunakan Metode Saintifik Sebagai Optimasi 

Setelah melaksanakan proyek menggunakan Kanban, kalian dapat membuat strategi pengerjaan untuk proyek selanjutnya. Dengan pengalaman empirik, pengerjaan proyek selanjutnya akan semakin efektif dan efisien. Maka jangan luput untuk memperhatikan pengembangan yang dapat dilakukan dari metode Kanban yang dikerjakan. 

2. PENGANTAR XP AGILE FRAMEWORK 

Extreme Programming (XP) adalah metode yang dikenalkan oleh Kent Back sebagai metode pengembangan software development yang cepat, efisien, beresiko rendah, fleksibel, terprediksi, saintifik, dan menyenangkan. XP cocok digunakan oleh tim kecil-menengah atau dengan sedikit programmer, dimana kebutuhan produk sangat abstrak atau sering berubah-ubah. 

XP memiliki empat core values: communication, simplicity, feedback, dan courage. 
Communication (komunikasi) sebagai nilai pertama dalam XP diterapkan dengan memfokuskan hubungan yang baik antara tim dengan klien, anggota dalam tim, serta tim dengan manajer proyek atau bagian lain. Salah satu bentuk komunikasi yang intens dalam XP adalah penerapan pair programming. 

Simplicity (kesederhanaan) sebagai nilai kedua dalam XP maksudnya adalah dengan membuat segala sesuatu dalam pengembangan menjadi sesederhana mungkin. Misalnya adalah membuang fungsi atau halaman yang tidak digunakan, fokus pada kebutuhan utama dari aplikasi, tidak terlalu rumit dalam membuat desain dan banyak contoh lainnya. Intinya, fokus pada hal sederhana yang dibutuhkan sekarang dan mengembangkannya di kemudian hari bila dirasa perlu. 

Feedback (umpan balik) sebagai nilai ketiga dalam XP maksudnya adalah untuk selalu melakukan evaluasi terhadap produk yang dikerjakan. Informasi dan kesalahan produk perlu dikumpulkan selama keberjalanan proyek, kemudian dibahas solusinya secara rutin. Umpan balik juga dapat menjadi indikator perkembangan dari proyek yang sedang dijalankan. 

Courage (keberanian) sebagai nilai keempat dalam XP maksudnya adalah mendorong programmer untuk berani bereksperimen dan menulis ulang kode bila tidak puas dengan hasil sebelumnya. Ini membantu mempertahankan moral dan integritas pengembang proyek serta mendorong komunikasi lebih lanjut dengan anggota proyek lain. 

Tahapan dalam metode XP: Planning, Design, Coding, dan Testing. 

Planning adalah tahap dimana tim membahas mengenai user story untuk software increment (rilis) berikutnya. Tim akan menentukan bobot dan prioritas story untuk diimplementasikan. Biasanya story dengan value atau risiko tinggi akan diimplementasikan lebih dulu. Pada tahap ini juga dibuat perhitungan kecepatan pelaksanaan pengerjaan proyek untuk satu increment. 

Design adalah tahap merancang object oriented class yang sesuai dengan software increment. Karena kental dengan object oriented programming, proses ini banyak melakukan perancangan kelas dan objek untuk perangkat lunak. Biasanya desain dibantu dengan penggunaan Class Diagram, CRC Card (Class Responsibilities Collaboration), dan Use Case Diagram. 

Coding adalah tahap membangun aplikasi atau produk. Dalam XP ada konsep untuk membangun kode menggunakan metode pair programming. Metode ini dilakukan oleh dua programmer menggunakan satu workstation. Ada yang berperan sebagai observer dan navigator. Dengan metode ini, harapannya kode dapat dibangun dengan lebih cepat dan efisien (secara algoritma) melalui knowledge sharing yang dilakukan oleh observer dan navigator. Dalam proses ini juga sebaiknya dilakukan persiapan unit testing berdasarkan kode yang dibangun. Unit testing akan diimplementasikan pada proses selanjutnya. 

Testing adalah tahap untuk menguji program yang dibangun. Testing biasanya dilakukan secara internal tim dan external (Acceptance Test). Tes internal dibangun untuk mengecek setiap fungsional dalam program. Tes dapat menggunakan suatu framework otomasi, sehingga tes dapat dilakukan berulang-ulang setiap hari dengan mudah. Acceptance test dilakukan customer untuk mengetes kesesuaian user story. 
XP cocok digunakan untuk membangun program/software dengan karakter sebagai berikut: 
Membutuhkan perubahan cepat 
Proyek beresiko tinggi atau memiliki tantangan berat 
Programmer sedikit (2-10 orang) 
Adanya permintaan dari pelanggan secara langsung 

3. PENGANTAR SCRUM FRAMEWORK  

Pada poin sebelumnya, kita telah membahas mengenai Agile sebagai metodologi, dan telah berkenalan dengan beberapa kerangka kerja yang lain seperti kanban dan XP. Dengan mengetahui bahwa terdapat kerangka kerja seperti kanban dan Xp, kita mengetahui bahwa metodologi dan nilai-nilai agile saja tidak cukup untuk dapat melakukan pengembangan produk atau menjalankan proyek dengan metodologi agile saja. Hal ini disebabkan karena agile tidak mengatur secara khusus mengenai bagaimana penerapan prinsip prinsip yang ada secara praktikal. Untuk itu, dibutuhkan kerangka kerja (Framework) untuk  dapat menerapkan prinsip prinsip tersebut.  
Seperti judulnya, materi hari ini lebih banyak berisi pengenalan mengenai cara kerja scrum.  Pada materi hari ini, kita akan memperkenalkan  istilah-istilah yang ada di scrum untuk menyamakan definisi. Setelah itu, kita baru akan menggali materi scrum lebih dalam lagi. Untuk memudahkan teman-teman dalam mengingat definisi yang terdapat dalam scrum, seluruh definisi dalam materi ini dikumpulkan menjadi satu pada link daftar istilah dalam scrum. 
 
• Pengenalan Scrum 


Sebelumnya, kita sudah membahas banyak mengenai proyek dan cara pengerjaannya. Scrum merupakan salah satu kerangka kerja yang populer dalam  manajemen proyek berbasis agile. Banyak metodologi lain selain scrum yang sebenarnya dapat dipelajari selain scrum. Berikut merupakan beberapa framework yang masih berada dalam naungan agile. 
  
Apabila dilihat, banyak sekali metode yang dapat digunakan, mulai dari scrum, extreme programming, test driven development, bahkan beberapa versi scrum yang di extend untuk penggunaan skala yang lebih besar. Berdasarakan data dari survey yang dilakukan ScrumAlliance.com, 94% dari manajemen proyek berbasis agile dilakukan dengan menggunakan scrum, dengan 78% nya menggunakan scrum bersamaan dengan pendekatan lain, dan 16% nya menggunakan scrum secara eksklusif. Dari data ini, dapat dilihat bahwa scrum sebenarnya merupakan cara kerja yang digunakan hampir di sebagian besar proyek berbasis agile. Meskipun beberapa perusahaan menggunakan metode selain scrum, akan tetapi secara umum, mayoritas tetap menggunakan scrum sebagai metode manajemen proyeknya dan dipadukan dengan framework lainnya. 

• Mengapa Menggunakan Scrum 


Sebelum masuk ke pembahasan mengenai Scrum, kita butuh untuk mengetahui apakah scrum merupakan metodologi yang cocok untuk digunakan atau tidak ? mengapa tidak menggunakan metode-metode lain seperti XP, Kanban, dan lainnya.  Berikut merupakan beberapa alasan yang menjelaskan keuntungan dari penggunaan metode scrum. 
1. Adaptabilitas Proyek / Produk yang dikembangkan dengan metodologi scrum, memiliki adaptabilitas yang tinggi terhadap perubahan. 
2. Transparency Transparansi dalam pengerjaan tugas dapat dilihat oleh siapapun, tidak hanya pada orang orang yang mengerjakan proyek saja.Hal ini dapat dilihat dari adanya scrum board, burn down chart, velocity, dan lainnya. 
3. Continuous Feedback Kerangka kerja scrum memungkinkan adanya saran perbaikan yang terus menerus karena telah terintegrasi dalam kerangka kerja. Hal ini ditunjukkan dengan daily standups, kemudian Sprint Review & Retrospective. 
4. Continuous Impovement Kerangka kerja scrum melakukan pengembangan dengan cara iterative menggunakan sprint, sesuai kebutuhan bisnis yang didasarkan dari product backlog. 
5. Continuous Delivery of Value Kerangka kerja scrum selalu memberikan hasil berupa increment pada setiap akhir sprint nya. Dan hasil yang diberikan ini akan selalu memiliki value karena dikerjakan berdasarkan urutan product backlog yang telah diprioritaskan. 
6. Sustainable Pace Walaupun adaptif terhadap perubahan, kerangka kerja scrum juga tidak didesain untuk memberatkan dari sisi tim pengerjaan proyek. Hal ini karena setiap sprint dalam scrum selalu diestimasi dan dinilai dari tingkat kesulitan pekerjaannya, dan perubahan memiliki cara tersendiri untuk disampaikan (Dalam product backlog). 
7. Each Delivery of High Value Dalam kerangka kerja scrum product backlog yang masuk pada sprintakan selalu diurutkan berdasarkan prioritas oleh Product Owner. Sehingga hal ini akan memberikan value terbaik untuk user pada setiap iterasinya. 
8. Efficient Development Process Kerangka kerja scrum memiliki batas waktu dari meeting, dan juga meminimalisir pekerjaan yang tidak perlu sehingga setiap anggota bisa fokus dalam pengerjaan proyek / pengembangan produk. 
9. Motivation Dalam kerangka kerja scrum terdapat proses yang mengevaluasi cara kerja untuk dapat memperbaiki pekerjaan pada sprint berikutnya. Perbaikan yang dilakukan secara terus menerus ini dapat membantu meningkatkan kinerja dari tim secara keseluruhan 
10. Faster Problem Resolution Dalam kerangka kerja scrum, sebuah tim terdiri dari cross functional team yang saling berkolaborasi sehingga resolusi dari sebuah masalah dapat diselesaikan lebih cepat 
11. Effective Deliverables Proses Prioritisasi Backlog dan Review yang dilakukan secara regular memastikan deliverables yang diberikan oleh tim kepada user efektif 
12. Customer Centric Kerangka kerja scrum menekankan pada nilai bisnis dari sebuah pekerjaan dan pendekatan yang kolaboratif sehingga memastikan user menjadi prioritas utama. 
13. High Trust Environment  Adanya kegiatan Retrospective & Daily Standups meningkatkan transparansi dalam tim, yang pada akhirnya meningkatkan kepercayaan antara satu anggota proyek dengan yang lain. 
14. Collective Ownership Kerangka kerja scrum membuat tim proyek dapat ikut punya kepemilikan bersama dalam proyek  dilihat dari user story. Tim proyek secara bersama sama akan berusaha menyelesaikan user story yang diambil dalam satu sprint. 
15. High Velocity Kerangka kerja scrum yang menekankan pada kolaborasi tim cross functional membuat tim dapat mengeluarkan potensi terbaiknya. 
16. Innovative Environment Kerangka kerja scrum memiliki retrospective dan review yang dapat dijadikan sarana untuk belajar, introspeksi dan adaptif sehingga dapat memunculkan lingkungan yang inovatif 

Berdasarkan penjabaran diatas, 16 keuntungan yang dipaparkan adalah hal-hal yang kalian harusnya harapkan, ketika nanti kalian sudah mengimplementasikan scrum kepada cara kerja kalian. Berikut merupakan beberapa bagian scrum.  

1. Scrum Principle 
Scrum Principle merupakan hal yang wajib ada dalam scrum. Seluruh prinsip dalam scrum principle harus dijalankan apabila kalian ingin menerapkan kerangka kerja scrum. apabila tidak diimplementasikan seluruhnya, maka tim kalian tidak dapat dikatakan menggunakan kerangka kerja scrum. 
2. Scrum Value 
Scrum Value merupakan nilai nilai yang harus diterapkan dalam masing-masing individu tim scrum dan akan menentukan kesuksesan tim dalam menerapkan kerangka kerja scrum ini. Pada materi ini akan dibahas lebih banyak mengenai kualitas individu seperti apa yang sudah siap untuk menerapkan kerangka kerja scrum. 
3. Scrum Team 
Pada Scrum Team ini, akan dibahas mengenai peran peran apa saja yang ada dalam kerangka kerja scrum. Secara umum scrum hanya mengenal 3 peran utama, yaitu Product Owner, Scrum Master, dan Development Team.  
4. Scrum Event / Process  
Scrum Process ini membahas mengenai kegiatan apa saja yang ada dalam scrum dan merupakan materi utama dari pembelajaran agile development using scrum ini. kita akan membahas apa yang harus dilakukan dalam masing-masing proses, dan apa saja hal yang harus dipersiapkan sebelum memulai suatu proses dalam scrum. 
5. Scrum Implementation Using Tools 
Pada materi ini, akan diberikan sedikit contoh untuk mulai menerapkan scrum dengan menggunakan tools management seperti trello, JIRA, monday.com, clickup. Penerapan akan berfokus kepada bagaimana cara untuk mempersiapkan hal hal yang dibutuhkan sebelum memulai kerangka kerja scrum menggunakan tools apapun. 
6. Introduction to Product Management 
Pada materi ini, kita akan belajar sedikit mengenai peran scrum dalam pengembangan produk, dan bagaiman scrum dapat berguna dalam meningkatkan kecepatan pengembangan produk. Terdapat bonus materi mengenai product development yang disertakan dalam materi ini. 

Nah itu tadi materi tentang Kerangka Kerja Agile development, harapan saya kalian bisa mengerti tentang materi tersebut , Akhir kata saya ucapkan terimakasih dan jumpa lagi Wassalamualaikum wr wb.

Source : (Shofiyah A.I .MODUL-KERANGKA KERJA AGILE DEVELOPMENT)


Komentar

Postingan populer dari blog ini

DASAR PEMOGRAMAN : Operator dan Operasi C++