ÇEVİK YAZILIM GELİŞTİRME AGILE KEEP IT SIMPLE

Benzer belgeler
SCRUM KEEP IT SIMPLE

BMH-405 YAZILIM MÜHENDİSLİĞİ

Project Management Emin OCAK

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

Akış. Atik Yazılım Geliştirme Tanımı ve Kavramlar Tarihi Metotları Dünyada Atik Yazılım Geliştirme Örnekleri Sonuç BİL 588 2

SİSTEM ANALİZİ VE TASARIMI

Scrum Çevik Süreçlerinin Ar-Ge Yazılım Projelerinde Kullanımı

Sedona. Eğitim Kataloğu

YMT 412-Yazılım Kalite Ve Güvencesi Çevik Yazılım Geliştirme 1/47

Sedona. Nisan 2013 Eğitim Kataloğu

1.Yazılım Geliştirme Metotları 1

Kurumsal Yönetim Sistemleri Sistemleri

Yazılım Mühendisliği 1

IBM CLM Çözümleriyle Çevik Yazılım Süreçleri. Canberk Akduygu & Koray Okşar

DİKMEN BÖLGESİ STRETEJİK GELİŞİM PLANI

CMMI ve Çevik Yöntemler

PROJE YÖNETİMİ MODEL VE ÇERÇEVELERİ ENF304 IT PROJE YÖNETİMİ ÖĞR. GÖR. MUSTAFA ÇETİNKAYA

PROJE Serdar ÇETİN. Güven üzerine kurulu müşteri odaklı yaklaşım başarımızın temelidir.

İleriye doğru açık bir yol

( ( ( ( ( ( Müşteri Odaklılık

PROJE Serdar ÇETİN. Güven üzerine kurulu müşteri odaklı yaklaşım başarımızın temelidir.

Güneş Enerjisi nde Lider

Document Title Issue Date R21.00 Form 01 24/07/2014

Marmara Üniversitesi Lojistik & Tedarik Zinciri Yönetimi Sertifika Programı Marmara University Logistics & Supply Chain Management Certificate Program

Büyük Ölçekli bir Gömülü Yazılımın Geliştirme ve Otomatik Test Deneyimi

MerSis. Bilgi Teknolojileri Yönetimi Danışmanlık Hizmetleri

Information Technology Infrastructure Library ITIL

CMMI 2. Süreçleri ve XP Pratiklerinin Birlikte Kullanımına İlişkin Gerçek Hayat Tecrübeleri

Marmara Üniversitesi Lojistik & Tedarik Zinciri Yönetimi Sertifika Programı Marmara University Logistics & Supply Chain Management Certificate Program

YALIN ÇEVİK(AGILE) YAKLAŞIMIYLA YAZILIM GELİŞTİRME : SCRUM UYGULAMA ÖRNEKLERİ

Aşırı Programlama İçin Üç Yeni Pratik

FİRMA TANITIM. Bünyemizde bulunan ekiplerle beraber verdiğimiz hizmet inşaat nitelikleri ve inşaat kalemleri aşağıdaki gibidir.

2015 YILI FAALİYET RAPORU KAYNAKLARI

TOS 408 EKONOMİ İnşaat Mühendisliği Bölümü

VERİNETWORK BİLGİ VE İLETİŞİMTEKNOLOJİLERİ Anafartalar Mh. Sanayi Cd. Doğan Sk. No: 1/148 Ulus Altındağ / ANKARA

Mevcut Yazılım Değerlendirme Rehberi Kullandığınız yazılım ne kadar verimli?

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC)

Tanıtım Kitapçığı. Gayrimenkul Sektörü Değişime Startkey Çatısı Altında Hazırlanıyor

Büyük Ölçekli Bir Sistem Projesinde IBM Rational Jazz Platformu Kullanarak Çevik Süreçlerin Uygulanması. Serap Bozbey

Şeffaf İnsan Kaynakları. Aktif personel. Etkin yönetici

Yazılım Geliştirme Projelerinde Kontrolörlük / Müşavirlik Hizmetleri. Y.Müh. Kadriye ÖZBAŞ ÇAĞLAYAN, PMP Y.Müh. Ahmet DİKİCİ, PMP

All rights of this document reserved by Yilport Holding A.S. It is prohibited to copy, duplicate, quote and referring to this document without

12K ALL Çizgi Ötesi Liderlik Modeli

Enerji Verimli Çelik Evler

KALİTE BİRİM SORUMLULARI EĞİTİMİ

YAZILIM MÜHENDİSLİĞİ Şubat 2012 Yrd.Doç.Dr. Yunus Emre SELÇUK GENEL BİLGİLER

ARGUS Plus Version ERP Sistemi

30 yılı aşkın bir süredir, Rauland-Borg hemşire. çağrı sistemlerinde mükemmellik standardını. belirlemiştir. Şimdi de, komple, entegre ve

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

Türksat Yazılım Geliştirme Projelerinde SCRUM Kullanımı EKİM 2013

BAŞVURU FORMU ÖRNEK DÖKÜMAN

BMH-405 YAZILIM MÜHENDİSLİĞİ

TS EN ISO/IEC Kullanılabilir Arayüz Sertifikası Verilmesi Süreci

Genel Katılıma Açık Eğitimlerimiz Başlıyor!

Tüm Kurumsal İşlerinizde Profesyonel Çözümler

OĞUZ GRUP HAKKIMIZDA. Tek rdağ İstanbul. Den zl. İzm r. Aydın. Antalya. Gaz antep Mers n. Güvenlik Herşeyden Önce Gelir...

Giriş: Temel Adımlar YAZILIM GELİŞTİRME YAŞAM DÖNGÜSÜ. Belirtim Yöntemleri. Belirtim Yöntemleri

2013/101 (Y) BTYK nın 25. Toplantısı. Üstün Yetenekli Bireyler Stratejisi nin İzlenmesi [2013/101] KARAR

worksforce Saha Satış Otomasyon Çözümü

İşletmenize sınırsız fırsatlar sunar

Kullanım Durumu Diyagramları (Use-case Diyagramları)

BÖLÜM 2. Bilişim Sistemleri, İş Süreçleri ve İşbirliği. Doç. Dr. Serkan ADA

YEKTAMAK Makine ve Mühendislik; YEKTAMAK müşterilerinin ihtiyaçlarının belirlenmesinden projenin teslim edilmesine kadar olan süreçte;


cofaso ile farkı yaşayın Şubat

ALGORİTMA VE PROGRAMLAMA I

Kurumsal Mimari (TOGAF)

Profesyonel, verimli, yenilikçi sistemler...

Bursa Yenileşim Ödülü Başvuru Raporu

AGS. araştırma - danışmanlık - eğitim. AGS Araştırma Danışmanlık ve Eğitim Hizmetleri Ltd. Şti.

BİLGİ İŞLEM BÖLÜMLERİNİN DAHA KOLAY VE ETKİN YÖNETİLMESİ İÇİN BİR ARIZA KAYIT SİSTEMİ FATİH YÜCALAR ŞENOL ZAFER ERDOĞAN

İş Güvenliği, Kalite, Çevre, Enerji Yönetimi, Eğitim ve Danışmanlık Hizmetleri

HASTANE PERFORMANS İYİLEŞTİRME SÜREÇ(PROSES)LERİNDE İLETİŞİM, VERİ / BİLGİ ve PAYLAŞIM POLİTİKASI

Oracle çözüm ortağı olan firmamız, gerçekleştirdiği tüm projelerde oracle ürünlerinin güvenilirliğini ve teknolojik altyapısını sunmaktadır.

Mübeyyen TEPE KÜÇÜKOĞLU Yeni Yüzyıl Üniversitesi İstanbul. Prof. Dr. R. İbrahim PINAR İstanbul Üniversitesi

İÇ MİMARİ PROJELER İÇİN TASARIM AŞAMALARI REHBERİ

Đşletmenizi ve şikayetlerinizi dinleyip, çözümlerimizi isletmeniz bünyesine en uygun şekilde özelleştiriyoruz

İç denetimin yarattığı katma değer ve ölçümü

Șirket Profilimiz Kusursuz IT Projeleri Kurumsal Sistem Çözümlerimiz Kurumsal Bilișim Hizmetlerimiz İș Ortaklarımız

GÖREV TANIMLARI. : Muhasebe Sorumlusu

MERHABA. Techlife size teknolojiyi kullanırken hayatınızda sevdiklerinizle daha fazla vakit geçirme fırsatını yakalamakta katkıda bulunmak istiyor.

SUBA. SUBA CRM. Bulut Teknoloji ile İşinizi Zirveye Taşıyın! SMART TECHNOLOGY SOLUTIONS

YEŞİL FİLO Filo Yönetim Sistemleri

Isuzu Garaj (Kurum İçi Girişimcilik ve İnovasyon Takımı Kurulumu)

T.C. YILDIZ TEKNİK ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ SCRUM YAZILIM GELİŞTİRME METODOLOJİSİ İÇİN YÖNETİM SİSTEMİ TASARIMI VE GERÇEKLENMESİ

Lojistik ve Depolama Çözümleri

İSTANBUL SERBEST MUHASEBECİ MALİ MÜŞAVİRLER ODASI ISTANBUL CHAMBER OF CERTIFIED PUBLIC ACCOUNTANTS. İnsan Kaynakları

A- YENİLEŞİM YÖNETİMİ

KoçSistem. İK Uygulaması

IBM Rational ile Yazılım Yaşam Döngüsü Mehmet Çağrı ELIBOL IBM Rational Satış Yöneticisi

Korkmaz İskele, 2005 yılında iskele-kalıp sektöründe ticari faaliyetine başlayarak, üretimini yaptığı

4. ÜRÜN GELİSTİRME İŞLEMİ

Dijitalleşme Yolunda ERP Dönüşümü

NELER YAPIYORUZ? LEPA Anonim Şirketi Tanıtım Dergisi

2014 YILI FAALİYET RAPORU 2014 YILI FAALİYET RAPORU İNSAN. İnsan Kayanakları KAYNAKLARI

TEDARİK ZİNCİRİ YÖNETİMİ

Bildiğiniz Turint, bildiğiniz gibi değil!

İÇİNDEKİLER HAKKIMIZDA UZMANLIK FİKRİ MÜLKİYET İSTİHDAM TİCARİ İHTİLAFLAR DAVA VE İCRA TAKİPLERİ EKİBİMİZ REFERANSLAR İLETİŞİM

Lojistik ve Taşımacılık Sektöründe Yeni Hizmet Modeli. Lojistik ve Taşımacılık Sektöründe Yeni Hizmet Modeli

Formplast üretimli her ürün çok titiz ve sabırlı bir çalışmanın ürünüdür ve kalitesi uluslararası belgeler ile onaylanmıştır.

Transkript:

ÇEVİK YAZILIM GELİŞTİRME AGILE KEEP IT SIMPLE

İÇİNDEKİLER Sayfa Önsöz 3 Giriş 4 Tekrarlanan Yazılım Geliştirme Metodu 6 Çevik Yazılım Geliştirme Metodu 10 Referanslar 15 2

ÖNSÖZ Araştırmalara göre ülkemizdeki yazılım projeleri yönetimsel eksiklilerden dolayı ancak %50 başarı ve memnuniyet ile tamamlanabilmektedir. Ne yazık ki, bu ciddi iş gücü kaybı ve bu verimsiz üretim ile Türk yazılım sektörünün dünya devleriyle yarışabilmesi pek mümkün değildir. Geçmişe bakarsak, Avrupa ve Amerika daki büyük şirketler de bu dönemi yaşamışlar, daha verimli projeler üretmek üzere çeşitli yöntemler denemişler ve çoğu şirket yönetimde ve uygulamada en başarılı buldukları Agile (çevik) yazılım metodolojilerini benimsemişlerdir. Bu metodolojiler sayesinde, artan verimlilik ve esneklik ile projelerin kalitesini arttırmış ve başarı oranlarını %80 lere çıkartmayı başarmışlardır. Agile (çevik), dünya üzerinde kabul edilen yöntemler arasında en hızlı ve güvenli proje geliştirme metodolojisidir. Halen, birçok şirket tarafından hızla kullanıma geçirilmektedir. Ancak, ülkemizde henüz yaygın olarak kullanılmamakta ve birçok şirketin öz kaynakları ve zamanı çeşitli aksaklıklar nedeniyle boşa harcanmaktadır. ACM olarak, Türkiye de yaygınlaştırmaya çalıştığımız bu yönetimsel modeller ile ülkemizdeki yazılım geliştirme ve proje yönetimi kültürünün daha başarılı sonuçlar üreten bir hale gelmesi için çalışmalar yürütmekteyiz. Türkiye de belirli bir yazılım proje kültürünün oluşturularak, ülkemizin, ürettiği yazılımlarla dünyada ön sıralara girmesini hedeflemekteyiz. Bu doğrultuda ücretsiz olarak dağıtmakta olduğumuz bu kitapçığı, Türk yazılım sektörünü bilinçlendirmek, çevik yazılım yöntemlerinin tanınırlığını arttırmak ve yazılım kalitemizin artırılmasına katkıda bulunmak için sizlere sunmaktayız. Tamamen kendi imkânlarımız ve iyi niyet doğrultusunda hazırlanan bu kitapçık ile ilgili olarak, her türlü önerileriniz, eklemek istedikleriniz veya varsa düzeltilmesini düşündüğünüz hususlar için bizimle irtibata geçmenizi rica ederiz. Saygılarımızla, ACM Yazılım Çözümleri 3

GİRİŞ Yazılım geliştirmek, yeni bir ürün yaratmaya benzer ve yazılım projeleri süreç içerisinde değişerek şekillenir. Projelerde karşılaşılacak olan birçok problem, yazılım projesi doğası gereği başlangıçta öngörülebilir olmaktan uzaktır. Bu yüzden, yazılım geliştirirken alışılagelmiş klasik seri üretim metotları birçok koşulda başarılı çözümler üretmekten uzaktır ve başarı için daha esnek metodlara ihtiyaç duyulmakadır. Yüzeysel bir açıdan, seri üretim yaklaşımının ve yeni bir ürün geliştirmenin doğalarını karşılaştıracak olursak: Seri üretim yaklaşımı Yeni ürün geliştirmek Gereksinimler: proje başlangıcında belirli değişken Değişiklik: kısıtlı en üst seviyede Anlaşılacağı üzere, seri üretim yaklaşımı proje başlangıcında detaylı bir analiz sonucu gereksinimlerin belirlenmesi ve sonrasında da bu gereksinimler temel alınarak projenin sonlandırılmasına yönelik çalışırlar. Ancak, yeni bir ürün geliştirirken (yazılım geliştiriken) detaylı bir analiz ile birlikte tüm gereksinimlerin proje başlangıcında belirlenmesi pek mümkün değildir. Yeni bir ürün geliştirirken istekler ve bunun doğrultusunda gereksinimler sürekli değişim gösterme eğilimindedir. Gerçek dünya koşullarında yazılım projelerine bakacak olursak; - Proje başlangıcında müşteriler, tam olarak ne istediklerinden yüzde yüz emin değildirler. - Müşteriler isteklerini net bir şekilde dile getirmekte zorlanırlar. - Müşterilerin asıl istekleriyle ilgili detaylar proje başında fark edilebilir değildirler, süreç içerisinde yüzeye çıkarlar. 4

- Müşteriler isteklerinin gerçekleştiğini gördükçe, proje gözle görülür sonuçlar üretmeye başladıkça, isteklerinde değişiklik yapma eğilimindedirler. - Dış koşullar değişim içerisindedir ve projelerin bunlardan etkilenerek değişime uğramaları kaçınılmazdır. İşte bu yüzden, yazılım geliştirmek müşteri odaklı olmayı ve değişikliklere uyum sağlayabilmeyi gerektirir. Bunun aksine klasik yöntemlerle ele alınan yazılım projeleri değişime uyum sağlamakta güçlük çekerek kırılacak ve istenen başarıyı elde etmekte zorlanacaktır. Sonuç olarak, yazılım projeleri çoğunlukla yeni bir ürün yaratmaktır ve yeni bir ürün yaratma sürecinde değişiklikler kaçınılmazdır. Yazılım projelerinin bu gerçeklikler doğrultusunda ele alınarak yönetilmeleri gerekir. 5

TEKRARLANAN YAZILIM GELİŞTİRME METODU Tekrarlanan yazılım geliştirme metodu, yazılım projelerinin sıralı yinelemelerle oluşturulduğu bir yazılım gelişirme metodolojisidir. Tekrarlanan yazılım metodolojilerinde yazılım projeleri kendi içerisinde parçalara bölünerek ele alınır. Bu metodolojilerde, oluşturulan her bir parça kendi içinde küçük bir proje gibi düşünebilinir. Asıl proje hedefi, bu küçük projelerin birbirine eklenmesiyle elde edilmektedir. Yineleme 1 geri bildirim Yineleme 2 geri bildirim Yineleme 3 Sistem (ürün) gelişimi Ürün teslimatı Tekrarlanan yazılım geliştirme metodundaki her bir yineleme kendi içinde bir yazılım projesinin gereksinim analizi, dizayn, kodlama ve test gibi adımlarını bünyesinde bulundurur. Ancak, her bir yinelemenin içerisindeki bu proje adımlarının ağırlığı değişkendir. Öyle ki, ilk yinelemelerde gereksinim analizi kodlamaya göre daha yoğunken ileriki yinelemelerde durum değişerek gereksinim analizinin içeriği küçülmekte ve kodlamanın ağırlığı artmaktadır. 6

Gereksinim analizi Proje adımları Dizayn Test Kodlama Zaman Yineleme 1 Yineleme 5 Bir projedeki yineleme sayısı projeden projeye ve kullanılan modellere (XP, Scrum, vs) göre değişiklik gösterir. Ancak, bugün yaygın olarak kullanılan modellere bakıldığında yineleme uzunluklarının genellikle 1-6 hafta arasında değişiklik gösterdiği görülmektedir. Araştırmalar göstermektedir ki, yazılım projeleri büyüdükçe karmaşıklıkları artmakta ve projelerin başarılı olma oranları azalmaktadır. Diğer yandan projeleri parçalara ayıran tekrarlanan yazılım geliştirme metodolojileri, projelerin karmaşıklığını ve riski azaltmakta, verimliliği ve başarı oranlarını arttırmaktadır. Tekrarlanan yazılım geliştirme metodunda projenin küçük parçalara ayrılmasının yanında, bu yinelemer arasındaki geri bildirimler de büyük önem taşımaktadır. Geri bildirimler, proje gelişim sürecinin esnekliğini ve proje başarısını arttırmaktadır. Projeyle hedeflenen sonucun tam olarak anlaşılması ve elde edilebilmesi için geri bildirimler oldukça kritikir. Her ne kadar bu metodolojiyle esneklik destekleniyor olsa da, esneklik sınırsız değildir ve değişiklik oranı proje ilerledikçe azalmalıdır. Aksi takdirde, proje sonlandırılamayacak ve kargaşa ortamı doğacaktır. 7

%90 %80 %30 %55 %50 %25 %15 %5 yineleme 1 yineleme 2 yineleme 3 yineleme 4 Tamamlanan Gereksinim analizi % Tamamlanan Kodlama % Özetleyecek olursak, tekrarlanan yazılım geliştirme metodu: - ana projeyi parçalara bölerek karmaşıklığı azaltmakta, - bünyesinde bulundurduğu geri bildirimler sayesinde değişimi desteklemekte, - riskleri azaltmakta, - ve projelerin başarı oranını arttırmaktadır. İşte bu yüzden, artık tüm dünyada birçok yazılım projesi bu yöntem ile geliştirilmektedir. 8

verimlilik esneklik Tekrarlanan Yazılım Geliştirme başarı 9

ÇEVİK YAZILIM GELİŞTİRME METODU Çevik yazılım süreçleri, 1950 lerdeki üretim alanında verimliliğin artırılması için geliştirilen yalın yaklaşımların, yazılım sektöründe bir uzantısı olarak ortaya çıkmıştır. Yazılım dünyasında çeşitli çevik yaklaşımlara 1970 lerden itibaren rastlanabilmekle birlikte, çevik yazılım metodolojilerinin kullanımı 1990 larda hız kazanmış ve geçtiğimiz son 7-8 yıl içerisinde de tüm dünyada başarılarını kanıtlayarak popülaritesini arttırmıştır. Şu anda, dünyadaki birçok yazılım şirketinde ve birçok yazılım projesinde yazılımlar, çevik yaklaşımlarla geliştirilmektedir. Çevik yazılım geliştirme metodu, tekrarlanan yazılım geliştirme metodu taban alınarak geliştirilmiş, sık aralıklarla parça parça yazılım teslimatını ve değişikliği teşvik eden bir yazılım geliştirme metodolojisidir. Çevik geliştirme; - değişimi, - takım içerisindeki iletişimin arttırılmasını, - parça parça yazılım teslimatını, - test odaklı yazılım geliştirilmesini, - ve uyumlu planlamayı teşvik eder. Çevik Yazılım Geliştirme Manifestosu 2001 yılında, dünyanın önde gelen çevik yazılım geliştiricileri (XP, Scrum gibi metodolojilerin yaratıcıları) ortak bir zeminde buluşabilmek adına bir araya gelerek çevik yazılım geliştirme manifestosu nu ve çevik yazılımın prensipleri ni yayınlamışlardır. Böylelikle çevik metotların projelere genel bakış açıları ifade edilmiştir. 10

Bu manifestoda; Bireyler ve aralarındaki etkileşimlerin, kullanılan araç ve süreçlerden; Çalışan yazılımın, detaylı dokümantasyondan; Müşteri ile işbirliğinin, sözleşmedeki kesin kurallardan; Değişikliklere uyum sağlayabilmenin, mevcut planı takip etmekten; daha önemli ve öncelikli olduğu belirtilmektedir. Çevik Yazılımın Prensipleri: 1- İlk öncelik, sürekli, kaliteli yazılım teslimatıyla müşteri memnuniyetini sağlamaktır. 2- Proje ne kadar ilerlemiş olursa olsun değişiklikler kabul edilir. Çevik yazılım süreçleri değişiklikleri müşteri avantajına dönüştürürler. 3- Mümkün olduğunca kısa zaman aralıklarıyla (2-6 hafta arası) çalışan, kaliteli yazılım teslimatı yapılır. 4- Analistler, uzmanlar, yazılımcılar, testçiler vs. tüm ekip elemanları bire bir iletişim halinde, birlikte çalışırlar. 5- İyi projeler motivasyonu yüksek bireyler etrafında kurulur. Ekip elemanlarına gerekli destek verilmeli, ihtiyaçları karşılanarak proje ile ilgili ekiplere tam güvenilmelidir. 6- Ekip içerisinde kaliteli bilgi akışı için yüz yüze iletişim önemlidir. 7- Çalışan yazılım, projenin ilk gelişim ölçütüdür. 8- Çevik süreçler mümkün olduğunca sabit hızlı, sürdürülebilir geliştirmeye önem verir. 9- Güçlü teknik alt yapı ve tasarım çevikliği arttırır. 10- Basitlik önemlidir. 11

11- En iyi mimariler, gereksinimler ve tasarımlar kendi kendini organize edebilen ekipler tarafından yaratılır. 12- Düzenli aralıklarla ekipler kendi yöntemlerini gözden geçirerek verimliliği arttırmak için gerekli iyileştirmeleri yaparlar. Çevik Metodolojilerin Getirileri: Düşük Risk: Tekrarlanan yazılım geliştirme metotları, proje risklerini azaltıp başarıyı arttırmakta ve hata oranlarını düşürerek verimliliği yükseltmektedir. Bunun arkasında yatan en temel etken, daha projenin başlarında geliştirilen program parçacıkları sayesinde, proje ekibinin yetkinliklerinin ve projede kullanılan her türlü araçların önceden denenerek eksiklerinin görülebilmesidir. Ayrıca, parçalı geliştirme süreci içerisinde proje hızlı olarak şekillenmekte ve proje başlangıcında fark edilemeyen riskler ciddi sorunlara yol açmadan önce görülebilir hale gelmektedir. Değişimin Teşvik Edilmesi: En başta belirttiğimiz gibi, yazılım projelerinde değişiklik kaçınılmazdır. Orta çaplı projeler dahi proje süresince başlangıçlarına göre %30 oranlarında değişeme uğramaktadır. Bu nedenle, değişim yazılım projelerinin doğasıdır ve bu gerçeklik çevik metodolojilerin de üzerinde önemle durduğu bir etkendir. Çevik metodolojiler değişime karşı gelmek yerine değişimi müşteri avantajına dönüştürmeye yönelik olarak çalışırlar. Çevik metodolojiler, önerdiği parçalı yazılım üretimi ve her adımdaki güçlü bilgi alış verişiyle, değişim gereksinimlerinin mümkün olduğunca projelerin başlangıç adımlarında fark edilmesini ve projenin değişime hızlı bir şekilde adapte olabilmesini sağlarlar. 12

Gereksinimlerdeki Değişiklikler Proje Büyüklüğü Karmaşıklığın Yönetimi: Yazılım projelerinin hacimleri büyüdükçe karmaşıklıkları artar ve buna bağlı olarak hata oranları da artar. Çevik yöntemler ise projeleri, daha kolay yönetilebilir küçük parçalara bölerek ele alırlar. Böylece, projelerin büyüklüğü ne olursa olsun, küçük parçalara ayrılarak ele alınan projeler için karmaşıklık en düşük seviyeye indirilir. Sürekli Yazılım Teslimi: Çevik metodolojilerde her yineleme sonunda çalışır bir programcık meydana getirilmektedir. Projenin başlarından itibaren devam ederek büyüyen bu parçacıklar, müşterilere elle tutulur aşamalar olarak sunulmakta ve bu da müşteri memnuniyetini arttırmaktadır. Yapılan araştırmalar, müşterilerin tamamlanmış ama çalışmayan programlar yerine, çalışır durumda ama tamamlanmamış programları tercih ettiklerini göstermiştir. Yüksek Kalite: Tekrarlanan yazılım geliştirme metotlarının bünyesinde, test odaklı yazılım geliştirme mantığı bulunmaktadır. Proje başından başlayarak tüm test süreçlerinin yazılım geliştirme süreci içerisinde beraber yürütülmesi sayesinde, hatalar büyümeden fark edilerek hızlı bir şekilde düzeltilebilmektedir. 13

Proje hacimleri büyüdükçe hata oranları da artmaktadır. Ancak çevik metodolojiler, projeleri parçalara bölerek ve her bir parçayı kendi gelişimi içerisinde de test ederek hata oranlarının düşürülmesini sağlamaktadır. Müşteri ihtiyaçlarına daha iyi cevap veren çözümler: Yinelemeler arasında gerçekleştirilen fikir alış verişleri, çevik yöntemlerin değişikliğe olan yatkınlığı ve müşteri odaklı yaklaşımları sayesinde, projeler, müşteriler ile birlikte değişerek gelişmekte ve proje sonunda da müşteri ihtiyacını en iyi derecede karşılayabilecek programlar ortaya çıkmaktadır. Müşterilerin çoğunlukla proje başlangıcında tam olarak ne istediklerine dair net birer fikirleri yoktur ve istekler, projenin gelişim süreci ile birlikte şekillenmektedir. Bu gerçeklik karşısında, çevik yöntemler müşteri odaklı ve esnek yapısıyla, müşteri memnuniyetini en üst seviyede tutmayı başarabilmektedirler. 14

REFERANSLAR www.agilealliance.com www.scrumalliance.org www.apln.org Agile&Iterative Development, Craig Larman, Addison-Wesley 2007 Extreme Programming Explained, Kent Beck with Cynthia Andres, Addison-Wesley 2007 Agile Project Management With Scrum, Ken Schwaber, Microsoft 2003 www.acm-software.com 15