Apa yang dimaksud dengan pengembangan Agile?

Pengembangan tangkas adalah istilah yang digunakan untuk menggambarkan pengembangan perangkat lunak berulang. Pengembangan perangkat lunak berulang mempersingkat siklus hidup DevOps dengan menyelesaikan pekerjaan dengan kenaikan singkat, biasanya disebut sprint. Sprint biasanya berdurasi satu hingga empat minggu. Pengembangan tangkas sering kali dikontraskan dengan pengembangan tradisional atau air terjun, yang merencanakan proyek yang lebih besar di muka dan menyelesaikannya sesuai dengan rencana.

Memberikan kode kualitas produksi setiap sprint mengharuskan tim pengembangan Agile memperhitungkan kecepatan yang dipercepat. Semua pengodean, pengujian, dan verifikasi kualitas harus dilakukan masing-masing dan setiap sprint. Hasilnya bisa kurang dari harapan, kecuali tim disiapkan dengan benar. Meskipun kekecewaan ini menawarkan peluang pembelajaran yang hebat, sangat membantu untuk mempelajari beberapa pelajaran utama sebelum memulai.

Artikel ini menjelaskan beberapa faktor keberhasilan utama untuk tim pengembangan Agile:

  • Penyempurnaan backlog yang rajin
  • Mengintegrasikan lebih awal dan sering
  • Meminimalkan utang teknis

Penyempurnaan backlog yang rajin

Tim pengembangan Agile bekerja dari backlog persyaratan, yang sering disebut cerita pengguna. Backlog diprioritaskan, dengan cerita pengguna yang paling penting di bagian atas. Pemilik produk memiliki backlog dan menambahkan, mengubah, serta memprioritaskan ulang cerita pengguna berdasarkan kebutuhan pelanggan.

Image of a Kanban board that contains several columns. In each column, a few cards are visible.

Salah satu tarikan terbesar pada produktivitas tim Agile adalah backlog yang tidak ditentukan dengan baik. Tim tidak dapat diharapkan untuk secara konsisten memberikan perangkat lunak berkualitas tinggi setiap sprint kecuali mereka memiliki persyaratan yang ditentukan dengan jelas.

Tugas pemilik produk adalah memastikan bahwa setiap sprint, teknisi memiliki cerita pengguna yang ditentukan dengan jelas untuk dikerjakan. Cerita pengguna di bagian atas backlog harus selalu siap untuk memulai tim. Gagasan ini disebut penyempurnaan backlog. Menjaga backlog tetap siap untuk tim pengembangan Agile membutuhkan upaya dan disiplin. Untungnya, hal itu sepadan dengan investasi.

Saat Anda menyempurnakan backlog, ingat pertimbangan utama berikut.

  1. Menyempurnakan cerita pengguna sering kali merupakan aktivitas yang berjalan lama. Antarmuka pengguna yang elegan, desain layar yang indah, dan solusi yang menyenangkan pelanggan membutuhkan waktu dan energi untuk dibuat. Pemilik produk yang rajin menyempurnakan cerita pengguna dua hingga tiga sprint terlebih dahulu. Mereka mempertimbangkan perulangan desain dan ulasan pelanggan. Mereka bekerja untuk memastikan setiap cerita pengguna adalah sesuatu yang dikirimkan oleh tim Agile kepada pelanggan dengan bangga.

  2. Cerita pengguna tidak disempurnakan kecuali tim mengatakannya. Tim perlu meninjau cerita pengguna dan setuju bahwa cerita tersebut siap untuk dikerjakan. Jika tim tidak melihat cerita pengguna hingga hari pertama sprint, kemungkinan masalah dapat terjadi.

  3. Cerita pengguna lebih jauh di bawah backlog dapat tetap ambigu. Jangan buang waktu untuk menyempurnakan item berprioritas lebih rendah. Fokus pada bagian atas backlog.

Mengintegrasikan lebih awal dan lebih sering

Integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) menyiapkan tim Anda untuk kecepatan pengembangan Agile. Sesegera mungkin, otomatiskan alur build, pengujian, dan penyebaran. Siapkan otomatisasi tersebut sebagai salah satu tugas pertama yang ditangguhkan tim Anda saat Anda memulai proyek baru.

Dengan otomatisasi, tim menghindari proses penyebaran manual yang lambat, rawan kesalahan, dan intensif waktu. Karena tim merilis setiap sprint, tidak ada waktu untuk melakukan tugas-tugas ini secara manual.

CI/CD juga memengaruhi arsitektur perangkat lunak Anda. Ini memastikan Anda memberikan perangkat lunak yang dapat dibuat dan dapat disebarkan. Ketika tim menerapkan fitur yang sulit disebarkan, mereka menjadi sadar segera jika build dan penyebaran gagal. CI/CD memaksa tim untuk memperbaiki masalah penyebaran saat terjadi. Produk tersebut kemudian selalu siap dikirim.

Abstract bar chart that shows the status of CI builds over time. Most builds succeeded. Only a few failed.

Ada beberapa aktivitas CI/CD utama yang sangat penting untuk pengembangan Agile yang efektif.

  1. Pengujian unit. Pengujian unit adalah pertahanan pertama terhadap kesalahan manusia. Pertimbangkan pengujian unit sebagai bagian dari pengkodan. Periksa pengujian dengan kode. Jadikan pengujian unit sebagai bagian dari setiap build. Pengujian unit yang gagal berarti build yang gagal.

  2. Otomatisasi build. Sistem build harus secara otomatis menarik kode dan menguji langsung dari kontrol sumber saat build dijalankan.

  3. Kebijakan cabang dan build. Konfigurasikan kebijakan cabang dan build yang akan dibuat secara otomatis saat tim memeriksa kode ke cabang tertentu.

  4. Sebarkan ke lingkungan. Siapkan alur rilis yang secara otomatis menyebarkan proyek bawaan ke lingkungan yang meniru produksi.

Meminimalkan utang teknis

Dengan keuangan pribadi, lebih mudah untuk tetap keluar dari utang daripada menggali dari bawahnya. Aturan yang sama berlaku dengan utang teknis. Utang teknis mencakup apa pun yang harus ditangani tim karena pintasan yang diambil sebelumnya. Misalnya, jika Anda memiliki jadwal yang padat, Anda mungkin mengorbankan kualitas untuk memenuhi tenggat waktu. Utang teknis adalah harga yang Anda bayar nanti, ketika Anda harus merefaktor kode untuk menebus kurangnya kualitas tersebut. Contohnya termasuk perbaikan untuk mengatasi desain yang buruk, bug, masalah performa, masalah operasional, masalah aksesibilitas, dan masalah lainnya.

Menjaga di atas utang teknis membutuhkan keberanian. Ada banyak tekanan untuk menunda pengerjaan ulang kode. Rasanya senang mengerjakan fitur dan mengabaikan utang. Sayangnya, seseorang harus melunasi utang teknis cepat atau lambat. Sama seperti utang keuangan, semakin lama utang teknis menjadi semakin sulit dilunasi. Pemilik produk pintar bekerja sama dengan tim mereka untuk memastikan ada waktu untuk melunasi utang teknis setiap sprint. Menyeimbangkan pengurangan utang teknis dengan pengembangan fitur adalah tugas yang sulit. Untungnya, ada beberapa teknik mudah untuk menciptakan tim yang produktif dan berfokus pada pelanggan.

Selalu Agile

Menjadi Agile berarti belajar dari pengalaman dan terus berkembang. Pengembangan Agile menyediakan lebih banyak siklus pembelajaran daripada perencanaan proyek tradisional karena perulangan proses yang lebih ketat. Setiap sprint menyediakan sesuatu yang baru untuk dipelajari tim.

Misalnya:

  • Tim memberikan nilai kepada pelanggan, mendapatkan umpan balik, lalu mengubah backlog mereka berdasarkan umpan balik tersebut.
  • Mereka mengetahui bahwa build otomatis mereka kehilangan pengujian kunci. Mereka menyertakan pekerjaan dalam sprint berikutnya untuk mengatasi masalah ini.
  • Mereka menemukan bahwa fitur tertentu berkinerja buruk dalam produksi, sehingga mereka membuat rencana untuk meningkatkan performa.
  • Seseorang di tim mendengar tentang praktik baru. Tim memutuskan untuk mencobanya untuk beberapa sprint.

Tim yang baru saja dimulai dengan pengembangan Agile harus mengharapkan lebih banyak peluang pembelajaran. Mereka adalah bagian yang sangat berharga dari proses karena menyebabkan pertumbuhan dan peningkatan.

Langkah berikutnya

Ada banyak cara untuk menyelesaikan proses pengembangan Agile yang tepat untuk tim. Azure DevOps menyediakan berbagai templat proses. Tim yang mencari struktur garis besar yang berbeda untuk perencanaan mereka dapat menggunakan templat ini sebagai titik awal. Untuk informasi tentang memilih templat proses yang paling sesuai dengan budaya dan tujuan tim, lihat Memilih alur proses atau templat proses untuk bekerja di Azure Boards.

Seiring pertumbuhan organisasi, ini bisa menjadi tantangan untuk tetap disiplin. Pelajari selengkapnya tentang menskalakan Agile ke tim besar.