Dapatkan Agile
Saya akan menyarankan yang berikut ini:
Mengedit file yang sama
Pertama, gunakan Git (atau sistem versi bersamaan yang serupa). Selama Anda mengedit berbagai bagian dari file yang sama, Anda tidak akan mendapatkan konflik. Jika Anda mendapatkan konflik, konflik itu akan ditandai dengan jelas.
Mencoba mengelola proyek multi-pengembang tanpa Git seperti mencoba membuat puding tanpa mangkuk puding. Itu mungkin, tetapi akan menjadi sangat berantakan dengan cukup cepat.
Seperti yang telah ditunjukkan dalam komentar, Git bukanlah obat mujarab, tetapi dikombinasikan dengan pengujian otomatis, hal itu tentu sangat membantu.
Daftar semua fitur
Kedua, memecah proyek menjadi fitur yang terlihat pengguna. Misalnya "ketika pengguna mendaftar, mereka harus menerima email" atau "Pengguna dapat menambahkan item". Libatkan semua pemangku kepentingan di sini. Suruh semua orang di kamar, dan minta semua orang meneriakkan fitur mereka.
Ini harus menjadi fitur yang terlihat pengguna, Anda dapat berbicara tentang strategi implementasi nanti.
Tulis semua saran pada kartu indeks, bahkan yang bodoh. Cepat merasionalisasi daftar untuk menghapus duplikat, dan meletakkan semua kartu di atas meja besar, atau bahkan lantai.
Tambahkan kartu tambahan yang dibutuhkan. Katakanlah aplikasi Anda akan mengirim peringatan teks SMS. Anda mungkin tidak tahu bagaimana melakukannya, jadi Anda punya pertanyaan. Tulis "Investigasi portal SMS" pada kartu. Demikian juga untuk yang tidak diketahui besar lainnya. Anda harus membongkar ini nanti. Fitur-fitur ini mungkin tidak akan membuatnya menjadi sprint pertama Anda.
Sekarang urutkan kartu Anda ke dalam kelompok, kocok-kocok, rasakan . Ini adalah ruang lingkup proyek Anda.
Perencanaan poker
Selamat mencoba poker perencanaan. Masih bersama semua orang, berikan semua kartu pengembang yang mengatakan "1 poin", "2 poin", dll, hingga "4 poin". Juga kartu "lebih". Suatu titik kira-kira setara dengan satu jam.
Buka daftar fitur satu per satu. Saat Anda membaca fitur, setiap orang harus memainkan kartu. Jika satu orang bermain 1, dan orang lain bermain 4 ada masalah komunikasi di sana. Satu orang memahami fitur tersebut berarti sesuatu yang berbeda dari orang lain. Berdiskusi dan cari tahu apa yang sebenarnya dimaksudkan dan catat di kartu.
Jika Anda setuju bahwa suatu fitur "lebih", fitur itu terlalu besar. Anda harus memecah fitur itu. Lakukan ini dengan cara yang sama seperti sebelumnya.
Setelah Anda sepakat, tulis angka pada kartu dengan pena warna berbeda.
Poin lebih baik daripada jam
Menggunakan poin alih-alih jam menghilangkan hal macho "lihat seberapa cepat saya bisa kode" hal yang sering kita lakukan pengembang. Ini perbedaan yang halus, tapi saya telah menemukan itu berfungsi dengan baik.
Sekarang buat sprint
Sprint adalah ledakan cepat menuju sasaran. Tentukan panjang sprint, mungkin 5 atau 10 hari. Lipat gandakan jumlah hari dengan jumlah pengembang dengan jumlah poin per hari.
Asumsikan 6 poin per hari per pengembang pada awalnya. Ini adalah angka yang bisa dicapai. Jika Anda memiliki 5 orang, itu 5 * 5 * 6 = 150 poin. Sehubungan dengan semua pengembang dan manajemen, pilih fitur dari daftar, hingga 150 poin. Itu sprint kamu.
Jangan pernah tergoda untuk memeras lebih banyak daripada yang pas. Janji yang terlalu tinggi menyakiti semua orang dalam jangka panjang, termasuk Anda.
Anda harus memperhitungkan ketergantungan di sini. Misalnya, pengaturan lingkungan jelas harus dimasukkan dalam sprint pertama. Ini sebenarnya relatif mudah dilakukan ketika semua orang hadir. Anda memiliki 6 otak di dalam ruangan, semuanya mengatakan "ini tergantung pada ini", dll. Anda kemudian dapat mengocok kartu untuk menunjukkan ketergantungan.
Setelah Anda memiliki sprint Anda, tidak ada yang dapat ditambahkan ke dalamnya, itu terkunci selama 5 hari. Creep fitur akan menekankan tim, merusak moral dan memperlambat semua orang. Akhirnya, creep akan menghentikan proyek. Sebagai pemimpin tim Anda harus melindungi tim Anda dari creep fitur. Jika permintaan fitur baru masuk, itu harus ditambahkan ke sprint berikutnya. JIKA sprint berikutnya sudah penuh, sesuatu yang lain harus dikeluarkan.
Jangan pernah tergoda untuk memeras ekstra. Menjanjikan terlalu tinggi memberi Anda klien yang bahagia selama sekitar 1 hari, diikuti oleh 4 hari stres tim, dan akhirnya, kemungkinan besar, beberapa klien yang tidak bahagia ketika tim tidak dapat memenuhi tepat waktu.
Sekarang pergilah.
Bagikan kartu, tanyakan siapa yang ingin melakukan apa. Anda memiliki visibilitas penuh pada apa yang sedang dilakukan, dan Anda dapat menghitung poin dengan nol. Miliki standup pada awal setiap hari sehingga semua orang tahu siapa yang mengerjakan apa, dan apa yang telah dilakukan.
5 atau 6 pengembang termotivasi yang layak bekerja bersama sebagai unit pada tujuan yang dapat dikelola dengan jelas dapat mencapai jumlah barang yang cukup besar dalam sprint 5 hari.
Pertahankan visibilitas
Pastikan semua orang dapat melihat status proyek. Cetak semua kartu ke dinding. Di sebelah kiri adalah kartu yang belum dikerjakan. Di sebelah kanan dilakukan kartu.
Ketika seorang pengembang mengerjakan kartu, mereka melepaskannya dari dinding dan meletakkannya di atas meja mereka. Ini menjaga visibilitas, dan mencegah orang untuk saling menginjak kaki terlalu banyak.
Ada alternatif teknologi untuk kartu indeks, tetapi tidak ada yang mengalahkan memiliki tampilan kertas besar status proyek di dinding.
Jika memungkinkan, suruh semua orang berada di ruangan yang sama selama proyek berlangsung. Ajak para pemangku kepentingan berkeliling sebanyak mungkin, idealnya setiap hari.
Burndown
Anda dapat membuat grafik poin Anda menuju nol pada grafik burndown. Jika garis paling cocok Anda melewati nol sebelum mencapai batas waktu, Anda cenderung berada di jalurnya. Jika tidak, Anda mungkin perlu memberi tahu klien Anda sekarang, sebelum Anda terlalu dekat dengan tenggat waktu.
Jika Anda akan gagal, gagal lebih awal.
Anda dapat membuat burndown menggunakan perangkat lunak, tetapi saya lebih suka hanya selembar kertas besar di dinding. Gambar dan tulis semuanya.
Pengujian otomatis
Ketika Anda memiliki banyak pengembang yang mengerjakan hal yang sama pada waktu yang bersamaan, mereka mungkin akan saling memecah kode dari waktu ke waktu. Komunikasi dan visibilitas membantu dalam hal ini, tetapi Anda mungkin ingin memperkenalkan beberapa teknologi untuk membantu menemukan masalah.
Unit testing adalah proses penulisan tes untuk setiap bagian individu dari basis kode Anda (idealnya setiap metode). Tes unit Anda harus sering dijalankan, dengan setiap penyimpanan jika memungkinkan. Ada banyak alat yang dapat membantu dengan ini, misalnya Karma atau Rspec.
Pengujian ujung ke ujung melibatkan pengujian proyek Anda secara keseluruhan, memperlakukan bagian dalam sebagai kotak hitam. Dasarkan pengujian ini pada persyaratan bisnis tingkat tinggi Anda, misalnya: "Pengguna dapat mendaftar" atau "Pengguna dapat melihat daftar item". Busur derajat adalah contoh yang bagus dari ujung ke ujung kerangka pengujian berbasis web.
Ada banyak buku yang ditulis tentang pengujian, tetapi memiliki setidaknya beberapa tes penerimaan dapat membantu memastikan tidak ada yang rusak saat Anda mengerjakan proyek Anda.
Menghindari utang teknis dan menyelesaikan pekerjaan
Utang teknis adalah konsep yang menggambarkan hal-hal yang harus dibersihkan nanti. Sumber utang yang umum adalah fitur yang ditandai sudah selesai, tetapi tidak pernah "selesai dilakukan". Fitur selesai dilakukan diperiksa untuk Git, telah disetujui oleh pemangku kepentingan, dan memiliki tes.
Jangan centang fitur Anda sampai selesai. Jangan pernah memijat grafik. Sekali lagi, ini menyakitkan semua orang dalam jangka panjang, termasuk Anda.
Ini adalah salah satu alasan mengapa kami awalnya hanya mengutip 6 poin per pengembang, per hari. Selesai dilakukan membutuhkan kerja ekstra, tetapi terasa hebat dan memberi tim dorongan.