CodeGym /Java Blog /Acak /Semua yang perlu Anda ketahui tentang metodologi pengemba...
John Squirrels
Level 41
San Francisco

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

Dipublikasikan di grup Acak
Pengembangan perangkat lunak adalah proses bisnis yang kompleks. Ini berarti bahwa profesional TI perlu berbicara bahasa pengoptimalan, perencanaan, dan penetapan biaya. Pemahaman tentang konsep manajemen memberi pengusaha dan pengembang keuntungan besar dan membantu membawa kolaborasi ke tingkat berikutnya. Semua yang perlu Anda ketahui tentang metodologi pengembangan perangkat lunak: tren, prinsip, dan jebakan untuk pemula - 1

Perhatian, pemula! Model, metodologi, dan kebingungan umum

Untuk memulai, kita perlu membuat klarifikasi penting: model pengembangan perangkat lunak dan metodologi pengembangan perangkat lunak terpisah dan berbeda. Model memprediksi bagaimana suatu sistem akan berperilaku. Metodologi diperlukan agar sistem dapat bekerja sebagaimana mestinya. Model dan metodologi pengembangan perangkat lunak yang membingungkan adalah prosedur operasi standar untuk setiap pemula TI, jadi ini tidak dianggap sebagai kesalahan besar. Contoh model adalah model air terjun klasik , dengan perkembangan liniernya, definisi tujuan yang jelas untuk setiap tahap, dan kontrol ketat terhadap tenggat waktu. Model lainnya adalah model spiral, dengan fokus pada deteksi dini dan mitigasi risiko proyek. Perkembangan spiral dimulai dari yang kecil, pertama memecahkan masalah lokal, dan kemudian berlanjut ke masalah yang lebih kompleks. Terakhir, model lain adalah pengembangan iteratif dan inkremental (IID) , di mana siklus hidup proyek dipecah menjadi serangkaian iterasi, yang masing-masing menyerupai "proyek mini". Secara umum, model adalah gambaran dari proses pengembangan perangkat lunak . Tetapi metodologi adalah sistem untuk mengendalikan, mengevaluasi, dan memantau pekerjaan pada tugas yang diberikan. Metodologi adalah tongkat dan wortel zaman modern, yang diperlukan untuk mengontrol setiap langkah dalam proses pembangunan. Mereka dipilih berdasarkan arah proyek, anggarannya, dan tenggat waktu pelaksanaan produk akhir. Terlebih lagi, metodologi dapat dipilih berdasarkan temperamen pemimpin proyek dan timnya. Bahkan berdasarkan filosofi perusahaan atau pelanggan. Mari kita lihat metodologi yang paling populer.

1. scrum

Scrum adalah metode manajemen proyek yang gesit. Ini didasarkan pada "sprint", atau iterasi singkat, sangat terbatas dalam waktu (biasanya 2-4 minggu). Ini meminimalkan durasi rapat, tetapi meningkatkan frekuensinya. Setiap sprint terdiri dari daftar tugas yang harus diselesaikan pada akhir iterasi, dan masing-masing memiliki "bobot" tersendiri. Selama pertemuan, tim membahas apa yang telah dilakukan anggota tim, apa yang mereka rencanakan, dan masalah apa yang ada. Scrum menggunakan backlog untuk perencanaan. Dalam pendekatan ini, tim umumnya memiliki scrum master. Orang ini membantu tim untuk bekerja tanpa gangguan dan menciptakan lingkungan yang nyaman bagi tim. Proyek ini juga akan memiliki seseorang yang berperan sebagai pemilik produk. Orang ini adalah kepala pengembangan, memantau produk, dan bertindak sebagai penghubung utama antara apa yang diminta pelanggan dan apa yang dihasilkan tim.

Kelebihan:

  • kemampuan untuk meluncurkan proyek dengan cepat dengan anggaran serendah mungkin;
  • pemantauan kemajuan harian, demo proyek yang sering;
  • kemampuan untuk melakukan penyesuaian selama proyek berlangsung.

Kontra:

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

Untuk siapa ini?

Sistem seperti ini cocok untuk proyek hingga sepuluh orang, baik yang independen maupun yang ada di perusahaan besar. Ini nyaman jika tim memiliki banyak pekerjaan dan siklus hidup yang panjang yang memaksa mereka untuk berubah dan beradaptasi dengan kondisi pasar yang baru.

2. Kanban

Fitur terpenting Kanban adalah visualisasi siklus hidup proyek. Kolom untuk melakukan item pekerjaan dibuat. Item pekerjaan ditangani secara individual. Kolom ditandai dengan status seperti: To do, In progress, Code review, In testing, Done (tentu saja, nama kolom dapat bervariasi). Tujuan setiap anggota tim adalah mengurangi jumlah item pekerjaan di kolom pertama. Pendekatan Kanban intuitif dan membantu Anda memahami di mana letak masalahnya. Struktur Kanban tidak diperbaiki secara definitif dan tidak dapat dibatalkan: tergantung pada spesifikasi proyek, Anda dapat menambahkan kolom improvisasi. Misalnya, beberapa tim menggunakan sistem di mana Anda perlu menentukan aturan selesai untuk item pekerjaan sebelum melakukannya. Dalam hal ini, dua kolom ditambahkan: Specify (tentukan parameter) dan Implement (mulai bekerja).

Kelebihan:

  • fleksibilitas dalam perencanaan. Tim berkonsentrasi hanya pada pekerjaan saat ini, prioritas tugas juga ditentukan;
  • visibilitas. Saat semua peserta memiliki akses ke data, masalah global lebih mudah dikenali;
  • keterlibatan yang tinggi dalam proses pembangunan. Memvisualisasikan proses meningkatkan pengorganisasian diri dan pengendalian diri.

Kontra:

  • tidak bekerja dengan tim lebih dari lima orang;
  • tidak dimaksudkan untuk perencanaan jangka panjang;
  • tidak cocok untuk tim yang tidak termotivasi. Kanban tidak memiliki tenggat waktu untuk setiap item pekerjaan. Metodologi juga tidak menetapkan hukuman untuk keterlambatan.

Untuk siapa ini?

Kanban bekerja dengan baik di perusahaan di mana tim termotivasi untuk tumbuh dan mencapai hasil. Seharusnya sudah jelas — ini untuk tim kecil. Bahkan mungkin detasemen atau bagian dari tim.

3. Rasional Unified Process (RUP)

Metodologi RUP menggunakan model pengembangan iteratif. Di akhir setiap iterasi (yang memakan waktu 2 hingga 6 minggu), tim harus mencapai tujuan yang direncanakan dan mendapatkan versi proyek yang berfungsi, meskipun sementara. RUP panggilan untuk membagi proyek menjadi empat fase . Di setiap fase, pengerjaan produk generasi berikutnya dilakukan: permulaan, elaborasi, konstruksi, dan transisi. Pada akhir fase, tonggak proyek tercapai. Momen ketika tim mengevaluasi hasilnya dapat dianggap sebagai tonggak proyek. Ini berarti metodologi menyiratkan bahwa fitur utama dirilis pada fase pertama, dan penambahan ditambahkan pada fase berikutnya.

Kelebihan:

  • memungkinkan untuk menghadapi perubahan tugas, baik dari pelanggan maupun perubahan yang muncul selama bekerja;
  • memastikan peningkatan berkelanjutan dari produk. Selama iterasi, Anda dapat mengevaluasi proyek dengan cermat;
  • memungkinkan untuk mengidentifikasi dan menghilangkan risiko pada tahap awal pekerjaan, serta secara efektif mengontrol kualitas pengembangan.

Kontra:

  • Metodologi ini agak rumit dan sulit diterapkan dalam tim atau perusahaan kecil;
  • tergantung pada kemampuan para ahli untuk menetapkan tugas;
  • membutuhkan dokumentasi persyaratan yang berlebihan.

Untuk siapa ini?

Proyek besar dengan persyaratan dan risiko yang ditetapkan dengan jelas yang dipahami dengan baik, saat produk perlu dirilis secepat mungkin. Bahkan dengan mengorbankan fungsionalitas, untuk menempati ceruk Anda dengan cepat dan baru kemudian menambahkan sentuhan akhir.

Ada banyak metodologi, tetapi satu tren

Selain scrum dan Kanban, yang tidak dapat disangkal populer dan didasarkan pada prinsip-prinsip gesit , serta metodologi RUP yang kuat dan berulang, perusahaan menggunakan banyak variasi metodologi. Satu perusahaan mungkin lebih dekat dengan pemrograman ekstrem dan membuat keputusan tercepat dan paling sederhana. Yang lain mungkin lebih dekat dengan pengembangan yang digerakkan oleh tes. Lain masih mungkin lebih suka pengembangan aplikasi cepat (RAD). Yang mengatakan, ada kecenderungan yang kuat dan tidak perlu dipertanyakan lagi untuk menggunakan beberapa metodologi secara bersamaan. Atau bahkan menggabungkan model dan metodologi ke dalam sistem manajemen yang unik. Perusahaan saat ini berusaha keras untuk menghilangkan hambatan birokrasi dan menciptakan suasana kerja tim yang bersatu dalam organisasi, tanpa mengalihkan tanggung jawab antara departemen dan unit organisasi. Menurut Aliansi Scrum, 70% perusahaan IT menggunakan scrum. Diantaranya adalah raksasa seperti Google, Amazon, Salesforce, Microsoft, dan Adobe. Startup dan proyek muda lebih condong ke Kanban, tetapi Toyota dan, misalnya, para gamer di Wargaming, juga menggunakannya. Scrum adalah alat perencanaan, sedangkan Kanban adalah untuk memantau kemajuan. Adapun RUP, paling sering digunakan oleh perusahaan Barat dengan 50-200 karyawan dan pendapatan $1-10 juta. Namun, IBM memodifikasi RUP untuk mendekati prinsip tangkas, merilis metodologi OpenUP (RUP, tapi gesit). Metodologi lincah yang dibanggakan ini sekarang mendorong dunia TI . Ini bukan hanya iseng-iseng — ini masih inovatif, dan sebenarnya digunakan di banyak perusahaan besar. Agile digunakan di Silicon Valley. Facebook dan Uber menggunakannya.

Garis bawah

Setiap proyek memiliki metodologi pengembangan perangkat lunaknya sendiri, yang bergantung pada tim, pendanaan, tenggat waktu, dan kebutuhan pelanggan. Tidak ada teknik manajemen universal: bahkan metodologi tangkas yang sangat populer tidak dapat memastikan pendekatan terbaik untuk proses pengembangan. Akibatnya, metodologi dipilih dengan hati-hati, terkadang bahkan berdasarkan prinsip. Sedemikian rupa sehingga kita dapat menarik kesimpulan tentang perusahaan itu sendiri atau tentang pelanggannya dengan melihat metodologinya. Metodologi dicampur, dilengkapi dengan model, dan diadaptasi. Sedemikian rupa sehingga mereka memunculkan pendekatan baru. Konon, ranah manajemen pada akhirnya tetap berada di tangan scrum dan Kanban, dengan elemen tak terduga dari model air terjun atau metodologi RUP berulang.
Lebih banyak membaca:
Situs web: Buku:
  • Andrew Stelman, Jennifer Greene: "Belajar Tangkas";
  • Per Kroll, Bruce MacIsaac: «Kelincahan dan Disiplin Menjadi Mudah: Praktik dari OpenUP dan RUP";
  • Mike Cohn: "Sukses dengan Agile: Pengembangan Perangkat Lunak Menggunakan Scrum";
  • Robert C. Martin: "Pengembangan Perangkat Lunak Agile: Prinsip, Pola, Praktik";
  • Marcus Hammarberg, Joakim Sunden: "Kanban Beraksi";
  • I. Jacobson, G. Booch, J. Rumbaugh: "Proses Pengembangan Perangkat Lunak Terpadu".
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION