3 Model Proses Agile oleh Moses Simanjorang

1. DevOps

Definisi

    DevOps merupakan serangkaian praktik yang menggabungkan proses pengembangan (development) dan operasi (operations). DevOps juga dapat diartikan sebagai konsep yang berfokus pada pengembangan dan pengiriman perangkat lunak melalui pendekatan kolaboratif dan integratif antara tim pengembang (developer) dan tim operasi perangkat lunak (operations). (Agus Hermanto, 7 Mei 2024, Metode Pengembangan DevOps) 

Bagan / Diagram alur

 Diagram alur DevOps

Metode DevOps memiliki siklus hidup yang penting dalam pengembangan proyek perangkat lunak. Berikut adalah penjelasan mengenai tahapan-tahapan dalam siklus hidup DevOps:

1. Plan (Perencanaan)
Pada tahap ini, dilakukan identifikasi tujuan dan kebutuhan untuk merancang serta mengembangkan perangkat lunak. Selain itu, proses manajemen proyek, penjadwalan, rencana pengujian, kebijakan dan persyaratan, serta rencana awal untuk pembaruan dan rilis dalam setiap iterasi juga menjadi bagian dari tahapan ini.

2. Develop (Pengembangan)
Berdasarkan hasil dari tahap perencanaan, tim pengembang mulai mengembangkan dan meninjau kode perangkat lunak atau Infrastructure as Code (IaC). Kode aplikasi dikembangkan menggunakan bahasa pemrograman dan lingkungan pengembangan (IDE) yang sesuai, serta dikelola melalui sistem kontrol versi. Pengujian integrasi dan unit dilakukan menggunakan alat otomatisasi build.

3. Build (Pembangunan)
Pada tahap ini, berbagai modul perangkat lunak diintegrasikan untuk menghasilkan file yang dapat dijalankan, baik untuk fitur produk maupun produk yang sepenuhnya dikembangkan. Evaluasi juga dilakukan untuk menilai kesesuaian perangkat lunak dengan persyaratan yang telah ditentukan.

4. Test (Pengujian)
Pengujian otomatis dilakukan secara terus-menerus untuk memastikan kualitas perangkat lunak yang dikembangkan. Tahapan ini bertujuan untuk mengeliminasi potensi kesalahan dan memastikan perangkat lunak atau aplikasi yang handal telah disiapkan untuk dikirim.

5. Deploy (Penerapan)
Pada tahap ini, perangkat lunak diterapkan secara terus-menerus ke lingkungan produksi. Fase ini melibatkan pengelolaan konfigurasi platform serta sumber daya target. Jika penerapan berhasil, fitur atau produk siap untuk dirilis.

6. Operate (Operasi)
Operasi dalam siklus DevOps mencakup pengelolaan dan konfigurasi perangkat lunak setelah penerapannya, seperti penyediaan sumber daya dan penskalaan otomatis. Orchestrator dan metode runtime lainnya digunakan untuk secara otomatis membuat instance serta mengatur topologi dan komponen aplikasi saat runtime.

7. Monitor (Pemantauan)
Performa aplikasi dipantau melalui pengumpulan dan analisis data penggunaan, yang membantu mendeteksi pengecualian dan memberikan umpan balik untuk perbaikan perangkat lunak. Proses penelusuran dan diagnostik masalah secara terus-menerus sangat penting untuk mengarahkan pengembangan aplikasi selama siklus rilis.

 

 Kelebihan & Kekurangan DevOps

Penerapan DevOps memiliki banyak keuntungan, namun juga terdapat beberapa kelemahan dalam penggunaannya.

Berikut adalah kelebihan dan kekurangan dari penggunaan metode DevOps:

Kelebihan:

  • Siklus pengembangan menjadi lebih singkat
  • Kualitas dan fleksibilitas meningkat
  • Biaya menjadi lebih efisien
  • Pengendalian risiko dan pemulihan yang lebih baik
  • Dapat memperkuat praktik keamanan

Kekurangan:

  • Penerapan DevOps membutuhkan perubahan budaya dan kebiasaan dalam proses pengembangan proyek
  • Memerlukan tenaga ahli di bidang rekayasa perangkat lunak
  • Membutuhkan kolaborasi yang sangat kuat


2. Agile Unified Process

Definisi

    Agile Unified Process (AUP) adalah versi yang lebih sederhana dari Rational Unified Process (RUP) yang dikembangkan oleh Scott Ambler. Seperti halnya RUP, metode pengembangan perangkat lunak tangkas ini mendukung perencanaan yang adaptif. Pendekatan ini juga mendorong pengembangan yang berkelanjutan serta perbaikan secara terus-menerus, sehingga memungkinkan respons yang cepat dan fleksibel terhadap perubahan. (J. Veronica, Diakses 13 Oktober 2024, Rekayasa Perangkat Lunak -- Agile Unified Process)

Bagan / Diagram alur

Diagram alur Agile Unified Process

 

Fase-Fase dalam Agile Unified Process:

  1. Inception (Permulaan)
    Pada fase ini, tim fokus pada penentuan visi proyek dan tujuan utama. Hal ini mencakup pemodelan awal dan persiapan lingkungan proyek. Kegiatan implementasi dan pengujian minimal dilakukan pada tahap ini.

  2. Elaboration (Elaborasi)
    Fase ini bertujuan untuk mengembangkan arsitektur yang lebih mendetail dan mengatasi risiko utama. Kegiatan pemodelan dan implementasi meningkat signifikan pada fase ini, dengan lebih banyak pengujian dan manajemen proyek. Pengelolaan konfigurasi juga mulai diterapkan.

  3. Construction (Konstruksi)
    Fase ini adalah inti dari pengembangan perangkat lunak. Kegiatan implementasi menjadi sangat intensif karena tim mengembangkan produk yang lebih fungsional. Pengujian dan pengelolaan lingkungan meningkat seiring perkembangan perangkat lunak, sementara deployment (penerapan) mulai dilakukan di akhir fase ini.

  4. Transition (Transisi)
    Pada fase ini, perangkat lunak dipersiapkan untuk diluncurkan ke pengguna akhir. Fokus utama adalah deployment penuh, dan aktivitas seperti pengelolaan lingkungan, pengujian, serta manajemen konfigurasi berlangsung hingga produk siap digunakan.

Aktivitas dalam AUP:

  • Modeling (Pemodelan): Aktivitas pemodelan untuk merancang sistem dilakukan di setiap fase, tetapi paling intensif di fase Inception dan Elaboration.
  • Implementation (Implementasi): Aktivitas pengembangan kode yang paling intensif terjadi pada fase Construction, meskipun mulai pada fase Elaboration.
  • Test (Pengujian): Pengujian dimulai sejak awal tetapi semakin meningkat seiring pengembangan berlangsung, untuk memastikan kualitas perangkat lunak.
  • Deployment (Penerapan): Pada fase Transition, perangkat lunak mulai disiapkan dan diluncurkan ke pengguna akhir.
  • Configuration Management (Manajemen Konfigurasi): Melibatkan pengelolaan perubahan perangkat lunak dan diterapkan sejak fase Elaboration.
  • Project Management (Manajemen Proyek): Manajemen proyek berjalan sepanjang siklus pengembangan untuk memastikan kelancaran semua aspek pengembangan.
  • Environment (Lingkungan): Penyediaan dan pengelolaan lingkungan pengembangan dilakukan di semua fase, memastikan tim memiliki infrastruktur yang diperlukan.

 

 Kelebihan & Kekurangan Agile Unified Process

Penerapan Agile Unified Process memiliki banyak keuntungan, namun juga terdapat beberapa kelemahan dalam penggunaannya.

Berikut adalah kelebihan dan kekurangan dari penggunaan metode Agile Unified Process:

Kelebihan:

  • Kepuasan pelanggan tercapai melalui pengiriman perangkat lunak yang bermanfaat secara cepat dan berkelanjutan.
  • Fokus lebih pada individu dan interaksi daripada pada proses dan alat. Pelanggan, pengembang, dan penguji terus berinteraksi secara berkesinambungan.
  • Perangkat lunak yang berfungsi sering dikirimkan (dalam hitungan minggu, bukan bulan).
  • Komunikasi tatap muka adalah bentuk interaksi paling efektif.
  • Kerja sama erat antara pemangku kepentingan bisnis dan pengembang dilakukan setiap hari.
  • Perhatian terus-menerus terhadap keunggulan teknis dan desain yang baik.
  • Adaptasi secara rutin terhadap perubahan keadaan sangat ditekankan.
  • Bahkan perubahan persyaratan di tahap akhir diterima dengan baik.

 Kekurangan:

  • Perencanaan sumber daya yang sulit: Tim tidak bisa mengetahui hasil akhir sejak awal, sehingga sulit memprediksi kebutuhan sumber daya, waktu, dan biaya yang tepat, terutama jika proyek semakin besar dan kompleks.
  • Dokumentasi kurang lengkap: Dokumentasi hanya dibuat saat dibutuhkan selama proyek berjalan, bukan di awal. Ini membuatnya sering kurang detail dan kadang tidak diutamakan.
  • Hasil akhir yang terpecah-pecah: Karena produk dikirim secara bertahap, hasil akhirnya bisa menjadi terfragmentasi, karena bagian-bagian proyek tidak selalu menyatu dengan baik.
  • Rencana awal yang kurang jelas: AUP tidak membutuhkan perencanaan yang rinci sejak awal, sehingga proyek sering tidak memiliki visi yang jelas tentang hasil akhir.
  • Sulitnya melacak kemajuan: Karena AUP berjalan secara bertahap, sulit untuk melihat gambaran lengkap dari awal hingga akhir proyek, sehingga pelacakan kemajuan bisa menjadi menantang.

 

 3. Crystal

Definisi

    Metode Kristal adalah kerangka kerja agile yang dianggap sebagai metodologi ringan atau agile yang fokus pada individu dan interaksinya. Metode ini menggunakan kode warna untuk menunjukkan risiko signifikan terhadap kehidupan manusia. Metode ini terutama digunakan untuk proyek jangka pendek oleh tim pengembang yang bekerja di satu ruang kerja. Di antara beberapa model Agile Software Development Life Cycle (SDLC), Kristal dianggap sebagai salah satu model Agile SDLC. (Satya Brata Jena, 11 Juni 2024, Crystal Method in Agile Development/Framework)

Bagan / Diagram alur

 CRYSTAL FAMILY

Metode Crystal terdiri dari banyak varian, seperti Crystal Clear, Crystal Yellow, Crystal Red, Crystal Sapphire, Crystal Orange Web, dan Crystal Diamond.

  • Crystal Clear: Tim terdiri dari 1-6 anggota dan cocok untuk proyek jangka pendek di mana anggota bekerja di satu ruang kerja.
  • Crystal Yellow: Memiliki ukuran tim kecil, yaitu 7-20 anggota, di mana umpan balik diambil dari pengguna nyata. Varian ini melibatkan pengujian otomatis yang mempercepat pemecahan bug dan mengurangi penggunaan dokumentasi yang berlebihan.
  • Crystal Orange: Memiliki ukuran tim 21-40 anggota, di mana tim dibagi sesuai dengan keterampilan fungsional mereka. Proyek ini biasanya berlangsung selama 1-2 tahun dan rilis diperlukan setiap 3 hingga 4 bulan.
  • Crystal Orange Web: Juga memiliki ukuran tim 21-40 anggota, di mana proyeknya memiliki basis kode yang terus berkembang dan digunakan oleh publik. Ini juga mirip dengan Crystal Orange, tetapi di sini mereka tidak menangani satu proyek tunggal, melainkan serangkaian inisiatif yang memerlukan pemrograman.
  • Crystal Red: Pengembangan perangkat lunak dipimpin oleh 40-80 anggota di mana tim dapat dibentuk dan dibagi sesuai kebutuhan.
  • Crystal Maroon: Melibatkan proyek berukuran besar dengan ukuran tim 80-200 anggota, di mana metode yang digunakan berbeda dan sesuai dengan kebutuhan perangkat lunak.
  • Crystal Diamond & Sapphire: Varian ini digunakan dalam proyek besar di mana terdapat risiko potensial terhadap kehidupan manusia.

 

 Kelebihan & Kekurangan DevOps

Penerapan Crystal memiliki banyak keuntungan, namun juga terdapat beberapa kelemahan dalam penggunaannya.

Berikut adalah kelebihan dan kekurangan dari penggunaan metode Crystal:

Kelebihan:

  • Kolaborasi: Memfasilitasi dan meningkatkan komunikasi serta akuntabilitas tim.
  • Adaptabilitas: Pendekatan adaptif memungkinkan tim untuk merespons dengan baik terhadap tuntutan yang berubah-ubah.
  • Pemberdayaan: Memberi kesempatan kepada tim untuk bekerja dengan cara yang mereka anggap paling efektif.
  • Efisiensi: Tim berkomunikasi secara langsung satu sama lain, yang mengurangi beban manajemen.
  • Pengiriman yang lebih cepat: Kerangka kerja ini memungkinkan tim untuk mengirimkan perangkat lunak yang berfungsi lebih cepat, yang dapat membantu mendapatkan keunggulan kompetitif di pasar.
  • Kualitas yang lebih tinggi: Kerangka kerja ini menekankan pentingnya kualitas, memungkinkan tim untuk mendeteksi dan memperbaiki cacat lebih awal dalam proses pengembangan, sehingga menghasilkan produk berkualitas lebih tinggi.
  • Peningkatan kepuasan pelanggan: Kerangka kerja ini mendorong keterlibatan pelanggan, memungkinkan tim untuk menghasilkan produk yang memenuhi kebutuhan pelanggan, yang berdampak pada kepuasan pelanggan yang lebih tinggi.
  • Peningkatan produktivitas: Kerangka kerja ini memungkinkan tim untuk fokus pada penyampaian fitur dengan nilai tertinggi, yang dapat meningkatkan produktivitas dan mengurangi pemborosan.
  • Fleksibilitas: Kerangka kerja ini sangat adaptif, memungkinkan tim untuk menyesuaikan diri dengan persyaratan yang berubah dan membuat keputusan berdasarkan umpan balik waktu nyata.
  • Otonomi: Kerangka kerja ini mendorong pemberdayaan, memungkinkan anggota tim untuk memiliki tanggung jawab atas pekerjaan mereka dan membuat keputusan yang berkontribusi pada keberhasilan proyek.
  • Pengurangan risiko: Kerangka kerja ini mendukung manajemen risiko, memungkinkan tim untuk mengidentifikasi dan mengurangi risiko potensial lebih awal dalam proses pengembangan, sehingga mengurangi kemungkinan kegagalan proyek.

Kekurangan:

  • Ambiguitas: Ketidakadaan rencana yang sudah ditentukan sebelumnya dapat menyebabkan kebingungan dan hilangnya fokus.
  • Kekacauan: Kurangnya struktur dapat memperlambat tim yang kurang berpengalaman.
  • Ketidakpastian: Tidak jelas bagaimana tim jarak jauh dapat berbagi pengetahuan secara informal.
  • Kurangnya kepastian: Penekanan kerangka kerja pada adaptabilitas dan fleksibilitas dapat mengakibatkan kurangnya kepastian, sehingga menyulitkan perencanaan dan estimasi waktu serta anggaran proyek.
  • Kurangnya dokumentasi: Fokus kerangka kerja pada komunikasi dan kolaborasi dapat menyebabkan kurangnya dokumentasi, sehingga menyulitkan untuk melacak kemajuan dan mempertahankan catatan keputusan.
  • Skalabilitas terbatas: Kerangka kerja ini mungkin tidak cocok untuk proyek besar atau kompleks, karena kurangnya struktur dan rencana yang sudah ditentukan dapat menyulitkan pengelolaan tim dalam skala besar.
  • Ketergantungan pada keahlian tim: Kerangka kerja ini sangat bergantung pada keahlian dan keterampilan tim pengembang, yang mungkin tidak cocok untuk tim dengan pengalaman atau pengetahuan yang terbatas.
  • Kurangnya kejelasan tentang peran dan tanggung jawab: Penekanan kerangka kerja pada tim yang mengorganisasi diri sendiri dapat mengakibatkan kurangnya kejelasan mengenai peran dan tanggung jawab, yang dapat menyebabkan kebingungan dan hilangnya fokus.
  • Ketidakmampuan menangani persyaratan regulasi: Kerangka kerja ini mungkin tidak cocok untuk proyek dengan persyaratan regulasi yang ketat, karena kurangnya dokumentasi dan struktur mungkin tidak memenuhi standar kepatuhan.
  • Kurangnya kejelasan tentang peran dan tanggung jawab: Penekanan kerangka kerja pada tim yang mengorganisasi diri sendiri dapat mengakibatkan kurangnya kejelasan mengenai peran dan tanggung jawab, yang dapat menyebabkan kebingungan dan hilangnya fokus.
  • Ketidakmampuan menangani persyaratan regulasi: Kerangka kerja ini mungkin tidak cocok untuk proyek dengan persyaratan regulasi yang ketat, karena kurangnya dokumentasi dan struktur mungkin tidak memenuhi standar kepatuhan.

 


Komentar

Postingan populer dari blog ini

Perbandingan 2 jurnal DSDM oleh Moses Simanjorang

Penggunaan Tools Manajemen Kebutuhan (MS Project) Oleh Moses Simanjorang