Şelaleyi çok hızlı bir şekilde atmaktan çekinirim.
Aslında yazılım sistemleri oluşturmak için kusurlu bir model olsa da, yaşam döngüsünün her aşaması için iyi uygulamalar hakkında talimat vermek kötü bir öğretim modeli değildir. Projeye uyguladığınız süreç modelinden bağımsız olarak, gereksinim mühendisliği, sistem mimarisi ve tasarımı, uygulama, test, sürüm ve bakım (yeniden düzenleme ve geliştirme dahil) gerçekleştirmeye devam edersiniz. Aradaki fark, bu aşamaların nasıl organize edildiği ve yürütüldüğü, ancak tüm faaliyetler hala gerçekleşiyor.
Projenin ortasında Şelaleden Scrum'a geçişinizin en iyi fikir olmadığını savunuyorum. Scrum'ın başarısının anahtarı uzun süredir devam eden bir projedir. İlk üç ila beş sprint, bir hıza yerleşen, süreci öğrenen ve takım gelişiminden geçen takımdır. Hareketleri yapmanıza rağmen, bu noktada gerçekten Scrum değil. Buna ek olarak, Scrum'a özgü bir müfredat oluşturmaya çalışmak muhtemelen Scrum'ın gümüş bir kurşun olmadığı kadar kötü bir fikirdir - tek bir metodoloji yerine en iyi uygulamaları öğretmek daha iyidir. İşgücünde, tüm projeler Scrum'ı kullanmayacaktır. Aslında, bazı ortamlarda Scrum projenin başarısı için zararlı olacaktır.
Scrum ile akademik bir ortamda zaten problemler buldunuz ve bazılarına yeterince hitap etmek zor.
Uyumsuzluklar listenizdeki sorun, tahminin zor olmasıdır. Evet öyle. Ancak, tahminlerde daha iyi olmanın tek yolu, gerçekleri tahminlerle karşılaştırmak ve karşılaştırmaktır. Öğrenciler, mezun olduktan ve iş gücüne girdikten sonra daha hazırlıklı olmaları için çeşitli araçları (öykü noktaları, kaynak kod satırları, saatler, sayfalar, kişi-saatler) kullanarak boyut, zaman ve çabayı önceden tahmin etmelidir.
Dokümantasyon ihtiyacı hem profesörün hem de öğrencilerin bakış açısından ele alınabilecek bir şeydir. Yalın yaklaşımlar bize, ekibe veya müşteriye değer katmayan belgelerin israf edildiğini (zaman ve maliyet açısından) söylüyor. Ancak, çeşitli amaçlarla hem öğrencilerin hem de profesörün (müşteri / müşteri) bazı amaçlarına ulaşmak için bazı belgelere ihtiyaç vardır. Genel olarak, süreç uyarlama ve nicel proje yönetimini (çevik yöntemlerde bile rolü olan) öğretmek için bir fırsat gibi görünüyor.
Scrum toplantıları ve zamanlaması ile ilgili olarak aklıma gelen iki fikir var. Birincisi, bunun Scrum'ın akademik bir ortamda kullanmak için en iyi süreç olmadığını göstermesidir. Yazılım projeleri için, zamanlama, personel, görünürlük ve geliştirme ekibinin deneyimi (diğerlerinin yanı sıra) gibi faktörlerle tekil bir "en iyi süreç modeli" yoktur.
Genel olarak, iyi yöntemler, süreç uyarlama ve süreç iyileştirmeyi tek yöntemlere göre vurgulamayı öneririm. Bu, kursları alan herkes için en etkili olmanıza ve onları çeşitli süreç yöntemlerine maruz bırakmanıza ve belirli bir koşul kümesi için en iyi uygulamaların ne olduğunu anlamanıza izin verecektir.
Eğer bir üniversite müfredatı oluşturmak için çalışıyoruz, ben nasıl yüksek düzeyde ele alınacaktır yazılım mühendisliği müfredatı de üniversitede ben katıldı uyum buluşmanızı.
Bir giriş yazılım mühendisliği projeden bir şelale modelinde geçti, her aşamada dersler o aşamadaki aktiviteleri yürütmenin farklı yollarına karşılık geldi. Takımlar aşamalar boyunca aynı oranda ilerledi. Açıkça tanımlanmış sınırlara sahip olmak, yazılım oluşturmak için takımlar üzerinde çalışırken minimal deneyime sahip olmayan bir grup insanın öğretim modeline iyi uyuyordu. Kurs boyunca, diğer yöntemlere - çeşitli çevik yöntemler (Scrum, XP), Rasyonel Birleşik Süreç, Spiral Model - avantajları ve dezavantajları konusunda referanslar yapıldı.
Faaliyetler açısından, gereksinim mühendisliği, mimari ve tasarım (iki ders - biri nesne yönelimli yöntemler kullanarak ayrıntılı tasarıma odaklanan ve diğeri sistem mimarisine odaklanan), çeşitli tasarım ve uygulama odaklı dersler sistem sınıfları (gerçek zamanlı ve gömülü sistemler, işletme sistemleri, eşzamanlı sistemler, dağıtılmış sistemler vb.) ve yazılım testi.
Yazılım sürecine yönelik üç ders de vardır. Bir yazılım projesini birden çok metodoloji açısından yönetmek için en iyi uygulamalara odaklanan Yazılım Mühendisliği Süreci ve Proje Yönetimi. İkinci bir süreç kursu ölçümleri, ölçümleri ve süreç iyileştirmeyi (CMMI, Altı Sigma ve Yalın'ı vurgulayarak) öğretir. Son olarak, Scrum metodolojisi kullanılarak yürütülen bir projeyi kullanarak çevik yazılım geliştirmeyi (Scrum, Extreme Programming, Crystal, DSDM tartışıldı) öğreten bir süreç dersi vardır.
Kapak taşı projesi, sponsor bir şirket için gerçekleştirilen ve tamamen öğrenci proje ekibi tarafından yürütülen, hem sponsorlardan hem de bir fakülte danışmanından gelen iki çeyreklik bir projeydi. Projenin nasıl yürütüleceğinin her yönü, sponsorlar tarafından ortaya konan herhangi bir kısıtlama dahilinde öğrencilere kalmıştır. Üniversite tarafından zorunlu olarak teslim edilen son tarihler, projenin yarısına kadar (10 hafta) ara sunum, sonunda son sunum ve bitişten kısa bir süre önce dörtlü poster sunumuydu. Diğer her şey kabul etmek için sponsor ve takıma kalmıştı.