Monday, September 2, 2019

Crystal Software Development

Crystal Software Development Methodology


Muhammad Naufal (F1D016060) 

Crystal adalah salah satu metode pengembangan software dalam Agile Methodologies yang lebih berfokus pada anggota tim dan interaksi para anggota tim saat mengerjakan suatu proyek daripada proses dan alat-alat yang digunakan. Metode ini dikembangkan oleh Alistair Cockburn pada tahun 2004. Alistair percaya bahwa kemampuan anggota tim dan cara berkomunikasi memiliki dampak terbesar dalam hasil dari suatu proyek. Inti dari metode Crystal adalah interaksi antar tim dan simbiosis antar anggota tim yang akan memberikan dampak pada pengembangan software. Menurut Cockburn, kita harus melihat pengembangan produk sebagai suatu permainan yang dapat menstimulasi setiap orang untuk berinteaksi, menjadi kreatif, dan menghasilkan ide brilian. Daripada berfokus pada suatu pertanyaan seperti “Apakah model yang dibuat akurat?”, lebih baik berfokus pada jawaban suatu pertanyaan seperti “Apakah produk kita memenuhi kebutuhan pengguna?” atau “Apakah tujuan kita selaras sebagai suatu tim?”
Satu hal yang disadari oleh Cockburn adalah ciri suatu proyek bergantung pada berapa orang yang terlibat di dalam proyek tersebut dan tingkat kekritisan suatu proyek.
Saat bekerja pada tim yang kecil, tidak diperlukan banyak pelaporan sehingga interaksi tidak terlalu banyak, namun semakin besar proyek yang diikuti dengan jumlah anggota tim yang lebih besar, maka terjadi lebih banyak interaksi. Semakin banyak anggota tim, maka tingkat kekritisan proyek menjadi semakin besar dan perlu pendekatan yang lebih kompleks.

Terdapat berbagai jenis kategori dalam metode Crystal, dimana pembagian kategori tersebut berdasarkan dimensi, tingkat kekritisan, dan prioritas. Secara umum,  kategori dari metode Crystal dikelompokkan menjadi beberapa warna, tergantung jumlah anggota tim yang terlibat di dalamnya, antara lain:
· Clear untuk tim dengan anggota 8 orang atau kurang.
· Yellow untuk tim dengan anggota sebanyak 10-20 orang.
· Orange untuk tim dengan anggota sebanyak 20-50 orang.
· Red untuk tim dengan anggota sebanyak 50-100 orang.
Selain itu terdapat warna-warna lain, dimana semakin gelap warna Crystal, maka semakin banyak anggota dalam tim dan semakin tinggi tingkat kekritisan proyek.

Crystal Clear Software Development

Salah satu kategori metode Crystal adalah Crystal Clear, di mana terdapat 7 ciri di antaranya:
Ciri wajib:
1.    Frequent Delivery
Memungkinkan untuk melakukan pengujian kode kepada pengguna nyata. Dengan cara ini, pengembang tidak perlu menghabiskan energi dan waktu untuk produk yang tidak ingin dibeli oleh siapapun.
2.    Reflection Improvement
Tidak peduli seburuk atau sebaik apapun produk yang dihasilkan, sellau ada ruang untuk mengembangkan produk menjadi lebih baik, selain itu selalu ada metode dan teknik baru yang dapat diterapkan dalam tim.
3.    Osmotic Communication
Dengan tim yang bekerja Bersama, informasi dapat mengalir dengan baik di dalam tim. Memungkinkan terjadinya perolehan informasi berharga tanpa harus terlibat dalam pembahasan masalah tertentu. Penyerapan informasi dengan cara ini disebut sebagai osmotic communication.

Ciri tidak wajib:
1.    Easy Access to Expert Users
Memungkinkan untuk menjaga komunikasi dan mendapatkan feedback secara teratur dari pengguna nyata.
2.    Personal Safety
Satu-satunya cara untuk membangun suasana kerja yang sehat dan budaya tim yang baik adalah dengan mempraktikan komunikasi yang terbuka dan jujur. Anggota tim harus dapat berbicara tanpar asa takut, tidak peduli apkaah mereka sedang mempresentasikan ide baru atau berbicara tentang masalah potensial.
3.    Focus
Setiap anggota tim harus tahu persis apa yang harus dikerjakan, sehingga dapat memusatkan perhatian pada tugas yang dikerjakan. Selain itu, dapat meningkatkan komunikasi antar anggota tim yang membantu  dalam mencapai tujuan yang sama.
4.    Agile Technical Environment
Adanya pengujian otomatis, manajemen konfigurasi, dan integrasi alat yang spesifik sehingga kesalahan dapat dideteksi dalam waktu yang singkat.


Proses atau Tahapan:

•    Project Cycle
Terdiri dari tiga bagian:
1.    Persiapan (Pembangunan tim, eksplorasi, penentuan metodologi, dan rencana awal)
2.    Serangkaian delivery atau lebih
3.    Penyelesaian, proyek selesai

•    Delivery Cycle
1.    Kalibrasi rencana rilis
2.    Serangkaian iterasi atau lebih yang masing-masing menghasilkan kode yang teruji
3.    Delivery ke pengguna nyata
4.    Penyelesaian termasuk refleksi dari produk yang dibuat dan metode yang digunakan.

•    Iteration
1.    Perencanaan iterasi
2.    Aktivitas harian dan integrasi
3.    Penyelesaian berupa refleksi dan selebrasi

•    Working week/day
Memilih hari atau waktu mingguan  sebagai satuan waktu suatu siklus seperti pertemuan mingguan departemen, pertemuan pelaporan pemimpin tim.

•    Integration
Pengembanganm integrasi, dan pengujian system. Dilakukan proses penyatuan dan pengujian  tanpa henti untuk setiap alat atau mesin yang memiliki fungsi yang terpisah. Semakin pendek siklus integrasi maka semakin baik. Bisa memakan waktu 30 menit hingga 3 hari, tergantung pengalmaan tim.

•    Development
Penulisan dan pengujian beberapa potong kode untuk suatu tugas spesifik, di mana dilakukan oleh beberapa tim kecil. Memakan waktu yang cukup pendek dari 15 menit hingga beberapa hari.

Kelebihan Crystal Method:
•    Memastikan adanya delivery secara sering agar dapat mengidentifikasi masalah  pada setiap tahap.
•    Selalu ada ruang untuk meningkatkan karakteristik, dapat mengambil waktu dari pengembangan software dan memungkinkan adanya diskusi tentang penyempurnaan proses.
•    Adanya komunikasi dan interaksi yang lebih dekat antar anggota tim dan dapat berbagi pengetahuan antar anggota tim.

Kekurangan Crystal Method
•    Adanya varian dalam metodologi memungkinkan terjadinya perbedaan prinsip sesuai dengan ukuran proyek
•    Sulit dilakukan oleh tim yang bekerja dalam area yang berbeda karena memerlukan komunikasi yang rutin.
•    Perencanaan dan pengembangan tidak bergantung pada requirement.

Contoh atau karakteristik aplikasi:
Dengan adanya refleksi atau feedback dari pengguna secara nyata, maka karakter aplikasi yang dihasilkan dalam metode Crystal adalah aplikasi dapat menjawab kebutuhan pengguna. Selain itu, dengan adanya komunikasi yang baik dan tools atau metode yang digunakan fleksibel dalam memecahkan masalah, maka pengembangan aplikasi dapat dilakukan dengan lebih cepat.


Referensi:
Cockburn Alistair., 2000. "Agile Software Development". Cockburn
Highsmith, Jim., 2002. "Agile Software Development Ecosystem".  Addison Wesley
Newline Tech. 2018. "Crystal Clear  Methodology". Newline Tech.

No comments:

Post a Comment