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

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

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

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

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

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

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

CMMI ve Çevik Yöntemler

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

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

CMMI. CMMI ve Çevik Yöntemler. Orhan KALAYCI Haziran Yazılım Süreç Kalitesi ve Yönetim Danışmanlığı.

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

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

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.

Yazılım Mühendisliği 1

Sedona. Eğitim Kataloğu

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

cofaso ile farkı yaşayın Şubat

Profesyonel, verimli, yenilikçi sistemler...

9.DERS Yazılım Geliştirme Modelleri

SCRUM KEEP IT SIMPLE

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

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

Sedona. Nisan 2013 Eğitim Kataloğu

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

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

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

Bölüm 3 Çevik (Agile) Yazılım Geliştirme. Ders 1

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

Project Management Emin OCAK

ÖZEL GÜVENLİKTE BİLGİSİYLE ÖNCÜ. efa güvenlik. Tel: (+90) Fax: (+90) W: E:

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

Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları. Ömer Faruk MIZIKACI

Multinet Kurumsal Hizmetler A.Ş. Müşteri Geri Bildirim Kılavuzu

Problem değil çözüm üretiyoruz. Problem değil çözüm üretiyoruz. GROUP

Walgreens, Müşteri Deneyimlerinin Geleceği İçin Nasıl Hazırlanıyor?

Tasarım Raporu. - Projemizde detaylı bir şekilde ulaşmak istediğimiz amaçların belirlenmesi,

Çevik Yazılım Geliştirme Yaklaşımları (SE 571) Ders Detayları

Tedarik Zinciri Yönetimi

Chapter 8 Yazılım Testi. Lecture 1. Chapter 8 Software testing

Proje Yönetimi Profesyonellerinin Yetenekleri LinkedIn üzerinden incelemeler Erdem Seherler, MBA, PMP

SİSTEM ANALİZİ VE TASARIMI

ASP.NET TEMELLERİ. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Multinet Kurumsal Hizmetler A.Ş. Müşteri Geri Bildirim Kılavuzu

Mobil Cihazlardan Web Servis Sunumu

Finans Sektörü Yazılım Süreçlerinde Şelale Modelinden Scrum Modeline Geçiş

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

Kurumsal Kullanılabilirlik Eğitimi

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

MÜŞTERİ İLİŞKİLERİ YÖNETİMİ CRM

Yaz.Müh.Ders Notları #6 1

DARA PLUS PARAKENDE MODULU

Model Tabanlı Geliştirmede Çevik Süreç Uygulanması

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İ

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

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

Analiz kelime anlamıyla bir konuyu temel parçalarına ayırma işlemidir.

Türkiye Yazılımcı Raporu

Rekabet avantajı sağlayan temel yeteneklere odaklanmak,

Kurumsal Uygulamalar ve Bilgi Teknolojileri Entegrasyonu

ŞİKAYET YÖNETİM SİSTEMİ sys.gtu.edu.tr

İnnova dan, tamamen ölçülebilir, KPI ve SLA anlaşmaları ile garanti altına alınmış yönetilebilir SAP hizmet modeli

Yaz.Müh.Ders Notları #4 1

MONTE CARLO BENZETİMİ

ÜRÜN GELİŞTİRME, KALİTE YÜKSELTME, PRATİK ÇÖZÜMLER VE MALİYET DÜŞÜRME İÇİN BİREYSEL ÖNERİ SİSTEMİ W W W. B I R E Y S E L O N E R I.

Office Phone:

WEB KULLANILABİLİRLİĞİ

Gayrimenkul markalarının tüm proje pazarlama ve satış süreçlerini etkili bir şekilde yöneterek yenilikçi hizmetler sunmak.

CAN TECİM HEDEF DENEYİM. Tecrübe bütün öğretmenlerin en iyisidir. Publilus Syrus

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

ÇALIŞAN MEMNUNİYETİ VE MOTİVASYON ELİF SANDAL ÖNAL

Uludağ Projesi, İlk Adımlar (Kalite Takımı)

SCRUM Yazılım Geliştirme Metodu Üzerine Bir İnceleme ve Değerlendirme. An Overview and Evaluation of SCRUM method in Software Development

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

Opcode Yazılım. Opcode Yazılım; alanlarında uzman mühendislerin bir araya gelerek kurdukları bir yazılım şirketidir.

Körfez Mah. Ankara Karayolu Cd. No.119 Birleşim İş Mrk. K.3 D. 306 İzmit, KOCAELİ T. T. M. W.

DANIŞMANLIĞI LTD.ŞTİ. HAKKIMIZDA

Genel Müdür Ref (GM-01)

Office Phone:

V IP. Professional Security Company

Kuruluşundan bu yana gelişimini sürdürmüş olan DM EFE GROUP, müşteri

Mühendislik Fakültesi İnşaat Mühendisliği Bölümü Bölüm/Program Dersi

WINDESKCONCENTO. sıgnum. Kurumsal İş Süreçleri Uygulamaları. windesk.com.tr

PROJEDE iletişim YöNETiMi

Master Tanıtım Sunumu

Teknoloji Geliştirmede Bütünleştirici Yaklaşımlar

MÜŞTERİ İLİŞKİLERİ VE SATIŞ DERSİ

DEĞERLENDİRME TAKIMI ANADOLU ÜNİVERSİTESİ DIŞ DEĞERLENDİRME SÜRECİ ZİYARET PLANI. Zaman Kimler ile ne yapılacağı İçeriği


KALİTE FONKSİYON DAĞILIMI QUALITY FUNCTION DEPLOYMENT (QFD)

Bilgi sistemlerinin geliştirilmesi için izlenen sürece, Sistem Geliştirme Yaşam Döngüsü (SGYD) denir.

Bu amaçla, ticket sistemi kullanımı hakkında daha detaylı bilgi vermemizin uygun ve gerekli bir davranış olduğunu düşündük.

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

Vizyon Uzmanlaştığımız alanda kusursuz ve güvenilir çözüm ortağınız olmak.

HAKKIMIZDA. Sizin Hayalleriniz. Bizim İşimiz. Neden Bizi Tercih Etmelisiniz? İşimizde Uzmanız. Kalite Politikamız. Yenilikçi ve Üretkeniz

Uyumluluk markalamasından katma değerli kodlamaya kadar

HAKKIMIZDA TEMİZLİK HİZMETLERİ

Yazılım Süreçleri Software Processes

Çevik üretimin gelişmesinde etkisi olanpazar koşulları şöyle sıralanabilir: 1. Şiddetlenen rekabet: Globalleşendünyada uluslararası rekabetin

Zed-FULL KASIM 2016 BÜLTENİ

Transkript:

BMH-405 YAZILIM MÜHENDİSLİĞİ Agile (Çevik) Model Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği musa.ataş@siirt.edu.tr Ref list: Dr. Yunus Emre SELÇUK ve http://www.yazgelistir.com/makale/proje-yonetimsurecleri

Agile (Çevik) Model

Agile Development (Çevik Geliştirme) Agile Development, yazılım geliştirme süreçleri, 1970 itibariyle kullanılmaya başlanmıştır. 1990 yıllarında kullanımı hız kazanmış ve geçtiğimiz 10 yıl içerisinde Türkiye içinde olmak üzere dünya üzerinde başarılarını kanıtlayarak kullanım oranını arttırmış yazılım geliştirme modelidir. Agile Development, yazılım geliştirme modeli, tekrarlanan yazılım geliştirme modelleri baz alınarak geliştirilmiştir. Sık aralıklarla modül modül yazılım teslimatını ve müşteri memnuniyetini hedef alır.

Agile Development (Çevik Geliştirme) TarihçeUygulanabilir yazılım geliştirme süreci ilk olarak 1974 te Edmonds tarafından ortaya atılmıştır. Bu teoriden sonra bir çok yöntem çevik yazılım geliştirme modeli, zor uygulanan aşırı kuralcı olan waterfall modeline tepki olarak ortaya çıkmıştır. Waterfall zor uygulanan ve kuralcı model olması nedeniyle usta yazılım geliştiriciler tarafından yavaş ve tutarsız olarak nitelendirilmiştir. Bu nitelendirmeden sonra bir çok çevik süreç ortaya çıkmaya başlamıştır. 2001 yılında yazılımın önde gelen isimleri Snowbird Utah ta buluşarak ortada dolaşan metodları ortak bir platforma toplamış ve ismine Agile Development adını vermişlerdir. Aynı kişiler Agile Alliance adını verdikleri bir organizasyon kurarak sistemin gelişmesine destek vermişlerdir. Çevik süreçler arasından öne çıkanlar, Extreme Programming, Clear ve Scrum olarak gösterilebilir. Bu toplantı sonrası bir manifesto yayınlanmıştır. Ayrıca maniftoya bağlı olarak Agile Principles (Çevik Prensipler) adında 12 maddelik bir liste ek olarak sunulmuştur.

Agile Development (Çevik Geliştirme) Manifesto Kişiler ve iletişim süreç ve araçlardan önce gelir. Çalışır durumda olan yazılım detaylı dokümantasyondan önemlidir. Müşteri ile beraber çalışmak sözleşmelerden ve anlaşmalardan önemlidir. Değişikliklere ayak uydurmak bir planı takip etmekten önemlidir. Yukarıda belirtilen manifesto http://www.agilemanifesto.org adresinde orjinal haliyle görülebilir. Altı çizili olanlar diğerlerine göre daha öncelikli olsa da diğerleri de bizim için önem taşımaktadır. Altı çizili olanlar diğerlerini her zaman bastırmalıdır.

Agile Prensipleri En önemli öncelik erken ve sürekli olarak kullanılabilir programlar oluşturmak ve müşteriyi tatmin etmektir. Bu prensip tamamen müşteri memnuniyetine odaklandırmak amacıyla yazılmış gibi düşünülebilir. Fakat ne kadar erken geri dönüş olursa sorunların çözümü ve kalite o kadar artar. Kalitenin artması ve sorunların erken çözümü müşteri memnuniyeti sağlar. Yazılım sektöründe işler büyük çoğunlukla somut olduğundan müşteri elle tutulur, gözle görülür bir ürün beklemektedir. Müşteriye ilk görmek istediği modülü kısa bir süre içerisinde verirseniz memnuniyet artar, geri dönüş ile yazılımda ki eksiklikler giderilir. Bu durumda müşteri isteklerini tam anlamıyla alacağı bir yazılımın sahibi olur.

Agile Prensipleri Yazılımın ne aşamada olduğuna bakılmadan talep edilen değişiklikler olumlu karşılanmalıdır. Çevik süreçler, değişiklikleri müşterinin rekabetteki avantajlarını korumakta kullanırlar. Klasik yazılım geliştirme süreçlerinde yazılımın analizi henüz kodlama başlamadan oluşturulur. Bu analiz ışığında yazılımcılar kodlamaya başlar ve yazılımı bu analiz dışına çıkmadan gerçekleştirirler. Durum böyle olunca müşteri herhangi bir istek yaptığında analiz dışına çıkılamayacağı için istek geri çevrilir. Oysa ki müşterinin bu isteği müşteriye piyasada rekabet üstünlüğü sağlayabilir. Bu durumda istek sözleşme olsa dahi projeye girmelidir. Bu prensipte bu sağlanmış oluyor. Müşteri istediği an proje içerisine istediği özelliği ekleyebilir. Eklenen özellik tüm yazılımın alt yapısını değiştirse bile bu değişiklikler yapılarak yazılım müşteri için en ideal konuma getirilir.

Agile Prensipleri Kısa sürelerde çalışır yazılımlar ortaya koyulmadır (Bu süreler genelde birkaç haftadan, birkaç aya kadar olan sürelerdir). Seçim, zaman diliminin kısa tutulması yönünde olmalıdır.klasik süreçlerde müşteri yazılımı ancak tamamıyla bittiğinde görebilir. Agile development ile müşteri sık sık yazılım görme imkanına sahiptir. Yazılım çalışabilecek en küçük parçalara bölünerek müşteriye 1-4 hafta içerisinde sunulur. Müşteri ve programcılar proje süresince birlikte çalışırlar.müşterinin isteklerini programcının dinlemesi kadar güzel bir şey yoktur. Arada birileri olmadan müşteri ne istediğini işi yapacak olan kişiye birinci ağızdan anlatır. İşin kalitesi bu şekilde daha fazla yükselecektir.

Agile Prensipleri Projelerin, motivasyonu yüksek bireyler tarafından yapılması sağlanmalıdır. İhtiyaç duydukları ortamı ve desteği vermeli ve bitirebileceklerine inanılmalıdır. Proje geliştirmenin ve başarıya ulaştırmanın birinci kurallarından bir tanesi yüksek motivasyon sahibi proje ekibidir. Proje ekibinin dinlenmiş ve sorunlarının çözüşmüş olması gerekmektedir. Motivasyonu yükselten en önemli faktör ise ekip elemanlarına inanmaktır. Ekip elemanlarına bireysel sorumluluk verip özgüvenlerini yenilemek/sağlamlaştırmak iyi bir yol olacaktır.

Agile Prensipleri Bilgi alışverişinde en doğru ve efektif yöntem takım içinde yüz yüze konuşmaktır. Çevik süreçler bilgi alışverişini yüz yüze yapmayı sağlamıştır. Yazılımcılar-Müşteri-Yönetici üçlemesinde herkes yüz yüze görüşür ve bilgiyi deforme etmeden aktarabilirler. Ayrıca konuşurken yüzümüzde oluşan ifadeler önem arz ettiğinden yanlış anlaşılmalar ortadan kalkar ve aradaki bağlar sıkılaşır.

Agile Prensipleri Çalışır durumda olan yazılım ilerlemenin ana göstergesidir. İstediğiniz kadar müşteriye biz çalışıyoruz deyin. Bunun bir anlam ifade etmediğini siz de müşteri de çok iyi biliyor. Proje sahibi her zaman ne alacağını bilmek ister. Bunu sık sık görmek takip etmek ister. En doğal hakkı budur. Müşteriye sık sık çalışır halde bir yazılım göstermek müşterinin içini rahatlattığı gibi ilerleyen zamanlar için yol haritasında çizmiş olarak karşımıza çıkacaktır.

Agile Prensipleri Çevik süreçler etkili yazılım yöntemlerini destekler. Müşteri, programcılar ve kullanıcılar sabit bir tempoda birlikte çalışabilmelidirler. Özellikle yazılımcılar için iyi olan bir maddedir. Fazla mesai kavramı bu madde ile yok edilmiş oluyor. Eğer müşteri 5 saat çalışıyorsa yazılımcı da 5 saat çalışıyor/çalışmalı demektir. Müşteri iletişimi kopardığı anda projenin çevik süreç ile yönetilmesi mümkün olmayacaktır. Çünkü müşteri odaklıdır. Fazla mesainin yok olması ile birlikte motivasyon ve performans yükselir.

Agile Prensipleri Devamlı teknik mükemmelliğe özen gösterilmesi ve iyi tasarım çevikliği kuvvetlendirir. Çevik yazılım süreçleri ile yönetilen projelerde kalite beklentisi en yüksek noktada olacaktır. Yazılımlar mevcut veya temin edilecek en iyi araç ve yazılımcılar ile birlikte geliştirilir. Yazılım kalitesinin artması için ne gerekiyorsa yapılır. Yazılım tasarımı sürekli revize edilerek en iyi sonuca ulaşması sağlanır. Çevik sürekler için dinamik sistemler demek bu prensiple mümkün oluyor.

Agile Prensipleri Sadelik-Basitlik esastır. Yapılan yazılımların mümkün olduğunca basit olması gerekmektedir. Kalite beklentisinin yüksek olması sebebiyle karmaşanın da önüne geçilmek istenmektedir. Mümkün olduğunca basit arayüzlerle (tasarımsal veya kullanım kolaylığı) yazılımın kullanılabilirliği sağlanmalıdır. Ayrıca yazılan kodların temizliği ve aynı standartlarda olmasıda bu sadeliğe girmektedir. Bu yüzden proje başlanmadan önce kod yazım standartları belirlemek en doğru seçenek olacaktır.

Agile Prensipleri En iyi mimariler, gereksinimler ve tasarımlar kendi kendine organize olabilen takımlardan çıkar. Çevik yazılım geliştiren takımlar kendi başlarına organize olma hakkına ve yetisine sahip takımlardır. Takımlar şirket büroksisini umursamadan kendi iş planlarını tasarlar ve uygularlar. İş paylaşımlarını kendi aralarında eşit bir şekilde yaparlar. Bireysel aralarında sıkça konuşur ve bilgi alışverişinde bulunurlar.

Agile Prensipleri Belirli zaman dilimlerinde takım daha nasıl efektif olabileceği konusunda kendini sorgular ve edindiği bilgiler ile çalışma tarzına adapte eder. Daha önce belirttiğimiz gibi çevik takımlarda bilgi alışverişi ve kendi başına organize olabilme çok önemlidir. Takım üyeleri sıkça bir araya gelerek daha önce karşılaştıkları sorunları ortaya koyarlar ve tartışırlar. Fikir alışverişinde bulunup çalışma tarzlarını yargılayıp doğru olanı bulurlar.

Agile Prensipleri Agile Development, bir arada çalışan ekipler için uygun olan bir yapıdır. Tek başına çalışan bir yazılımcı için etkili olacaktır ancak freelance çalışan bir ekipte etkili olacağını söylemek pek mümkün değildir. Bu gibi durumlarda şelale veya diğer modelleri benimsemek daha yerinde olacaktır. Agile Development mimarları da bu konuda aynı şeyi söylemekten çekinmiyorlar.