En iyi nasıl geliştirici sıfırdan bir uygulama tasarımı dahil etmek? [kapalı]


9

3 geliştiriciden oluşan bir ekibiz (2 deneyimli geliştirici ve bir genç).

Yeni bir projeye başladık. Uygulamayı tasarladık, doğru mimariyi seçme çabalarını yoğunlaştırdık ve şimdi ilk kod satırlarını sunuyoruz. Tüm uygulamanın temeli ne olacak, bunun çekirdeğini yazıyoruz.

Bu da kolay bir uygulama değil. Zor performans gereksinimleri, toplu dağıtılmış, karmaşık varlık modeli vb.

Hepimiz konfor alanımız dışındayız, özellikle de gençler. Önünde iyi bir tasarım yaratma deneyimi yok. Yine de bu bir sorun değil çünkü ben ve diğer geliştiriciler yardım etmek için oradayız ve ikimiz de mentorluğa ve ekip oluşturmaya inanıyoruz, ancak ... bunu yapmanın en iyi yolunun tam olarak ne olacağını bilmiyoruz, böylece eğlenceli bir deneyim ve maksimum beceri miktarını öğrenir.

İkimiz de yeni projelerde bir yetişkinin olmadığını, sadece öğrenmenin ve ilham almanın tam bir kod tabanına sahip olduğu için henüz gençlerin daha kolay olduğu mevcut projelerde olduğunu fark ettik. Ancak bu uygulama için neredeyse hiç kodumuz yok. Daha yeni başladık.

Birkaç yaklaşım düşünüyoruz:

  • Birkaç gün boyunca kendi başına denemesini sağlayın, ardından kodu onunla birlikte müdahale edin ve yeniden düzenleyin, doğru yönde yönlendirin ve tekrarlayın => Her refactor'daki hatalarını göstereceğimiz için onun için eğlenceli bir deneyim olmayabilir. ;
  • programlamayı bizden biriyle eşleştirmesini sağlayın => o sadece bir "seyirci" olabilir ve aslında çok fazla şey öğrenmeden veya bilgilerin çoğunu sindirmeden yaptığımız her şeye katılabilir;
  • Her bir modülün iskeletini sağlam bir tasarıma sahip hale getirip sonra modülü eksik parçaları eklemek için ona vermemiz => bizden sonra almak eğlenceli olmayabilir ve sadece boşlukları doldurmaya dikkat etme riski vardır. ve tüm tasarıma değil.

Onu tasarıma nasıl dahil edebiliriz, böylece bir şekilde onun dışında bırakılmadığını ve deneyimden çok şey öğrendiğini ve kendi başına denemek için yeterince güven kazandığını?


5
(Çok) genç ekip üyeleri ile benim deneyim değerlendirmeleri arasında birkaç gün çok uzun olmasıdır. İleriye doğru bir yol bulmadan iyi niyetlerle patlarlar. Kısa bir sabah ve öğleden sonra seansları ilk ay kadar iyi sonuç verdi. Bir kez ayaklarını bulduklarında - ve daha da önemlisi, ne zaman yardım isteyeceklerini biliyorlardı - frekansı düşürdük.
Michael Green

Yanıtlar:


12

Aşağıdaki yönergeleri öneriyorum:

  • Küçük geliştiriciyi tasarım toplantılarınıza dahil edin ve girdisini isteyin. Bu, üst düzey tasarımı kendisi yapmaya hazır olmasa bile, büyük resmi düşünmesini sağlayacaktır.
  • Alt geliştiriciye atamak için uygulamanın bir modülünü ayırmaya ve açıkça tanımlamaya çalışın. Modülün girişlerinin / çıkışlarının ve diğer gereksinimlerinin ne olduğunu yazılı olarak açıklayın. Ona kolayca test edilemeyen veya sadece henüz yazılmamış diğer modüllerle entegre edildiğinde test edilebilen bir modül atamaktan kaçının.
  • Belki de genç geliştirici, temel uygulamayı kodlamaktan başka yollarla yardımcı olabilir. Örneğin, test kodu yazabilirdi. Menial bir çalışma olmaktan çok, iyi test senaryoları yazmak projeye değerli bir katkı sağlar ve aynı zamanda küçük geliştiriciye proje hakkında sağlam bir anlayış kazandırır.

2
Kesinlikle tasarım üzerine oturduğundan emin olun. Sonra katkısının genel olarak nereye uyduğunu ve kattığı değeri anlayacak. Karmaşıklıkta boğuluyor olabilir ama en azından hangi okyanusta olduğunu biliyor!
Michael Green

1

Bu geliştiricinin hangi alanı geliştirmesini istediğinize bağlı olduğunu düşünüyorum. Ben (çok) küçükken onlar bana gibi belirli bir sınırlı şey inşa etmek gerekir API's vermek için kullanılır:

  • bu işlev Personel tablosundan N sayıda personel verir
  • bu fonksiyon, personelin kimliği göz önüne alındığında personel istatistiklerini sağlar

->

Görev: bir personel kaydına tıklandığında istatistiklerini gösteren personel listesini içeren bir sayfa oluşturun. İşte daha önce projede oluşturulmuş basit bir örnek sayfa.

Verilen görevin en önemli yanı, sadece verilen kaynaklarla çözülebilir olması ve herhangi bir değişiklik gerektirmemesi.


0

3 yolun hepsi bana iyi geliyor. Aslında aynı anda 10 farklı çevik yol denemek, yakında size iyi sonuçlar vermelidir, en azından hangi yolun işe yaradığını ve hangisinin işe yaramadığını (hangisinin en iyi çalışacağını oyuncuların kişiliklerine çok bağlıdır) bileceksiniz.

Kent Beck tarafından tarif edilen işlemi takiben, her 10 dakikada bir (veya benzeri) anahtarlama / yazma şapkaları ile işleme devam ederseniz, çift programlama problemi oluşmaz (nerede hatırlamıyorum)

Diğer insanları tasarıma dahil etmeye gelince - yardımcı olan bulduğumuz şey, tasarım aşamasında bazı tasarım belgelerinin (bazı UML modelleri ile) yaratılmasıdır. Diğer insanlar (çocuğunuz) daha sonra onları okuyabilir, gözden geçirebilir, şeytanın savunucusunu oynayabilir. Bağımsız, bozulmamış bir üçüncü tarafın rolü, örneğin keşif testi için çok faydalı olabilir - http://www.softwaretestinghelp.com/exploratory-testing-beyond-traditional-testing-boundaries

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.