Diyelim ki daha küçük bir takımda çalışmaya başladım ki {şu anda nispeten küçük ama umarım daha büyük bir projedir ”projesi. Unutmayın ki bu, bir dönem sonunda hurdaya alınması gereken bazı akademik projeler değil, gerçek dünyadaki diğer geliştiriciler tarafından kullanılması amaçlanan gerçek bir projedir.
Bununla birlikte, kod henüz başkalarına verilmemiştir, bu nedenle henüz bir karar henüz taştan oluşturulmamıştır.
Metodolojiler
Biriniz kodlamaya başlamaktan ve parçaları, tam olarak tüm bileşenlerin tam olarak nasıl etkileşime gireceğine dair net bir fikre sahip olmanızdan önce, giderken birbirine uygun hale getirmeyi seviyor. Biriniz sizden önce tüm tasarımı yapmayı ve bir çözümü kodlamadan önce tüm bileşenlerin ve iletişimin ayrıntılarını incelemeyi seviyor.
Var olanları taklit etmek yerine yeni bir sistem üzerinde çalıştığınızı ve bu nedenle doğru son tasarımın neye benzemesi gerektiği her zaman açık değildir. Bu nedenle, ekibinizde, farklı ekip üyeleri bazen, nihai ürün için hangi gereksinimlerin gerekli olduğu konusunda farklı fikirlere sahip olabilirler;
Aşağıdan yukarıya doğru geliştirici bir kod yazdığında yukarıdan aşağıya doğru çıkan geliştirici, kodun eldeki sorunu çözebilse de, tasarımın doğru olmasının daha önemli olduğuna inanan tasarımda öngörülen olası sorunlar nedeniyle reddediyor soruna çözümü kodlama girişiminden önce.
Yukarıdan aşağı doğru geliştirici, kodu yazmaya başlamadan önce tüm tasarımı ve öngörülen sorunları çözmeye çalıştığında, aşağıdan yukarıya doğru geliştirici, reddetti çünkü aşağıdan yukarıya doğru geliştirici, bazı sorunların aslında uygulamada ortaya çıkacağını düşünmüyor ve gereksinimler ve kısıtlamalar netleştiğinde tasarımın gelecekte değiştirilmesi gerekebileceğini düşünüyor.
Sorun
Bunun sonucu olarak ortaya çıkan sorun, aşağıdan yukarıya doğru geliştiricinin boşa harcadığı zamandır, çünkü yukarıdan aşağıya doğru geliştirici sık sık aşağıdan yukarıya doğru geliştiricinin yazdığı bir çözüme karar vermesi gerektiğine karar vermiştir; -kodu yaz.
Yukarıdan aşağıya doğru giden geliştirici boşa zaman harcıyor çünkü işi paralelleştirmek yerine yukarıdan aşağıya doğru geliştirici şimdi sık sık aşağıdan yukarıya doğru geliştirici ile doğru tasarımı yapmak için oturur ve ikisini daha hızlı olabileceği noktaya seri hale getirir 1 kişi için işi 2'den daha fazla yapacak.
Her iki geliştirici de birlikte çalışmaya devam etmek istiyor, ancak kombinasyonun aslında her ikisinde de pratikte yardımcı olduğu görünmüyor.
Hedefler
Ortak hedefler, kodlama etkinliğini en üst düzeye çıkarmak (yani, zaman kaybını en aza indirmek) ve faydalı yazılımlar yazmaktır.
Soru
Basitçe söylemek gerekirse, bu sorunu nasıl çözüyorsunuz ve bu durumla nasıl başa çıkıyorsunuz?
Bunun düşünmek için zaman kaybetmeyebileceği tek etkili çözüm, her geliştiricinin tasarım için kendi tarzını izlemesine izin vermektir. Ancak, kod gözden geçirdiğinizde ve aslında birbirlerinin değişikliklerini onaylamanız gerektiğinde ve başkalarının kullanması için tutarlı bir çerçeve tasarlamaya çalıştığınızda göründüğünden daha zordur.
Daha iyi bir yolu var mı?