Başarılı Yazılım Projelerinin Sırrı: Değişimi Kucaklamak -

Slides:



Advertisements
Benzer bir sunumlar
EFQM MİLLİ EĞİTİM BAKANLIĞI EĞTİMDE MÜKEMMELLİK MODELİ
Advertisements

GİRİŞİMCİLİK Mustafa Özhan KALAÇ.
Kalite Koordinasyon Grubu, Genel Bilgilendirme Toplantıları
Ar-Ge Proje Yönetimi 22 KASIM Son söz • Geleceği şekillendirebilmek adına, bugüne kadar hiç denenmemiş olan daha doğru olabilir ve daha etkin ve.
Strateji Tasarımı İlker acar.
MODÜL 4 Organizasyon.
TEMEL YETENEK RAQİF QASIMOV.
G İ R İŞ VE GENEL KAVRAMLAR Tıp, İnşaat, Elektronik, Eğlence, Alışveriş gibi bir çok sektörde kullanılır Analiz, tasarım, geliştirme, test, canlı ortam.
PROJE YÖNETİMİ VE RİSK ANALİZİ
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
BELGELEME Ian Sommerville, “Software Documentation”,
ÜNİVERSİTELERDE İŞ MÜKEMMELLİĞİ MODELİ 2 MART 2003.
Proje yönetiminde başarının yeni formülü. Daha başarılı projeler Daha ekonomik çözümler Daha özelleşmiş hizmetler için… Neden ?
Proje Dosyanızda Yer Alacak Belgeler
SÜREÇ YÖNETİMİ Dr. Selami ERARSLAN İstanbul 2011.
Maltepe Üniversitesi Mühendislik Fakültesi
SİSTEM ANALİZİ VE TASARIMI
PROJENİN PLANLANMASI 1.
Bora GÜRSEL CBÜ BAUM Proje Yöneticisi
Yazılım Proje Yönetimi
AKDENİZ ÜNİVERSİTESİ TOPLAM KALİTE YÖNETİMİ ÜST DÜZEY YÖNETİCİ SEMİNERİ 1-2 MART 2003 ANTALYA.
Sunanın Adı | Şirket Adı
Bilgi Sistemi Organizasyonlar içerisindeki kontrol ve karar verme mekanizmalarında kullanılacak bilginin toplanması, işlenmesi, saklanması ve dağıtılmasını.
BİLİŞİM TEKNOLOJİLERİ
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
Bilişim Sistemleri Mühendisliği nedir? Neden ihtiyaç vardır?
Yedinci Bölüm İşletme YÖNETİMİNİN FONKSİYONLARI.
Test Driven Development (TDD) Nedir?
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
Çevik Metodolojiler mi Geleneksel Metodolojiler mi?
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
DENEME.
Ö.Yavuz KARAGÖZ Mevlüt BALTA Hasan AKKOÇ
BÜTÇELERİN KONTROLÜ.
İNOVASYON.
I-coni-con Yazılım Mühendisliği 1 Bölüm 1 Projeler Neden Başarısız Olur.
E ğ itimde Kalite nedir? *Kalite, ko ş ullara uygunluktur. *Kalite, ko ş ullara uygunluktur. *Kalite, ögrencilerin ihtiyaçlarıdır. *Kalite, amaçlara uygunluktur.
Bilimsel Araştırma ve Proje Yönetimi
Sistem Analizi Sistem Analisti
Bölümün Amacı Bu bölüm, örgüt yapısının temel kavramlarını tanıtıyor ve bir yapıyı örgüt şemasında göründüğü şekliyle nasıl tasarlayacağımızı anlatıyor.
Konu: Kritik Süreçlerin Belirlenmesi
Bölümün Amacı Bu bölüm, örgütlerin nasıl değiştiğini ve yöneticilerin yenilik ve değişim sürecini nasıl yönettiklerini keşfetmektedir.
Kurumsal ve Gelişmiş Stratejik Planlama Çözümü.
YENİKENT AHMET ÇİÇEK TEKNİK VE ENDÜSTRİ MESLEK LİSESİ TOPLAM KALİTE YÖNETİMİ ÜST DÜZEY YÖNETİCİ SEMİNERİ 2010 ANKARA Nihat BÜLBÜL.
(Proje Yönetimi ve Danışmanlık Metodları)
SİSTEM VE YAZILIM Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. Yazılım, bilgisayar sistemlerinin bir bileşeni.
Topluluk İnovasyon Girişimi Süreç Açıklaması ve Yol Haritası Dokümanı 26 Mayıs
Toplam Kalite Yönetimi
 Projeler üç nedenle sona erdirilirler. 1. Proje amaçlarına ulaşılmış ve başarılı olarak tamamlanmıştır. 2. Projenin durdurulması gerekmektedir. 3. Proje.
Proje Hazırlama Eğitimi Dr. Necati VARDAR KTO Karatay Üniversitesi Malzeme Bilimi ve Nanoteknoloji Mühendisliği Öğretim Üyesi.
YONT 409 PROJE YÖNETİMİ.
 Bir projeyi yönetmek üzere görevlendirilen ve projeyi, mümkün olan en yüksek üretkenlik, en düşük belirsizlik ve risk ile yürütmekten sorumlu kişidir.
PROJE YÖNETİMİ. Şirket veya kurumların stratejik veya operasyonel hedeflerini gerçekleştirmek üzere tasarlayıp yürüttükleri faaliyetler bütünüdür. Proje.
Bilgisayar Mühendisliğindeki Yeri
Dr. Adil AKINCI Bankacılık ve Finans Bölümü
ÇEVİK (Agile) SÜREÇLER Değişen gereksinimler, teknik riskler gibi önceden belirlenemeyen durumlara ve yazılım ürününü etkileyebilecek her tür değişikliğe.
Sistem Analizi ve Tasarımı
ISO 9001:2015 standardı – Maddelerinin Tanıtımı
ADIYAMAN ÜNİVERSİTESİ
SAP SE, merkezi Walldorf, Almanya'da bulunan, Avrupa'nın en büyük yazılım şirketidir.
TEKSTİL MÜHENDİSLİĞİ HAKKINDA……
TKY UYGULAMASI.
ISO 9001:2015 standardı – Maddelerinin Tanıtımı
ERP Projesinin Aşamaları İzmir. ERP Projesinin Aşamaları SatışSatış - Başlangıç – Kurulum – Analiz – Plan – Uyarlama – Eğitim – Geliştirme.
Yazılım Mühendisliği Temel Süreçler - Sistem Analizi
Yazılım Mühendisliği Temel Süreçler – PLANLAMA II
NİŞANTAŞI ÜNİVERSİTESİ
İLERİ VERİ TABANI UYGULAMALARI
Eşgüdümleme ve Kontrol
Sunum transkripti:

Başarılı Yazılım Projelerinin Sırrı: Değişimi Kucaklamak Mart 2007 – Bilgi Üniversitesi Özgür Yazılım ve Açık Kaynak Günleri

18/09/2016Slide 2 Doğru yok! ✔ Bu sunumda mutlak doğru herhangi bir bilgi yok, bu dahil. Beni sorumlu tutmayın! ✔ Evde deneyebilirsiniz. ✔ Kötü örneklerden edinilen tecrübe... ✔ Başarı ne demek? ✔ Bu konudaki ilk sunum denemem :-)

18/09/2016Slide 3 Sunum kimler için? ✔ Yazılım geliştiriciler ✔ Proje yöneticileri ✔ Yazılım geliştiricilerin işverenleri ✔ Yazılım projelerinin müşterileri

18/09/2016Slide 4 Özet ✔ Biraz psikoloji, biraz tarih, biraz teori ✔ Geleneksel yazılım geliştirme süreçleri ✔ Canlı yayın kötü örnek: birlikte üretelim ✔ Çevik geliştirme süreçleri ✔ İletişim ve işbirliği kültürü

18/09/2016Slide 5 Bir yazılımcının psikolojisi ✔ Sanatkâr mı, zanaatkâr mı? ✔ Mühendis mi, bilim adamı mı? ✔ Bir sonraki zor soruna meydan okumak ✔ Çay/kahve/alkol bağımlı, uykuya düşman, gözlüklü göbekli, insan ilişkilerinde sorunlu ✔ Sistem yöneticisinden ne farkı var? ✔ İlerleyen yaşlarda memuriyet

18/09/2016Slide 6 Biraz tarih ✔ Yarım asırlık yazılım seceresi ✔ NATO Yazılım Mühendisliği Konferansı'nda “yazılım krizi” tanımı (1968) NATO Yazılım Mühendisliği Konferansı ✔ Yazılım geliştirme süreçlerini mühendislik disiplinine benzetme çabaları ✔ İnsanoğlu entropiye direniyor mu?

18/09/2016Slide 7 Proje planlama ✔ Yeni bir terim, 2. dünya savaşından bu yana kullanılıyor. ✔ Türkiye'de ilk defa (bugün de en etkin kullanan) 1950'lerde inşaat sektöründe kullanılmış; pek değişmemiş. ✔ Önce plan, plana göre faaliyet.

18/09/2016Slide 8 Geleneksel süreç: Şelale modeli Planlam a Anali z TasarımGeliştirm e Uygulam a

18/09/2016Slide 9 Şelale modeli (2) ✔ Projede sürpriz olmayacağından eminsek, işin tamamını biliyorsak, değişme ihtimali yoksa uygulanması makul. ✔ Paralel yürüyen çok fazla proje varsa, personel projeler arasında sürekli yer değiştiriyorsa uygulanması makul.

18/09/2016Slide 10 Spiral model Sonraki aşamaları planla Hedefleri, alternatif ve sınırlamaları belirle Alternatifleri değerlendir, riskleri belirle ve çöz Sonraki adımı geliştir Prototip Kavram Gereksinimler Tasarım Geliştirme

18/09/2016Slide 11 Spiral model (2) ✔ 1988'de Barry Boehm tarafından geliştirildi ✔ Daha uzun süreli, gereksinimlerin belirli ölçüde kontrol altında olduğu ve değişikliklerin sınırlı olduğu projeler için ✔ Proje ekibi hedef ürün hakkında bilgi ve tecrübeye sahip değilse makul ✔ İlk yinelemeli geliştirme süreci

18/09/2016Slide 12 Canlı yayın kötü örnek ✔ Bir müşteri bulalım. ✔ Hedefleri ve gereksinimleri belirleyelim. ✔ Gerçek dünya etkenleri :-) ✔ Tuz, biber ekleyelim. ✔ Sonuçları değerlendirelim. ✔ Aynı hataları tekrarlıyor muyuz?

18/09/2016Slide 13 Gerçek dünya etkenleri ✔ Gereksinimler değişir ✔ Müşteri değişir, müşterinin fikirleri değişir ✔ Proje ekibi veya ekipteki bireyler değişir ✔ Teknoloji ve araçlar değişir

18/09/2016Slide 14 Başarı nedir? ✔ Bir yazılım projesinin başarılı olup olmadığının temelde 2 ölçüsü var: ✔ Yönetim başarısı: Ürünü zamanında, bütçeye uygun maliyetle ve kabul edilebilir kalite ile teslim etmek. ✔ Ürün başarısı: Ürünün müşterinin hedeflerine olan etkisinin beklentileri karşılaması.

18/09/2016Slide 15 Kıvrak (Agile) Süreçler ✔ Bireyler ve etkileşimler, süreçler ve araçlardan; ✔ Çalışan yazılım, kapsamlı belgeden; ✔ Müşteri ile işbirliği, sözleşme pazarlığından; ✔ Değişimi karşılamak, bir planı izlemekten daha değerlidir.

18/09/2016Slide 16 Değişimi kucaklamak ✔ Değişimi kabullenmek ve bununla yaşamaya alışmak önemli. ✔ Bugün için tasarlamak ve geliştirmek. ✔ Değişimin sonuçları. ✔ Herkes haberdar olmalı.

18/09/2016Slide 17 Değişimle yaşamak ✔ En kolay çözüm: yinelemeli süreçler ✔ Kendi içinde analiz, tasarım, geliştirme, test ve uygulama süreçlerini barındıran daha kısa süreli (1 hafta-1 ay) adımlar ✔ Sıklıkla hazırlanan ve yalnızca tamamlanmış işlevleri içeren sürümler. ✔ Sürekli iletişim ve geri besleme.

18/09/2016Slide 18 Yinelemeli süreçler KapsamPlan Yineleme Sürüm Test TasarımGeliştirm e Düzeltme

18/09/2016Slide 19 Çevik süreçler: Temel kavramlar ✔ Görevleri değil, işlevleri tamamlıyoruz. ✔ Değişimi engellemek yerine ona uyum sağlıyoruz. ✔ Yazılımın çalışması, belgelenmesinden daha önemli. ✔ Yineleme adımlarını kararların zamanında verilmesini ve doğru önceliklendirmeyi sağlamak için kullanıyoruz. ✔ Planlama ve süre tahmini takım işidir, bir proje yöneticisi bu işleri tek başına yapmamalıdır. ✔ Geri besleme projenin gelişimi boyunca sürekli olarak sağlanmalı, projenin sonunda gelen yorumlar yararlı değil! ✔ Hiçbir süreç iyi insanların yerini alamaz.

18/09/2016Slide 20 Extreme Programming ✔ Öncelikli olarak yazılım geliştiriciyi hedefleyen tek çevik geliştirme süreci. ✔ Geliştirici odaklı; test bağımlı. ✔ Bir XP takımında herkes geliştirici olabilir (müşteri, analist, test ekibi, yönetici...) ✔ İkili/çift programlama. ✔ Sürdürülebilir hız. ✔ Müdahil müşteri; küçük ve bir arada çalışan takımlar.

18/09/2016Slide 21 Scrum ✔ Yönetim odaklı, belirsiz ve deneysel süreç. ✔ Geliştirme sürecinin hedef ürünü etkileyen tüm yönlerini müşteriye görünür kılıyoruz. ✔ Müşterinin ürünü sıklıkla ve düzenli olarak incelemesini olanaklı kılıyoruz. ✔ İncelemelerde kabul edilebilir sınırların dışında bir sapma bulursak müşterinin veya projenin yeni duruma uyması gerek. ✔ Geliştiricilerin günlük işlerine karışmıyor. ✔ Sıklıkla XP ile birlikte kullanılıyor.

18/09/2016Slide 22 Diğer popüler metodolojiler ✔ Crystal/Crystal Clear ✔ Feature-Driven Development ✔ Adaptive Software Development ✔ Lean Software Development ✔ Dynamic Systems Development Method

18/09/2016Slide 23

18/09/2016Slide 24 Ne zaman çevik olmalı? ✔ Proje hedefi kritik değilse (insan hayatı) ✔ Geliştiriciler tecrübeli ise ✔ Gereksinimler sık sık değişiyorsa ✔ Takım çok büyük değilse (<20) ✔ Kaos altında daha iyiye giden bir kurum kültürü varsa, düşünmeyin bile!

18/09/2016Slide 25 Ne zaman geleneksel yola gitmeli? ✔ Proje hedefi insan hayatını etkiliyorsa ✔ Geliştiriciler tecrübeli değilse ✔ Gereksinimler büyük ölçüde belliyse ve pek değişmiyorsa ✔ Takım büyükse (>20) ✔ Kurum kültürü düzen emrediyorsa... geleneksel yoldan gidiyormuş gibi yapmak uygun olabilir :-)

18/09/2016Slide 26 Nasıl çevik olunur? ✔ Kaynak kod yönetim sistemi kullanarak. ✔ Yapılacak işleri ortak bir yere kaydederek. ✔ Kaynak kodun derlenmesi ve sürüm hazırlanması işlemlerini otomatik hale getirerek. ✔ Yazılımın bir test sistemi üzerine kurulması işlemini otomatik hale getirerek. ✔ Geliştiricilerin çalıştıkları kod parçalarını düzenli olarak bir araya getirerek.

18/09/2016Slide 27 Nasıl çevik olunur? (2) ✔ Basit tasarım. ✔ Düzenli temizlik: refactoring. ✔ İkili/çift programlama. ✔ Kod tabanına ortaklaşa sahip çıkmak. ✔ İşlevler veya işlev grupları için küçük takımlar oluşturmak. ✔ Birim testleri kullanmak.

18/09/2016Slide 28 Test-güdümlü geliştirme ✔ Alışması biraz zor ;-) ✔ İşlevleri tasarlamadan önce, nasıl test edileceklerini belirlemek ve işlevi test edecek kodları yazmak gerek. ✔ Tasarımda basitlik, yeniden kullanılabilir kod tabanı getiriyor. ✔ Özellikle çalışanların sık sık değiştiği takımlarda hayat kurtarabilir.

18/09/2016Slide 29

18/09/2016Slide 30 Çevik olmayan yönetim ✔ Şelale yaklaşımında proje oldukça detaylı ve kapsamlı bir planlama ile başlıyor. ✔ Proje yöneticisi plan ve projenin gerçek durumu arasındaki farkı kapatabilmek için bolca zaman harcar, sonunda vazgeçer. ✔ Plan zıvanadan çıkar, işe yaramaz eski bir döküman haline gelir.

18/09/2016Slide 31 Çevik yönetim ✔ Başlarken basit ve üstü kapalı bir plan. ✔ İlk sürüm için işaretlenmiş işlev listesi. ✔ Her yinelemeden önce takım kendisine bir miktar iş seçer. Bu seçim sırasında geliştirme hızı hesabı kullanılır. ✔ Projenin yaşam süreci boyunca planlama, değerlendirme ve ölçme faaliyetleri. ✔ Bir işlev ya tamamdır, yada değildir. (“70% bitti” için tebrik yok)

18/09/2016Slide 32 İşlevlerin yönetimi ✔ Tüm işlevler listelenir, 4 seviye (mutlak gerekli, eklenmesi iyi olur, mümkünse yapalım, önemsiz) kullanılarak önceliklendirilir ve sıralanır. ✔ İşlevsel olmayan gereksinimler (teknik ve sanatsal işler) de birer işlev gibi önceliklendirilir ve plana eklenir.

18/09/2016Slide 33 Süre tahmini ✔ Bir iş için süre tahminini mutlaka işi yapacak olan kişi yapmalı. ✔ Süre tahminleri saklanmalı ve işler tamamlandıktan sonra olası sapmalar ölçülmeli. ✔ Ölçme sayesinde projede çalışanlar zamanla daha belirgin tahminler yapabilmeye başlıyorlar.

18/09/2016Slide 34 Bitmiş işin tanımı ✔ Birim testleri olan ve bu testleri geçen ✔ Varsa kullanıcı kabul testlerini karşılayan ✔ Kurulmaya ve kullanılmaya hazır ✔ Mümkünse/gerekliyse belgelenmiş

18/09/2016Slide 35 Bir projeye başlarken ✔ Projenin görevi tanımlanmalı. ✔ Proje ürününün sağlayacağı işlevler listesi ✔ İlk sürüm planı

18/09/2016Slide 36 Çevik müşteri ✔ İş alanını iyi bilmeli. ✔ Geliştirilecek sistemin amacını hem bir kullanıcı olarak, hem de stratejik ve organizasyonel olarak anlamalı. ✔ Proje takımı müşteriye kolaylıkla erişebilmeli, birlikte çalışabilmeli, yeterince zamanı olmalı. ✔ Karar vermekte istekli ve yetkili olmalı, verdiği kararların sorumluluğunu almalı. ✔ Mükemmeliyetçi olmamalı. ✔ Bir de politik beceri sahibi olsa harika olur!

18/09/2016Slide 37 İletişim kültürü oluşturmak ✔ Kararları fikir birliği ile vermek. ✔ Birlikte ve yakın çalışma ortamı. ✔ Önemli bilgileri görünür bir yere asmak. ✔ Tepeden tırnağa açık fikirlilik. ✔ Az konuşup çok dinlemek. ✔ Çok konuşup az e-posta göndermek. ✔ İnsanlara çalışacak zaman vermek. ✔ Günlük veya günaşırı kısa toplantılar (kötü haber, hiç haber gelmemesinden iyidir).

18/09/2016Slide 38 Belgeleme ✔ Gerekliliğini sorgulamak gerek. ✔ Mümkün olan en basit çözüm, en iyisidir. ✔ Bir kere okunup unutulacaksa eğitim önermek. ✔ Kurumsal onay/imza mekanizmaları... ✔ Belgeleme işlerini de bir işlev gibi proje planına eklemek. ✔ Javadoc veya Wiki? ✔ Belgeyi isteyenleri belgeleme işine ortak etmek. ✔ Başka birine yaptırmak? Hmm...

18/09/2016Slide 39 Çevik projeler için İK süreci ✔ İletişim ve işbirliği yapabilme becerisi ✔ Dürüstlük. ✔ Alçakgönüllülük ✔ Merak ✔ Öğrenme arzusu

18/09/2016Slide 40 Kaynaklar ✔ Integrating Agile Development in the Real World, Peter Schuh. ✔ Agile Software Development, Alistair Cockburn. ✔ Agile Project Management with Scrum, Ken Schwaber. ✔