Son zamanlarda yalın bir geliştirme ekibinin nasıl kurulacağını düşünüyorum. Sonuçta, az sayıda benzer fikirli insanla kendi küçük yazılım evimi açmak istiyorum. Amaç zengin olmak değil, sağlıklı bir çalışma ortamına sahip olmaktır.
Şimdiye kadar, yalın bir takımı şu şekilde tanımlıyorum:
- Küçük;
- Özörgütleme;
- Tüm üyelerin KG olması gerekir;
- Üyeler birden fazla rol üstlenebilmelidir
Son nokta, biraz endişelendiğim yer çünkü mantra giderken ...
Geliştiriciler kötü testçiler yapıyor.
Çoğu zaman, geliştiricilerin kodlarına veya meslektaşlarının kodlarına daha yüksek kalite değerlendirmeleri yapmak için "çok yakın" olduklarını anlasam da, bunların fiili kötü testçiler olduğuna ikna olmadım . Aksine, iyi bir geliştiricinin niteliklerinin iyi bir test edenin nitelikleri ile büyük ölçüde örtüştüğüne inanıyorum.
Bunun doğru olduğunu varsayarsak, dev / tester sorununu çözmenin farklı yollarını düşünüyorum ve uygun bir model bulduğuma inanıyorum.
Modelim şunları gerektirir:
- 2+ projeli küçük bir yazılım evi
- Geliştirme ve sunuma çevik (yinelemeli) bir yaklaşım
- Proje başına 1 takım
- Tüm ekip üyeleri Yazılım Geliştiricileri olacak
- Görev tanımları Geliştirme , Kalite Güvencesi , Test ve Teslimatı sorumluluk olarak açıkça belirtecektir
Tüm bu önkoşullar yerine getirilmişse, projeler aşağıdaki şekilde düzenlenebilir (bu örnek A ve B adlı iki projeye atıfta bulunacaktır ):
- Her ekip üyesi Geliştirici rolü ve Test Kullanıcısı rolü arasında geçiş yapar
- Bir ekip üyesi A projesinde bir Geliştirici ise , B projesinde bir Testçi olacaktır.
- Üye aynı anda sadece 1 proje üzerinde çalışacak ve bu nedenle olarak hareket edilmesi bekleniyor ya bir Dev veya bir Tester.
- Bir Rol Çevrim (iki farklı projelerde, yeniden) bir Dev olarak 3 yineleme ve Tester 2 yineleme oluşmaktadır
- Proje ekiplerinin her zaman 3 Devs ve 2 Testçileri olacaktır.
- Üye Rol Döngüleri 1 yineleme ile faz dışı olmalıdır.
- Bu, takım değişikliklerinin aniden ortaya çıkmasını en aza indirir. Her yineleme için 2 Devs ve 1 Test Cihazı önceki yinelemeyle aynı kalır.
Yukarıdakiler göz önüne alındığında, aşağıdaki Artıları ve Eksileri görüyorum:
Artıları
- Proje bilgisini şirket genelinde dağıtır.
- Ekip üyelerinin yazmaya yardımcı oldukları kodu test etmemelerini sağlar.
- Faz dışı rol döngüleri hiçbir projenin% 100 üye anahtarına sahip olmadığı anlamına gelir.
- Alternatif roller sıkıcı projelerin tekdüzeliğini bozar.
Eksileri
- Her iki projenin yinelemeleri sıkı sıkıya bağlıdır. Bir proje bir yinelemeyi yarıya kadar iptal edip yeniden başlasaydı, o zaman iki proje senkronize olmazdı. Bu, rol döngüsünün yönetilmesini zorlaştıracaktır.
- İşe alım menteşeleri Geliştiriciler de Test Cihazı olarak çalışmaktadır.
Bu yaklaşımı arkadaşları ve meslektaşları ile tartışırken karışık eleştiriler aldım. Bazıları az sayıda geliştiricinin böyle rolleri değiştirmek isteyeceğine inanırken, diğerleri bana kişisel olarak denemeyi sevdiklerini söylüyor.
Benim sorum şu: Böyle bir model pratikte işe yarayabilir mi? Değilse, çalışan bir modele dönüştürülebilir mi?
Not: Kısaca, sadece Dev ve Tester rollerine odaklandım. Gerekirse diğer roller üzerinde genişleyeceğim.