Download
yazilim projeler ne scrum yazilim gel t rme model n n uygulanmasi ve scrum y net m yazilimi ontime n.
Skip this Video
Loading SlideShow in 5 Seconds..
CENK DERİNÖZLÜ PowerPoint Presentation
Download Presentation
CENK DERİNÖZLÜ

CENK DERİNÖZLÜ

443 Views Download Presentation
Download Presentation

CENK DERİNÖZLÜ

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. YAZILIM PROJELERİNESCRUM YAZILIM GELİŞTİRME MODELİNİN UYGULANMASIVE SCRUM YÖNETİM YAZILIMI :ONTIME CENK DERİNÖZLÜ

  2. PROBLEM • Teknolojikdeğişimlervehızlıdeğişenmüşterigereksinimlerininkarşılanamaması • Müşteri ihtiyacını karşılayan kaliteli ve hızlı ürün çıkarılamaması

  3. YAZILIM GELİŞTİRME SÜRECİ Yazılım Geliştirme Süreci 5 ana bölümden oluşur. • ANALİZ • TASARIM • KODLAMA • TEST • ENTEGRASYON

  4. GELENEKSEL YÖNTEMLER

  5. NEDEN UYGUN DEĞİL? • Gelenekselyöntemlerkullanılanprojelerdeprojenintüm gereksinimleri öngörülmeyeçalışıldığıiçinanalizvetasarımsüreciiçinayrılanzamanın fazla olması • Süreç boyunca müşteriileiletişim az olduğu için çıkan ürünün müşteri ihtiyacını karşılayamaması • Projeboyuncayapılmasıgerekliolanbirkısımdeğişikliklerprojebaşlangıçaşamalarındafarkedilemeyipprojeninilerleyenaşamalarında fark edilmesi

  6. ÇÖZÜM • ÇEVİK YAZILIM GELİŞTİRME SÜRECİ

  7. Çevik Yazılım Geliştirme Süreci • Teknolojikyeniliklerinprojeyeuygulanmasınıngerekliolduğuvemüşterilerin ne istedikleriniortayakoyamadıklarıdurumlarda geleneksel yöntemlere alternatif olarak ortaya atılmış yazılım geliştirme sürecidir.

  8. Çevik Manifesto

  9. Çevik Yöntem Karar Aşaması • Kurumlariçinprojeyebaşlamadanöncecevaplanmasıgereken ilk soruprojeningelenekselyöntemler mi yoksaçevikyöntemlerle mi geliştirileceğidir. Bu aşamadakurumprojeiçinaşağıdakisorularıyanıtlamalıdır.

  10. Çevik Yöntem Karar Aşaması • Proje sahibi olanmüşteriprojebaşlangıcındatüm gereksinimleri belirleyemiyor mu? • Müşterigereksinimlerininsüreçboyuncaçabukvesıkdeğişebilmeihtimalivarmı? • Projesüresincegerçekleşenteknolojikdeğişimlerinprojeyeuyarlanmadurumuvarmı? • Projebirdençokişparçasınabölünebiliyor mu? Yukarıdakisorulara “EVET” yanıtıverilebiliyorsayazılımgeliştirmeyöntemiolarakÇevikYöntemlerkullanılmalıdır.

  11. Çevik Yöntem Adaptasyon • Gelenekselyöntemlerleprojekültürünesahipolankurumlarprojeyöntemiolarakçevikyöntemkullanmayakararverdiklerindeyeniyöntemeadaptasyonsüreçleribaşlamaktadır. • Çeviksüreçlerilegerçekleştirilecekprojeninbaşarılıolabilmesiiçinçevikyönetimsürecininekipüyeleritarafındanbenimsenmesioldukçaönemlidir.

  12. Çevik Kavramların Öğrenilmesi • Çevikyöntemleregeçişaşamasınabaşlarkençevikyöntemleringetirdiğiyenikavramlarhakkın da bilgiyesahipolunmasıönemlidir. • ÇevikYöntemlerdebilinmesigerekenkavramlarroller,kavramlar,süreçler,pratiklervearaçlarolmaküzerebeşgrupaltındaincelenebilir.

  13. Çevik Kavramlar Roller: Ürün sahibi, Scrum master veTakım YeniKavramlar: Sprint backlog ,Product backlog, Kullanıcıhikayeleri YeniSüreçler: Günlüktoplantılar, sprint planlamatoplantısı, gereksinimbelirlemetoplantıları, sprint durum değerlendirmetoplantıları YeniPratikler: Fonksiyoneltestlerinotomatikleştirilmesi,testgüdümlüyazılımgeliştirme, eşliprogramlama YeniAraçlar: Süreklientegrasyonaraçları,otomatik test yapıları, agile araçları YeniDüşünceYapısı: Süreçizlenebilirliği, takımçalışması,değişikliklerinbenimsenmesi

  14. Çevik Pilot Proje Modeli • ÇevikYöntemyetenekleriningeliştirilebilmesiiçin en iyiyöntemişparçacıklarınaayrılabilenörnekbirprojeüzerindeçalışmaktır.Bunedenleçevikyöntemlerinkullanılabileceği pilot birprojeseçilmelidir.

  15. Pilot Proje– (Uygun Model) • Agile konusundauzmankişilerdeneğitimvedanışmanlıkdesteğialınması • Ortaderecelikritikbirprojenin pilot projeolarakseçilmelidir. NedenOrtaDerecelibirprojeseçilmelidir? Düşükdereceliprojeseçildiğitakdirdeyönetimtarafından da gerekliilgivedesteğigörmeyebilir. Yüksekkritikseviyeliprojeseçildiğindeisebaşarısızolmadurumundaalınacakriskleryüksetir. Bu nedenlerdendolayı hem kurumunilgivedesteğinialınabilmesivebaşarısızlığıdurumundaalınacakriskleriazaltmakiçinortaderecelibirprojeninçevikuyumsürecinde pilot projeolarakseçilmesiuygunolacaktır.

  16. Pilot Proje– (Uygun Model) • Projesüresiçokkısaveyaçokuzunolmamalıdır.Pilotprojeiçin ideal süre 4-6 ay arasındadır. • ProjeTakımıöğrenmeveiletişimyeteneklerigüçlüteknikkişilerdenoluşturulmalıdır. • Projetakımınıoluşturanüyelerbelirlenirkenyarısınınagilesüreçlerkonusundatecrübeyesahipolmasıtercihedilmelidir. • Projetakımıelemansayısının 5 ile 7 arasındaolmasıtercihedilmelidir. • Projetakımıiçin ideal ortamsağlanmalıdır.

  17. Çevik -Pilot Proje Model (UygunOlmayan Model) • Pilot projeolarakönemsizbirprojeninseçilmesi. Bu durumuda pilot projekurumunilgisiniveyönetimindesteğinialamayabilir. • Takımdaki roller içindedesteksağlayanprojesahibinerolverilmemesi • TeknikProjeYöneticisinin hem ürün sahibi hem scrum master rolünüyapmayaçalışması • Projedebaşarılıveyabaşarısızdurumlarınyönetimdengizlenmesi • Geçmişeyönelikdeğerlendirmetoplantılarınınyapılmaması • Kalitedepartmanınçevikgeliştimetakımınaiştiraketmemesişelalemodelindekiyapısınıkoruması.

  18. Çevik-Pilot ProjeModeli – ÇalışmaAlanıDüzeni (Uygun Model) • Agile Sürecinegeçiştetakımüyeleriarasındailetişiminsağlanabilmesiiçinçalışmaortamındaekipüyeleriarasındakibariyerlerkaldırılmalıdır. • Projeadımlarının, kullanıcıhikâyelerininaşamalarınınekipüyeleritarafındantakipedilebilmesiiçinbeyaztahtaveduvarlarkullanılmalıdır. • Dışortamdakiseslerdenyalıtılmış, yeterliışıkalanrahatbirçalışmaortamısağlanmalıdır. • Ekipüyelerinintelefonkonuşmalarınıçalışmaalanıdışındayapmalarısağlanmalıdır.

  19. Çevik-Pilot ProjeModeli – ÇalışmaAlanıDüzeni (Uygun Model) • Ekiptekiherkesiniterasyondakigereksinimlerindurumunutakipedebildiklerindeneminolunabilmelidir.İterasyondurumlarıiçinçalışmaalanındakibeyaztahtaveduvarlarkullanılabilir. • Günlük durum toplantılarınınyapılabilmesiuygunyersağlanmalıdır. • Günlüktoplantıların her günaynısaatteyapılmasıönemlidir. Bu nedenlegünlüktoplantılariçinsaatbelirlenmelidir.

  20. Pilot ProjeModeli – ÇalışmaAlanı (UygunOlmayan Model) • FarklıProjetakımlarınınaralarındasesyalıtımıolmayanaynıaçıkalandaçalışmasıdurumu • Fonksiyonelolarakbağlantılıolantakım /takımüyeleriarasındakubik,duvarvsolmasındandolayıtakımlarımbirbirinigörememesi • Merkezivesahaekipüyeleriolmasıdurumundasahaüyelerinin/takımlarınınbiribiriyleiletişimkurabilmeleriiçiniletişimyazılımlarınınmevcutolamaması • Aynılokasyondaçalışantakımüyesinineşzamanlıbaşkaprojeyeatanması • Takım projeçalışmaalanındatelefongörüşmelerininyapılabilmesi

  21. SCRUM SÜRECİ • Sürüm Planlaması • Kullanıcı Hikayelerinin Oluşturulması • Sürüm İçeriğinin Belirlenmesi • Süre Tahmini Yapılması –Planlama Oyunu • Sürüm Kapsamının Belirlenmesi • Sprint Kapsamlarının Belirlenmesi

  22. SÜRÜM PLANI: • Sürüm, biryazılımsistemininbirveyabirdenfazlaözellikimplementasyonunuihtivaedenbirversiyonudur. Her sürümbirileüçaylıkbiryazılımsürecindensonraoluşanözellikleriihtivaeder. • Sürümplanıprojeninyolharitasıdır.Buplandaözelliklerinhangisırayagöreimplementeedileceğivehangitarihteyenisürümlerinoluşturulacağıyeralır.

  23. KULLANICI HİKAYELERİ: • Kullanıcıhikayelerikartlarımüşteritarafındanistenensistemözelliklerininbirya da ikicümleileanlatıldığıkartlardır. • Geliştiricitarafındanimplementasyonkullanıcıhikayeleribazalınarakyapıldığıiçinanlaşılırolmalıdır. • Kullanıcıhikayekartlarımüşteritarafındanprojekapsamındaistenentümözellikleriçinhazırlanır.Tümkullanıcıhikayekartlarınıiçerendoküman “Product Backlog” olarakadlandırılır.

  24. Sürüm İçeriğinin Belirlenmesi: • Ürünsahibi müşterikendiyazılımtakımınaürüniçeriğinde(Product Backlog) kararlaştırılankullanıcıhikayelerini (User Stories) önceliksırasınagörebelirtirvehikayekartlarınıtahminyapılmaküzeregeliştiricilereverir.

  25. Süre Tahmini Nasıl Yapılır: • Geliştiricilermüşteritarafındanseçilenkullanıcıhikayesininimplementasyonsüresinitahminederler • Tahminlerinsağlıklıyapılmasıiçin her kullanıcıhikayesiiçin her geliştiricilerplanlamakartlarıiletahmindebulunulanoyunuoynarlar

  26. Planlama Oyunu:

  27. Süre Tahmini Nasıl Yapılır: • Geliştiricilerin her biribuplanma kartlarından birsetesahiptir.Seçilenbirkişikullanıcıhikayesindekigereksinimiokur.Müşteribukullanıcıhikayesiiçingerekliimplementasyonsüresinisorar. • Geliştiricilerin her biriayrıayrıgereklisüreyekarşılıkgelenkartlarınıgösterir. • Tahminleriçinhikayepuanları (story points) kullanılır. 1 hikayepuanıörneğin 1 işgünü (8 saat) olabilir. Geliştiriciler her kullanıcıhikayesinikendibaşınatahminetmekyerine,kullanıcıhikayelerinibirbirleriylekıyaslayaraktahmindebulunurlar.

  28. Load Faktör: • Zamantahminiyapılırkengeliştiricinin ideal şartlardabirgünde 8 saat program yazmasıdüşünülmektedir.Halbukinormaldegeliştiricilerprogramlamadışındagüniçindebilgialışverişi,toplantıvbişlerleuğraşmadurumundakalmaktadır.Bunedenletahminyapılırken load factor oranınınhesabakatılmasıdahasağlıklıtahminleryapılmasınısağlar.

  29. Sürüm Kapsamının Belirlenmesi: • Ürün İçerik kapsamındakikullanıcıhikayelerininönceliklerivetahminigerçekleştirilmesüreleribelirlendiktenimplementeedilecekolankullanıcıhikayelerimüşteritarafındanbelirlenir. • Sürümplanıprojeninbaşlangıcındayapılanvebirdahadeğişmeyenbir plan değildir. • Müşteriherhangibiriterasyondayenibirkullanıcıhikayesinineklenmesini ,çıkarılmasınıveyadeğiştirilmesinitalepedebilir.

  30. Sprint Kapsamlarının Belirlenmesi: • Sprint Toplantısı -1 • Sprint Toplantısı -2 • Sprint Gözden Geçirme Toplantısı • Sprint Kapatma Toplantısı

  31. Sprint Planlama Toplantısı -1: • Her sprint başlangıcında sprint planlamatoplantısıgerçekleştirilir • Sprint uzunluğu 2 ile 4 haftaarasındaolmalıdır. Tahminlerveöncelikleregöre sprint içerisindeyapılacakkullanıcıhikayeleribelirlenir. • Seçilengereksinimlerle Sprint Backlog oluşturulur

  32. Sprint Planlama Toplantısı -2: • Bu toplantıdaişlerinteknikboyutuaçıklanır. Geliştiricilerkullanıcıhikayelerinigözdengeçirerekgörev (task) listesioluştururlar. Bu görevlergörevkartlarına (task cards) yazılır. • Görevkartlarıaitolduklarıkullanıcıhikayesininyeraldığıhikayekartıylagruplandırılır.

  33. Sprint Planlama Toplantısı -2: • Bu toplantıdaişlerinteknikboyutuaçıklanır. Geliştiricilerkullanıcıhikayelerinigözdengeçirerekgörev (task) listesioluştururlar. Bu görevlergörevkartlarına (task cards) yazılır.

  34. Görev Tahtası: • Sprint içeriğininveilerlemedurumununtakipedilebilmesiiçindörtsutunlubirgörevtahtasıkullanılır: 1. sütundasprintdebulunankullanıcıhikayeleri 2. sütundagörevler (“ToDo“) 3. sütundaçalışma (“Progress“) ve 4.sütun'da teslimehazir (“Done”) olanhikayelerbulunur.

  35. Görev Tahtası:

  36. Zaman Grafikleri: • Sürümve Sprint ileilgiliilerlemedurumlarınıizlemekiçinprojeboyunca Release Burndownve Sprint Burndowngrafiklerindenyararlanılır.

  37. RelaseBurndown: • Kalangereksinimler/geçenzamangrafiğidir. Projebaşlamadanproductbacklogiçerisindekitümgereksinimlerinbirgrafiktedikeyolarakyazılır. • Ardındanher sprint bittiktensonrayataybölümbitengereksinimlerlegüncellenirveböylelikleprojeninhayatsürecindeyukarıdanaşagıyadoğrugidenbiryatayçizgioluşur.

  38. Sprint Burndown:

  39. ÖRNEK :SCRUM DUVAR PANOSU

  40. SCRUM İLE YARDIMCI YAZILIMLARIN KULLANILMASI: • DuvarPanolarınınvebeyaztahtalarınkullanılmasıküçükveaynılokasyondaolanekipleriçinönerilsededeğişiklokasyondaolan ,karmaşıkvekalabalıkekipleriçinyönetilmesivetakipedilmesizorbiryöntemdir. • Günümüzde scrum sürecineuygunçeşitliyazılımlarvasıtasıylakullanıcıhikayelerioluşturulabilmektesürümve sprint takibiyapılabilmektedir.

  41. YARDIMCI YAZILIMLAR KULLANILMASININ GETİRİLERİ: Süreçtakibininelektronikortamataşınmasıile • Sürümtakibi • Sprint Takibi • Sprint kapsamındakikullanıcıhikayeleri, • Kullanıcıhikayelerineatananprogramcılar, • Programcılarüzerindekiişyükleri • Burndowngrafikler • Her türlüilerlemeraporugibiprojehakkındagerekliolabilecek her türlübilgiyekolaycaulaşılabilmektedir. • Scrum sürecineuygunyazılımlarkullanılmasıgelenekselyöntemlerdençevikyöntemegeçişsürecinidehızlandırmaktadır.

  42. ONTIME YAZILIMI • AxasoftfirmasınınürünüolanOntimeürünü scrum uyumluçokkullanıcıdesteğiolanprojeyönetimvetakipyazılımıdır. • Ontimeürünüilesprintlerveiçerdiklerikullanıcıkartlarıoluşturulmasınınyanındagereksinimbazındagörevleroluşturulupekipiçerisindekiilgiliprogramcıyabağlayabilmekgibiprojeyönetimisırasındaduyulacak her türlüihtiyacakarşılıkverebilmektedir.

  43. 1. ADIM YeniProjeOluşturulması: • Araççubuğuüzerinde Add>>New Project butonunatıklanarakyeniprojeoluşturulur.

  44. 2. ADIM YeniSürüm(Release) Ekleme: • Release TabıseçildiktensonraEkle (+) tuşunabasılarakyenibir release oluşturur.

  45. HataTakipEkranı: HataTespitedildiktensonrailgilikayıtınoluşturulduğuekrandır.Hata ilk bildirildiğinde Workflow step Reported durumundadır.ekippersonelihatayıdüzelttiktensonradurumunu test edilebilirolarakgünceller.

  46. Özellik Durum Ekranı: • Projeboyuncamüşteriveyaekiptarafındanyapılmasınınfonksiyonelaçıdanönemliolduğuisteklerintakipedildiğiekrandır.Yapılmasıuygungörülenisteklerindurumuburdantakipedilebilir.

  47. Yeni Özellik Ekleme: