Devam eden yeni bir projemiz var ve şu anda geliştiriciler A ekibine ve B ekibine iki takıma ayrıldı. Bu projenin geliştirme yığını boyunca geliştirme gerektiren 2 bölümü var. Aşağıda gösterilen yığımızın çok basitleştirilmiş örneği:
Projenin her bir parçası tüm yığın boyunca gelişime ihtiyaç duyar, bu yüzden tam bir yığın geliştirici yaklaşımı beklerdim, bu yüzden B takımı içindeki çalışmamızı nasıl bozduğumuzu, farklı parçalar arasındaki etkileşimleri tasarlayıp çalıştığımızı düşünüyoruz.
Ancak yakın zamanda öğrendim ki, A takımı yığının belirli kısımlarından sorumlu olmak istiyor ve Veri Soyutlama Katmanı'nın (ve Veri katmanına içerik koymanın) işlendiği iki takım arasında bir bölünme öneriyorlar. B Takımından hiçbir gelişme olmadan kendilerini ayırırlardı.
Bana göre bu çok doğal değil. Her takımın bunları başarmak için farklı hedefleri ve zaman çizelgeleri vardır, ancak B Takımı, özellikleri uygulamak için A Takımına bağımlı olacaktır. Önerilen çözüm, ortak arayüzlerin önceden tanımlanmış olmasıdır (projede muhtemelen çok sayıda olabilmeleri için 2 yıllık bir zaman ölçeği vardır). A takımı daha sonra kendi hedefleri olmasına rağmen bu arayüzler için gereken bitleri erken geliştirirken, B Takımı ilerleyebilmeleri için tüm kısa vadeli çağrıları iptal eder.
Bu yaklaşımla ilgili endişelerim var:
- Arabirimler değişebilir ve A Takımı değişen gereksinimleri karşılamak için bant genişliğine veya zamana sahip olmayabilir.
- A Takımının kodundaki hatalar, B Takımının ilerlemesini engelleyebilir ve yine A Takımının farklı bir öncelik sırasına sahip olması nedeniyle bunları düzeltmek için öncelik olmayabilir.
- Ekipler arasında bilgi eksikliği - B Takımı, kaputun altında neler olup bittiğini tam olarak anlamayabilir ve bu nedenle kötü tasarım kararları verebilir.
Endüstrideki birçok şirketin alt ekipleri olduğu ve bunun üstesinden gelebilmesi önerildi. Anladığım kadarıyla, ekipler ya başlangıçta nasıl beklediğimi (Full Stack) ya da aşağıdaki gibi teknoloji yığınını parçalayarak bölerler:
Bu yüzden endüstrinin geri kalanının ne yaptığını bilmekle ilgileniyorum. Bölmelerin çoğu dikey / yatay mı? Çapraz bir ayrım mantıklı mı? Diyagonal bir bölünme olursa endişelerim geçerli görünüyor mu ve B Takımının endişe etmesi gereken başka bir şey var mı? Büyük olasılıkla B Takımının başarısından veya başarısızlığından sorumlu olacağımı belirtmek isterim.