JavaRush /Java Blog /Random-ID /Semua yang perlu Anda ketahui tentang metodologi pengemba...

Semua yang perlu Anda ketahui tentang metodologi pengembangan perangkat lunak: tren, prinsip, dan kendala untuk pemula

Dipublikasikan di grup Random-ID
Pengembangan perangkat lunak adalah proses bisnis yang kompleks. Artinya TI perlu berbicara dalam bahasa optimasi, perencanaan dan perhitungan. Semua yang perlu Anda ketahui tentang metodologi pengembangan perangkat lunak: tren, prinsip, dan kendala untuk pemula - 1Memahami konsep manajemen memberikan keuntungan besar bagi pemberi kerja dan pengembang serta membantu membawa kolaborasi ke tingkat berikutnya.

Catatan untuk pemula: model, metodologi, dan kebingungan umum

Klarifikasi penting untuk memulai: ada model terpisah untuk pengembangan perangkat lunak dan metodologi terpisah untuk pengembangan ini. Model memprediksi perilaku masa depan suatu sistem. Metodologi diperlukan agar sistem dapat bekerja sebagaimana mestinya. Membingungkan model dan metodologi pengembangan perangkat lunak adalah tugas suci setiap pemula TI, jadi ini tidak dianggap sebagai kesalahan besar. Namun, modelnya adalah Air Terjun berjenjang klasik , dengan linearitasnya, penetapan tujuan yang jelas untuk setiap tahap, dan kontrol ketat terhadap tenggat waktu. Modelnya adalah Spiral , dengan fokus pada identifikasi awal dan mitigasi risiko proyek. Pembangunan spiral dimulai dalam skala kecil, pertama-tama memecahkan masalah-masalah lokal, dan kemudian masalah-masalah yang lebih kompleks. Model terakhir adalah IID , yang memecah siklus hidup proyek menjadi serangkaian iterasi, yang masing-masing menyerupai “proyek mini”. Secara umum model adalah sesuatu yang menggambarkan proses pengembangan perangkat lunak . Tetapi metodologi adalah sistem untuk mengendalikan, mengevaluasi dan memantau pekerjaan pada tugas yang diberikan. Metodologi adalah inti dari pembangunan modern, yang diperlukan untuk mengendalikan setiap mata rantai dalam proses pembangunan. Mereka dipilih berdasarkan arah proyek, anggarannya dan waktu pembuatan produk akhir. Selain itu, metodologi dapat dipilih berdasarkan temperamen manajer proyek dan timnya. Bahkan berdasarkan filosofi perusahaan atau pelanggan. Mari kita lihat metodologi yang paling populer.

1. Metodologi scrum

Scrum adalah metode manajemen proyek yang tangkas . Ini didasarkan pada "sprint" - iterasi singkat, waktu yang sangat terbatas (biasanya 2-4 minggu). Durasi pertemuan dikurangi seminimal mungkin, namun frekuensinya ditingkatkan. Setiap sprint terdiri dari daftar tugas hingga akhir iterasi, dan masing-masing tugas memiliki “bobot” tersendiri. Dalam rapat, tim mendiskusikan siapa yang melakukan apa, apa yang akan mereka lakukan, dan permasalahan apa yang ada. Scrum menggunakan jurnal sprint untuk perencanaan. Dalam pendekatan ini, seorang scrum master sering kali muncul di tim, yang mengatur kerja berkelanjutan seluruh tim, menciptakan kondisi yang nyaman untuknya. Juga dalam proyek ini, peran Pemilik Produk muncul - manajer pengembangan, orang yang memantau produk dan bertindak sebagai penghubung utama antara permintaan klien dan hasil tim.

Kelebihan:

  • peluncuran proyek cepat dengan anggaran serendah mungkin;
  • pemantauan harian kemajuan pekerjaan, seringnya demonstrasi proyek;
  • kemampuan untuk membuat perubahan seiring berjalannya proyek.

Minus:

  • kesulitan dalam menyelesaikan kontrak karena kurangnya anggaran tetap;
  • tidak bekerja dengan kualifikasi tim yang rendah, tenggat waktu atau anggaran kerja yang diremehkan;
  • kemampuan untuk terus melakukan perubahan di antara sprint dapat menimbulkan kebingungan.

Cocok untuk siapa:

Sistem ini cocok untuk proyek yang melibatkan hingga sepuluh orang - independen atau dalam perusahaan besar. Hal ini berguna jika tim memiliki banyak pekerjaan dan siklus hidup yang panjang, yang memaksa mereka untuk berubah dan beradaptasi dengan kondisi pasar baru.

2. Metodologi Kanban

Fitur terpenting Kanban adalah visualisasi siklus hidup proyek . Kolom dibuat untuk menyelesaikan tugas yang diserahkan secara individual. Kolom ditandai dengan penanda seperti: Yang harus dilakukan, Sedang berlangsung, Peninjauan kode, Sedang pengujian, Selesai (nama kolom tentu saja bisa berubah). Tujuan setiap anggota tim adalah mengurangi jumlah tugas di kolom pertama. Pendekatan Kanban bersifat visual dan membantu Anda memahami letak masalahnya. Struktur Kanban tidak ditentukan secara pasti dan tidak dapat dibatalkan: tergantung pada spesifikasi proyek, kolom improvisasi dapat ditambahkan. Misalnya, beberapa tim menggunakan sistem yang mengharuskan mereka menentukan kriteria kesiapan tugas sebelum melaksanakannya. Kemudian dua kolom ditambahkan - tentukan (tentukan parameternya) dan jalankan (mulai bekerja).

Kelebihan:

  • fleksibilitas perencanaan. Tim hanya berkonsentrasi pada pekerjaan saat ini, prioritas tugas juga ditentukan;
  • visibilitas. Ketika semua pelaku mempunyai akses terhadap data, isu-isu global akan lebih mudah diperhatikan;
  • keterlibatan yang tinggi dalam proses pembangunan. Visualisasi proses meningkatkan pengorganisasian diri dan pengendalian diri.

Minus:

  • tidak bekerja dengan tim lebih dari lima orang;
  • tidak dimaksudkan untuk perencanaan jangka panjang;
  • tidak cocok untuk bekerja dalam tim tanpa motivasi. Di Kanban, tidak ada tenggat waktu yang ditetapkan untuk setiap tugas, dan metodologinya tidak memberikan penalti atas keterlambatan.

Cocok untuk siapa:

Kanban bekerja dengan baik di perusahaan di mana timnya termotivasi untuk berkembang dan mencapai hasil. Seperti yang sudah jelas, sebuah tim kecil. Bahkan mungkin sebuah divisi atau bagian dari sebuah tim.

3. Metodologi RUP

Metodologi RUP menggunakan model pengembangan berulang. Di akhir setiap iterasi (yang memakan waktu 2 hingga 6 minggu), tim harus mencapai tujuan yang direncanakan dan memiliki versi proyek yang bersifat sementara namun berhasil. RUP melibatkan pembagian proyek menjadi empat fase , yang masing-masing fase pekerjaan dilakukan pada produk generasi baru: fase inisiasi proyek, penyempurnaan, konstruksi, dan implementasi. Di akhir fase, penanda penyelesaian tahapan (Project Milestone) dimasukkan. Project Milestone dapat dianggap sebagai momen ketika tim mengevaluasi hasil yang dicapai. Akibatnya, metodologi ini menyiratkan bahwa fitur-fitur utama dirilis pada fase pertama, dan penambahan ditambahkan pada fase berikutnya.

Kelebihan:

  • memungkinkan Anda untuk mengatasi perubahan tugas yang datang dari klien dan tugas yang timbul selama bekerja;
  • memastikan perbaikan berkelanjutan pada produk. Selama iterasi, desain dapat diperiksa dengan cermat;
  • memungkinkan Anda mengidentifikasi dan menghilangkan risiko pada tahap awal pekerjaan, serta mengontrol kualitas pembangunan secara efektif.

Minus:

  • metode yang agak rumit yang sulit diterapkan dalam tim atau perusahaan kecil;
  • ketergantungan pada kemampuan para ahli dalam menetapkan tugas;
  • membutuhkan dokumentasi persyaratan yang berlebihan.

Cocok untuk siapa:

Proyek besar dengan persyaratan yang jelas dan risiko yang jelas, ketika produk harus dirilis secepat mungkin. Bahkan dengan mengorbankan fungsionalitas, untuk segera menempati ceruk pasarnya dan baru kemudian menyempurnakan nuansanya.

Banyak metodologi, satu tren

Selain Scrum dan Kanban yang sangat populer, yang didasarkan pada prinsip fleksibilitas dengan nama umum “Agile” , serta RUP berulang yang ulet, perusahaan bekerja dengan banyak variasi metodologi. Beberapa orang lebih menyukai pemrograman ekstrem dan membuat keputusan tercepat dan paling sederhana, beberapa lebih menyukai pengembangan berbasis pengujian, dan yang lain lebih menyukai pengembangan aplikasi cepat (RAD). Pada saat yang sama, tren utama dan tanpa syarat adalah penggunaan beberapa metodologi secara bersamaan . Atau bahkan menggabungkan model dan metodologi ke dalam sistem kendali yang unik. Semua yang perlu Anda ketahui tentang metodologi pengembangan perangkat lunak: tren, prinsip, dan kendala untuk pemula - 2Perusahaan modern berusaha untuk menghilangkan hambatan birokrasi dan menciptakan suasana kerja tim secara umum dalam organisasi, tanpa mengalihkan tanggung jawab antar departemen dan blok. Menurut laporan Scrumalliance , 70% perusahaan IT menggunakan Scrum. Diantaranya adalah raksasa seperti Google, Amazon, Salesforce, Microsoft, Adobe. Startup dan proyek muda lebih condong ke Kanban, tetapi juga digunakan oleh Toyota dan, misalnya, gamer dari Wargaming. Perusahaan CIS yang lebih sederhana Prom.ua, Bigl.ua, Kabanchik.ua menggunakan metodologi Scrum dan Kanban secara bersamaan, tetapi untuk tugas yang berbeda. Scrum - sebagai alat perencanaan, Kanban - untuk memantau kemajuan pekerjaan. Sedangkan RUP paling sering dilakukan oleh perusahaan Barat dengan 50-200 karyawan dan pendapatan 1-10 juta dolar. Namun pada saat yang sama, IBM mengubah RUP untuk mendekati prinsip Agile dengan merilis metodologi OpenUP - “RUP, only agile.” Kelincahan Agile yang dibanggakan tersebut kini menguasai lanskap TI . Ini bukan sekadar tren saat ini - ini masih inovatif, dan benar-benar berhasil di banyak perusahaan besar. Agile digunakan di Silicon Valley dan digunakan oleh Facebook dan Uber.

Intinya

Setiap proyek memiliki metodologi pengembangan perangkat lunaknya sendiri, bergantung pada tim, pendanaan, waktu, dan kebutuhan pelanggan. Tidak ada teknologi manajemen yang universal: bahkan Agile yang sangat populer pun tidak dapat memberikan pendekatan terbaik untuk proses pengembangan. Oleh karena itu, metodologi dipilih dengan hati-hati, dan terkadang bahkan secara mendasar. Sedemikian rupa sehingga Anda dapat menggunakannya untuk menarik kesimpulan tentang perusahaan itu sendiri atau pelanggannya. Metodologinya dicampur, dilengkapi dengan model dan disesuaikan dengan kebutuhan mereka sendiri. Sedemikian rupa sehingga mereka memunculkan pendekatan-pendekatan baru. Meskipun pada akhirnya ranah manajemen tetap berada di tangan Scrum dan Kanban, dengan masuknya model Waterfall atau RUP berulang secara tidak terduga.
Apa lagi yang harus dibaca
Situs web: Buku:
  • Andrew Stelman, Jennifer Greene: “Belajar Agile”;
  • Per Kroll, Bruce MacIsaac: “Kelincahan dan Disiplin Menjadi Mudah: Latihan dari OpenUP dan RUP”;
  • Mike Cohn: Scrum. Pengembangan tangkas";
  • Robert K. Martin: “Pengembangan perangkat lunak yang cepat. Prinsip, contoh, praktek";
  • Markus Hammarberg, Joakim Sundén: “Kanban Beraksi”;
  • A Jacobson, G. Booch, J. Rumbaugh: “Proses Pengembangan Perangkat Lunak Terpadu.”
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION