Scrum, çevik değerlere dayanan yinelemeli ve artımlı bir modeldir . Bu, ayrı bir tasarım aşamasına sahip olmadığınız anlamına gelir. Buradaki fikir, sürekli olarak tasarımla başa çıkmanız gerektiği , proje boyunca sürekli analiz, uygulama, test ve entegrasyon ile uğraştığınız gibi.
Bunun çalışması için biraz planlamaya ihtiyacınız var. Takımın önündeki sprint için görevleri tahmin ettiği sprint planlama toplantısına girin . Çoğu insan bunun sadece bir tahmin toplantısı değil, aynı zamanda bir tasarım çalışması olduğunun farkında değildir. Örneğin, bir görev "Yeni araba modeli için kod ekle" olabilir. Bunu henüz tahmin edemezsiniz, biraz daha fazla şey bilmeniz gerekir. Böylece ekip tasarımı tartışıyor ve geniş bir çözüm buluyor ("alt sınıf Araba?") Ve bunu göreve bir hatırlatma olarak ekliyor. Bundan daha fazla formaliteye ihtiyacınız yok. Artık sorunun nasıl çözüleceği hakkında bir fikriniz var. Henüz tüm ayrıntılara sahip değilsiniz ve bu iyi, rahat bir tahmin yapabilmek için tasarımın yeterli olduğunu biliyorsunuz . Hiç bir diyagram oluşturmak zorunda kalmadan (bu noktada).
İçin gerçek fiziksel belgelerin , ben tavsiye herkesin görmesi için bir duvara kadar planına genel bakış bir sistemleri oluşturur. Genel bakış sadece en önemli sınıfları ve modülleri içermeli ve nadiren güncellenmelidir. Ayrıca, sistemdeki en önemli sınıflar için birkaç durum diyagramı oluşturmak çok faydalıdır. İnsanların işlerin nasıl bağlandığını hızlı bir şekilde görmelerini kolaylaştırmak için tipik kullanım durumlarının birkaç seçili sıralama şemasını serpin. Kodunuzdan sınıf hiyerarşi diyagramları oluşturabildiğinizi ve problemin kolayca çözülebileceğini tahmin ediyorum.
Tüm diyagramların gerçek uygulamadan sonra oluşturulduğunu unutmayın. Bu "kapsamlı dokümantasyon üzerinde çalışan yazılım" ve tam zamanında tasarım ile devam ediyor.
Ve evet, okunabilir kod kesinlikle dokümantasyondur.