Çevik Ol
Aşağıdakileri öneririm:
Aynı dosyaları düzenleme
İlk önce Git (veya benzeri bir eşzamanlı sürüm sistemi) kullanın. Aynı dosyaların farklı kısımlarını düzenlediğiniz sürece, çatışmalarla karşılaşmazsınız. Çatışma yaparsanız, açıkça açıkça işaretlenir.
Git olmadan çoklu geliştirici bir projeyi yönetmeye çalışmak bir puding kasesi olmadan bir puding yapmaya çalışmak gibi. Mümkün, ama oldukça çabuk dağınık olacak.
Yorumlarda da belirtildiği gibi Git her derde deva değil, otomatik testlerle birleştiğinde kesinlikle çok yardımcı oluyor.
Tüm özellikleri listele
İkincisi, projeyi kullanıcı tarafından görülebilir özelliklere ayırın. Örneğin, "kullanıcı kaydolduğunda bir e-posta almalıdır" veya "Kullanıcı bir öğe ekleyebilir". Tüm paydaşları buraya dahil edin. Herkesi bir odaya sokun ve herkesin özelliklerini söylemesini isteyin.
Bunlar kullanıcı tarafından görülebilen özellikler olmalı, daha sonra uygulama stratejisi hakkında konuşabilirsiniz.
Tüm önerileri indeks kartlarına, hatta salak olanlara bile yazın. Kopyaları çıkarmak için listeyi hızla rasyonelleştirin ve tüm kartları büyük bir masaya, hatta yere koyun.
Gerekli olan ek kartları ekleyin. Uygulamanızın SMS metin uyarıları göndereceğini söyleyin. Bunu nasıl yapacağınızı bilemeyebilirsiniz, bu yüzden bir sorunuz var. Bir kartta "SMS portallarını araştır" yazın. Aynı şekilde diğer büyük bilinmeyenler için. Bunları daha sonra açmak zorunda kalacaksınız. Bu özellikler muhtemelen ilk süratinize giremez.
Şimdi kartlarınızı gruplara ayırın, karıştırın, onlar için bir fikir edinin . Bu senin proje kapsamın.
Poker planlama
Poker planlamaya bir göz atın. Yine de herkesle birlikte, tüm geliştiricilere "1 puan", "2 puan", vb. "4 puana" kadar kart verin. Ayrıca bir "daha fazla" kart. Bir nokta kabaca bir saate eşittir.
Özellik listesine birer birer göz atın. Bir özelliği okurken, herkes kart oynamak zorunda. Bir kişi 1, diğer kişi 4 oynuyorsa orada bir iletişim sorunu var. Bir kişi diğerinden farklı bir şey ifade etme özelliğini anlar. Bir tartışma yapın ve gerçekte ne anlama geldiğini öğrenin ve bunu kartta not edin.
Bir özelliğin "daha" olduğunu kabul ederseniz, bu özellik çok büyük demektir. Bu özelliği yıkmak zorundasın. Bunu daha önce yaptığınız gibi yapın.
Anlaştıkça, kartların üzerindeki numaraları farklı bir renkte yazınız.
Puanlar saatlerden daha iyi
Saat yerine nokta kullanmak, maçoları “geliştirenlerin ne kadar hızlı kodlayabildiğime bak” gibi gösterdiği şeyleri ortadan kaldırıyor.
Şimdi bir sprint oluştur
Sprint bir hedefe doğru hızlı bir patlama. Sprint uzunluğu, belki de 5 veya 10 gün karar verin. Gün sayısını, geliştirici sayısına göre, günlük sayı sayısına göre çarpın.
Başlangıçta geliştirici başına günde 6 puan alın. Bu, ulaşılabilir bir sayıdır. Eğer 5 kişiniz varsa, bu 5 * 5 * 6 = 150 puandır. Tüm geliştiriciler ve yönetim ile birlikte, listeden 150 noktaya kadar özellikler seçin. Bu senin sprintin.
Asla sığacak olandan daha fazla sıkmak için asla cazip olmayın. Aşırı umut verici, siz de dahil, uzun vadede herkesi incitir.
Burada bağımlılıkları hesaba katmanız gerekecek. Örneğin, çevre ayarlarının ilk sprint'te açıkça yer alması gerekiyor. Bu aslında herkes varken yapmak nispeten kolay. Odada, “buna bağlı” diyen 6 beyin var, vs.
Sprintinizi aldıktan sonra, hiçbir şey eklenemez, 5 gün boyunca kilitli kalır. Özellik sürünmesi ekibi zorlayacak, morali bozacak ve herkesi yavaşlatacak. Sonunda, sürünme bir projeyi durdurur. Takım lideri olarak, ekibinizi özellik sürünmesinden korumak zorundasınız. Yeni bir özellik isteği gelirse, bir sonraki sprint'e eklenmelidir. Bir sonraki sprint zaten dolu ise, başka bir şey çıkarılmalıdır.
Asla ekstra sıkmak için cazip olmayın. Aşırı umut verici olmak, yaklaşık 1 günlük mutlu müşteriyi, ardından 4 günlük takım stresini ve sonunda takımın zamanında teslim edemediği çoğu mutsuz müşteriyi verir.
Şimdi git ona.
Kartları dağıtın, kimin ne yapmak istediğini sorun. Neler yapıldığına dair tam bir görüş hakkınız var ve geçiş yapan noktaları sıfıra kadar sayabilirsiniz. Her gün başında herkesin konuşmasını isteyin, böylece herkes kimin neyin üzerinde çalıştığını ve neyin yapıldığını bilir.
Açıkça tanımlanabilir yönetilebilir hedefler üzerine bir birim olarak birlikte çalışan 5 veya 6 iyi motive edilmiş geliştirici, 5 günlük bir sprintte oldukça tıknaz miktarda bir şey başarabilir.
Görünürlüğü korumak
Herkesin projenin durumunu görebildiğinden emin olun. Tüm kartları duvara yapıştırın. Solda henüz üzerinde çalışılmamış kartlar var. Sağ tarafta kartlar yapılır.
Bir geliştirici bir kart üzerinde çalışırken, duvardan çıkarır ve masalarına koyar. Bu görünürlük sağlar ve insanların birbirlerinin üstüne çok fazla ayak basmalarını önler.
Dizin kartlarına teknolojik alternatifler var, ancak duvarda proje durumunu gösteren çok büyük bir kâğıt ekrana sahip hiçbir şey yenmiyor.
Mümkünse, proje süresince herkesi aynı odada tutun. Paydaşlara mümkün olduğunca etrafta, her gün ideal şekilde sahip olun.
Kül olmak
Bir yakma tablosunda sıfıra doğru ilerleyen puanlarınızı grafik olarak çizebilirsiniz. En iyi uyum sıranız zaman sınırınıza ulaşmadan önce sıfırı geçerse, büyük olasılıkla pistte olursunuz. Aksi taktirde müvekkilinize şimdi bildirmeniz gerekebilir, son tarihe yaklaşmadan önce.
Eğer başarısız olacaksan, erken başarısız ol.
Yazılımı kullanarak yazma işlemi yapabilirsiniz, ancak duvardaki büyük bir kağıt parçasını tercih ederim. Üzerine çizin ve yazın.
Otomatik test
Aynı şey üzerinde aynı anda çalışan birden fazla geliştiriciniz varsa, muhtemelen zaman zaman birbirlerinin kodunu kıracaklar. İletişim ve görünürlük bu konuda yardımcı olur, ancak muhtemelen sorunların çözümüne yardımcı olacak bazı teknolojiler sunmak isteyeceksiniz.
Birim testi, kod tabanınızın her bir parçası için test yazma işlemidir (ideal olarak her yöntem). Ünite testleriniz, mümkünse her tasarrufta sık sık yapılmalıdır. Buna yardımcı olabilecek birçok araç var, örneğin Karma veya Rspec.
Uçtan uca test, projenizi bir bütün olarak test etmeyi, içselleri kara kutu olarak görmeyi içerir. Bu testleri yüksek işletme gereksinimlerinize göre ayarlayın, örneğin: "Kullanıcı kaydolabilir" veya "Kullanıcı bir öğe listesi görebilir". İletki, web tabanlı test çerçevesinin uçtan uca güzel bir örneğidir.
Test üzerine yazılmış bütün kitaplar var, ancak en azından bazı kabul testlerinin yapılması, projeniz üzerinde çalışırken hiçbir şeyin kırılmamasını sağlamaya yardımcı olabilir.
Teknik borçlardan kaçınmak ve yapılması gerekenler
Teknik borç, daha sonra temizlenmesi gereken şeyleri tanımlayan bir kavramdır. Ortak bir borç kaynağı, yapılan gibi işaretlenmiş, ancak asla "bitmemiş" olan özelliklerdir. Git'te yapılan bir özellik kontrol edildi, paydaş tarafından onaylandı ve test edildi.
Yapılmadıkça özelliklerinizi kontrol etmeyin. Grafiğe asla masaj yapmayın. Yine, bu sizleri de içeren uzun vadede herkesi incitiyor.
Bu, başlangıçta günde yalnızca geliştirici başına 6 puan teklif etmemizin bir nedenidir. Bittiğinde fazladan iş var, ama harika hissediyor ve takıma destek veriyor.