580 likes | 1.08k Vues
YAZILIM PROJELERİNE SCRUM YAZILIM GELİŞTİRME MODELİNİN UYGULANMASI VE SCRUM YÖNETİM YAZILIMI :ONTIME. CENK DERİNÖZLÜ. PROBLEM. Teknolojik değişimler ve hızlı değişen müşteri gereksinimleri nin karşılanamaması Müşteri ihtiyacını karşılayan kaliteli ve hızlı ürün çıkarılamaması.
E N D
YAZILIM PROJELERİNESCRUM YAZILIM GELİŞTİRME MODELİNİN UYGULANMASIVE SCRUM YÖNETİM YAZILIMI :ONTIME CENK DERİNÖZLÜ
PROBLEM • Teknolojikdeğişimlervehızlıdeğişenmüşterigereksinimlerininkarşılanamaması • Müşteri ihtiyacını karşılayan kaliteli ve hızlı ürün çıkarılamaması
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
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
ÇÖZÜM • ÇEVİK YAZILIM GELİŞTİRME SÜRECİ
Ç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.
Ç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.
Ç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.
Ç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.
Ç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.
Ç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
Ç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.
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.
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.
Ç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ı.
Ç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.
Ç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.
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
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
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.
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.
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.
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
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.
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.
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.
Sprint Kapsamlarının Belirlenmesi: • Sprint Toplantısı -1 • Sprint Toplantısı -2 • Sprint Gözden Geçirme Toplantısı • Sprint Kapatma Toplantısı
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
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.
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ö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.
Zaman Grafikleri: • Sürümve Sprint ileilgiliilerlemedurumlarınıizlemekiçinprojeboyunca Release Burndownve Sprint Burndowngrafiklerindenyararlanılır.
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.
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.
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.
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.
1. ADIM YeniProjeOluşturulması: • Araççubuğuüzerinde Add>>New Project butonunatıklanarakyeniprojeoluşturulur.
2. ADIM YeniSürüm(Release) Ekleme: • Release TabıseçildiktensonraEkle (+) tuşunabasılarakyenibir release oluşturur.
HataTakipEkranı: HataTespitedildiktensonrailgilikayıtınoluşturulduğuekrandır.Hata ilk bildirildiğinde Workflow step Reported durumundadır.ekippersonelihatayıdüzelttiktensonradurumunu test edilebilirolarakgünceller.
Özellik Durum Ekranı: • Projeboyuncamüşteriveyaekiptarafındanyapılmasınınfonksiyonelaçıdanönemliolduğuisteklerintakipedildiğiekrandır.Yapılmasıuygungörülenisteklerindurumuburdantakipedilebilir.