İçeriğe atla

Atik yazılım geliştirme

Yazılım geliştirme süreci
Etkinlikler ve adımlar
Gereksinimler | Mimari | Tasarım | Yaşama geçirme | Sınama | Konuşlanma
Modeller
Agile | Cleanroom | Iterative | RAD | RUP | Spiral | Waterfall | XP | Scrum
Supporting disciplines
Configuration management | Documentation | Software quality assurance (SQA) | Project management | User experience design

Atik yazılım geliştirme ya da çevik yazılım geliştirme, basit prensiplere dayanan yazılım geliştirme metotları gruplarının genel adıdır. Bu metotlar genelde alışılmış denetim ve uyum süreçlerini teşvik eden proje yönetim işlemlerine önayak olurlar.[1] Bu yaklaşım; takım çalışmasıyla gelen liderlik psikolojisi, kendi kendini düzene sokma (örgütleme), sorumluluk, yüksek kalitedeki yazılımların hızlı dağıtımını onaylayan en iyi mühendislik örnekleri ve iş yaşamında müşteri ihtiyaçlarıyla şirketlerin temel amaçlarını, vizyonlarını koordine etme işlevi de görmektedir.

Çevik yazılım metodolojilerinin kökeni 1957 yıllarındaki IBM'deki yazılım geliştirme çalışmalarına dayanmaktadır. Bu çalışmalar daha sonra E. A. Edmonds tarafından arttırımlı yazılım geliştirme olarak tanımlanmış ve 1974 yılında “Uyumlu Sistemler İçin Yazılım Geliştirme” başlıklı bir makale ile tanıtılmıştır. 1990'lı yıllar ise Şelale modelinin hantal bir sistem olduğu iddia edilerek onun yerine daha hızlı ve çevik yazılım geliştirme metodolojileri sunmaya çalışılan yıllar olarak geçmiştir.[2] 2001 yılının Şubat ayında yazılım dünyasının önde gelen 17 ismi Utah’da bir araya gelerek yazılım geliştirme üretkenliğini arttırmaya yönelik 2 günlük beyin fırtınası yapmışlar ve “Çevik Yazılım Geliştirme Manifestosu” ve "Çevik Yazılımın Prensipleri”ni yayınlamışlardır.

Manifesto

Manifesto, daha iyi bir yazılım geliştirmenin yöntemlerini açıklayan 4 ana madde ve 12 temel ilkeden oluşmaktadır.[3]

Ana Maddeler
  • Bireyler ve etkileşimler, süreçler ve araçlardan;
  • çalışan yazılım, kapsamlı dokümantasyondan;
  • müşteri ile işbirliği, kontrat görüşmesinden;
  • değişikliklere yanıt vermek, bir planı takip etmekten önce gelir.
Temel İlkeler
  • En önemli önceliğimiz değerli yazılımın erken ve devamlı teslimini sağlayarak müşterileri memnun etmektir.
  • Değişen gereksinimler yazılım sürecinin son aşamalarında bile kabul edilmelidir. Çevik süreçler değişimi müşterinin rekabet avantajı için kullanır.
  • Çalışan yazılım, tercihen kısa zaman aralıkları belirlenerek birkaç haftada ya da birkaç ayda bir düzenli olarak müşteriye sunulmalıdır.
  • İş süreçlerinin sahipleri ve yazılımcılar proje boyunca her gün birlikte çalışmalıdırlar.
  • Projelerin temelinde motive olmuş bireyler yer almalıdır. Onlara ihtiyaçları olan ortam ve destek sağlanmalı, işi başaracakları konusunda güven duyulmalıdır.
  • Bir yazılım takımında bilgi alışverişinin en verimli ve etkin yöntemi yüz yüze iletişimdir.
  • Çalışan yazılım ilerlemenin birincil ölçüsüdür.
  • Çevik öğrenme süreçleri sürdürülebilir geliştirmeyi teşvik etmektedir. Sponsorlar, yazılımcılar ve kullanıcılar sabit tempoyu sürekli devam ettirebilmelidir.
  • Teknik mükemmeliyet ve iyi tasarım konusundaki sürekli özen çevikliği artırır.
  • Sadelik, yapılmasına gerek olmayan işlerin mümkün olduğunca arttırılması sanatı, olmazsa olmazlardandır.
  • En iyi mimariler, gereksinimler ve tasarımlar kendi kendini örgütleyen takımlardan ortaya çıkar.
  • Takım, düzenli aralıklarla nasıl daha etkili ve verimli olabileceğinin üzerinde düşünür ve davranışlarını buna göre ayarlar ve düzenler.

Kaynakça

  1. ^ "Arşivlenmiş kopya". 31 Temmuz 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Nisan 2022. 
  2. ^ "Arşivlenmiş kopya". 27 Nisan 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Nisan 2022. 
  3. ^ "Arşivlenmiş kopya". 1 Mayıs 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Nisan 2022. 

Ayrıca bakınız

İlgili Araştırma Makaleleri

Pazarlama firmaların veya şirketlerin, herhangi ürün veya hizmet'lerin müşterilerinin ilgisini çekeceğini tayin etmeleri ve satış, hizmet, ticaret, reklam, iletişim ve işletme idaresi geliştirmeleri için stratejileri belirlemeleri sürecidir. Pazarlama süreci, bir bütünleştirilmiş süreç olup bunun vasıtasıyla firmalar müşterileri için değer yaratmakta ve bunun karşılığında müşterilerden deger kapabilmek için güçlü müşteri ilişkileri kurmaktadırlar.

<span class="mw-page-title-main">Kurumsal kaynak planlaması</span> kurumun kaynaklarını verimli şekilde kullanacak şekilde planlaması

Kurumsal kaynak planlaması ya da işletme kaynak planlaması, işletmelerde mal ve hizmet üretimi için gereken işgücü, makine, malzeme gibi kaynakların verimli bir şekilde kullanılmasını sağlayan bütünleşik yönetim sistemlerine verilen genel addır. Kurumsal kaynak planlaması (KKP) sistemleri, bir işletmenin tüm veri ve işlemlerini bir araya getirmeye veya bir araya getirilmesine yardımcı olmaya çalışan ve genelde kullanımı kolay olan sistemlerdir. Klasik bir KKP yazılımı işlem yapabilmek için bilgisayarın çeşitli yazılım ve donanımlarını kullanır. KKP sistemleri temel olarak değişik verilerin saklanabildiği bütünleşik bir veritabanı kullanırlar.

<span class="mw-page-title-main">Microsoft Dynamics AX</span>

Axapta veya Microsoft Dynamics AX, Microsoft tarafından üretilen, Microsoft Dynamics ailesinden bir KKP (İngilizce: ERP) yazılımı.

<span class="mw-page-title-main">Toplam kalite yönetimi</span>

Toplam kalite yönetimi ya da kısaca TKY; müşteri ihtiyaçlarını karşılayabilmek için kullanılan insan, iş, ürün ve/veya hizmet kalite gereksinimlerinin, sistematik bir yaklaşımla ve tüm çalışanların katkıları ile sağlanmasıdır. Bu yönetim şeklinde uygulanan her süreçte tüm çalışanların fikir ve hedefleri kullanılmakta ve tüm çalışanlar kaliteye dahil edilmektedir. Toplam kalite yönetimi; uzun dönemde müşterilerin tatmin olmasını başarmayı, kendi personeli ve toplum için yararlar elde etmeyi amaçlar ve kalite üzerine yoğunlaşır. Tüm personelin katılıma dayalı bir yönetim modelidir.

Gereksinim Yönetimi ; tanımlama, sağlama, belgeleme, analiz etme, takip etme, öncelik verme, gereksinimlere karar verme ve daha sonra değişimi kontrol etme ve ilgili taraflarla iletişim kurma işlemlerini kapsar. Bu proje boyunca süregelen bir süreçtir.

Kalite kontrolü, Latince contra kelimesinden gelir, İngilizce karşılığı control olup sürekli standartları karşılamak için yapılan süreç idaresi anlamında kullanılır. Buna göre kalite kontrolü, bir sürecin kalite etkinliğini azaltacak durumlara karşı tedbir alarak kaliteye hakim olma anlamına gelir. Kalite kontrolünün temel amacı müşteri beklentilerinin ve işletmelerin stratejik amaçlarının en ekonomik seviyede karşılanabileceği ürünün üretimi için gerekli planların geliştirilip uygulanarak etkin bir şekilde sürekliliğinin sağlanmasıdır. Eğer kontrol temel olarak, kalite yönetim kararlarında kullanılmazsa yönetim tümüyle kaliteyi yönetemez.

Kalite yönetim sistemleri felsefesi, sistemi bir bütün olarak kabul eden ve kaliteyi bu bütünün içindeki her elemanın müşteri odaklı ortak bir fonksiyonu olarak gören bütünsel bir anlayıştır. En genel anlamda, bir kuruluşta hedeflenen kalitenin gerçekleşmesi amacı ile sürdürülen planlı ve sistematik faaliyetlerin bütünüdür. Son zamanlarda kullanımına daha sık rastlanan kalite yönetim sistemleri (KYS), tarihsel gelişim sürecinde; az sayıda çalışanın bulunduğu işletmelerde, müşteri ilişkilerine odaklanan kalite kontrol uygulamaları yapılan Sanayi Devrimi Öncesi, fabrikaların kurulmasıyla birlikte üretimi yapılan ürünlerin kontrolünün yapıldığı Sanayi Devrimi sonrası, Japonya'da istatistiksel sonuçları baz alarak uygulanmaya başlanan Toplam Kalite Yönetimi'nin var olduğu II. Dünya Savaşı sonrası ve TKY'nin daha geniş çapta kullanılmaya başlandığı ve tüm işletmede kalite yönetiminin yapıldığı 1980 sonrası olmak üzere dört döneme ayrılmıştır.

<span class="mw-page-title-main">Scrum</span>

Scrum, yazılım geliştirme ve yazılım Mühendisliği'nde bir uygulama geliştirme çerçevesidir. Proje yönetimi'nde karmaşık bir ortamda ürünleri geliştirmek, sunmak ve sürdürmek için Çevik yazılım geliştirme felsefesini benimseyen bir çerçevedir. "Hamleci yaklaşım" şeklinde bir çeviri önerilmiştir. Bu geliştirme çerçevesinin temel özelliği gözlemci, geliştirmeci ve tekrara dayalı olmasıdır. Birçok modern yazılım projesinin oldukça karmaşık olduğu ve en baştan tümünü planlamanın zor olacağı şeklindeki bir varsayımdan hareket eder. Bu karmaşıklığı üç ilke ile azaltmaya çalışır.

  1. Şeffaflık: Projedeki ilerlemeler ve sorunlar günlük olarak tutulur ve herkes tarafından izlenebilir olması sağlanır.
  2. Gözlem: Ürünün parçaları ya da fonksiyonları düzenli aralıklarla teslim edilir ve değerlendirilir.
  3. Uyumlanma: Ürün için gereksinimler en baştan bir defalığına belirlenmez, bilakis her teslimat tekrar değerlendirilir ve duruma göre uyarlamalar yapılır.
<span class="mw-page-title-main">Waterfall model</span>

Şelale yönteminde yazılım geliştirme süreci analiz, tasarım, kodlama, test, sürüm ve bakım gibi safhalardan oluşur. Geleneksel yazılım metotlarında bu safhalar şelale modelinde olduğu gibi doğrusal olarak işler. Her safha, başlangıç noktasında bir önceki safhanın ürettiklerini bulur. Kendi bünyesindeki değişikler doğrultusunda teslim aldıklarını bir sonraki safhanın kullanabileceği şekilde değiştirir.

<span class="mw-page-title-main">Yazılım yaşam döngüsü</span>

Yazılım yaşam döngüsü, bilgisayar yazılımlarının ilk geliştirme aşamalarından başlayarak; yayındaki mevcut sürümün hatalarının giderilmesi, iyileştirme odaklı yeni ara sürümlerin yayınlarak yazılımın güncellenmesi de dâhil olmak üzere nihai (kararlı) sürüme ulaşana dek geçen geliştirme ve olgunlaştırma aşamalarının tamamını ifade etmek için kullanılan terimdir.

<span class="mw-page-title-main">Yazılım testi</span>

Yazılım testi, test altında hizmetlerin veya ürünlerin kalitesi hakkında paydaşlara bilgi sağlamak için yürütülen bir araştırmadır. Yazılım testi aynı zamanda, yazılım uygulamalarının risklerini anlamak için yazılımı bağımsız ve nesnel olarak incelemektir. Test teknikleri yazılım böceklerini bulma niyetiyle uygulama veya bir programı çalıştırma süreçlerini kapsar.

<span class="mw-page-title-main">V-Model (Yazılım geliştirme)</span>

V-model şelale (waterfall) modelinin gelişmiş hali olarak düşünülebilecek bir yazılım geliştirme süreci sunar. Doğrusal bir yönde ilerlemek yerine, süreç adımları kodlama evresinden sonra yukarıya doğru eğim alır ve tipik V şeklini oluşturur. V-Model geliştirme yaşam çevriminin her bir evresi arasındaki ilişkileri gösterir. Yatay ve dikey açılar zaman veya projenin tamamlanabilirliğini ve soyut seviyeyi gösterir.

<span class="mw-page-title-main">İşlev modeli</span>

Sistem ve yazılım mühendisliğindeki işlev modeli modellenen sistem veya konu alanının işlevlerinin yapısal temsilidir.

<span class="mw-page-title-main">Gereksinim çözümleme</span>

Bilgisayar bilimlerinde, gereksinim analizi ya da gereksinim çözümleme; çeşitli sistemlerin gerekliliklerini ve olası çelişkili durumlarını göz önüne alarak, yazılımı analiz etmek, belgelemek, doğrulamak ve yönetmek için yeni veya değiştirilmiş bir ürün üzerinde projenin ihtiyaçlarını, sistem gereksinimlerini ve koşullarını belirleyen görevleri kapsamaktadır.

Sistem analisti veya İş teknolojisi analisti, analist ve bilgi teknolojisi (BT) uzmanıdır. Sistemlerin küçük değişiklikler yoluyla etkin hale getirilmesi veya yeniden planlanmasını sağlamak amacıyla analiz edilmesiyle ilgilenen kişidir ". Bir sistem analisti tipik olarak atanmış veya verilen bir sistemle sınırlıdır ve genellikle bir iş analisti ile birlikte çalışır. "Sistem analist; insanların, metotların ve bilgisayar teknolojisinin işleri en iyi şekilde yerine getirebilmeleri için, organizasyonun problem ve gereksinimleri üzerinde çalışır".Bir sistem analistin, deneyimi ve bilgisi dışındaki en önemli aracı, öncelikle sistemin bir üyesi olan insandır. Ardından gözlem gücü ve dokümanlar gelir.

Kanban, yeni çalışma için mevcut kapasite ile çalışma taleplerini dengeleyen bilgi çalışmalarını yönetmek için bir yöntemdir. İş öğeleri, katılımcılara görev tanımından müşterinin sunumuna kadar ilerleme ve süreç görüntüsü verecek şekilde görselleştirilir. Kanban, bir üretim sisteminin bütün olarak çalışmasını ve iyileştirmeyi teşvik etmek için doğru bir araçtır.

<span class="mw-page-title-main">Satış</span>

Satış, belirli bir zaman diliminde satılan mal veya hizmet sayısı ile ilgili faaliyetlerdir.

İş geliştirme, Kuruluşlar içinde ve arasında büyüme fırsatlarını geliştirmek ve uygulamak için görevler ve süreçler gerektirir. İşletme, ticaret ve organizasyon teorisi alanlarının bir alt kümesidir. İş geliştirme, müşterilerden, pazarlardan ve ilişkilerden bir kuruluş için uzun vadeli değer yaratılmasıdır. İş geliştirici, üst düzey yönetim veya yönetim kurulu için potansiyel büyüme fırsatlarının analitik olarak hazırlanmasıyla ilgilenir.

<span class="mw-page-title-main">Logo Yazılım</span>

Logo Yazılım, Gebze, Kocaeli merkezli Türk iş yazılımı şirketidir. Temelleri 1984'te atılan şirket, resmî olarak 1986 yılında kurulmuş olup 4 farklı ülkede, 13 farklı noktada 1.600'den fazla çalışanı ve 1.000'i aşkın iş ortağı ile hizmet vermektedir. Mikro işletmelerden kurumsal büyük işletmelere kadar farklı ölçeklerdeki şirketlere iş yazılımı çözümleri sunmaktadır.

Ürün yöneticisi, ürün yönetimi kapsamında bir kuruluş için ürünlerin geliştirilmesinden sorumlu olan profesyonel bir roldür. Ürün yöneticileri, bir ürünün arkasındaki ürün stratejisinin sahibi olarak ürünün işlevsel gereksinimlerini belirler ve özellik sürümlerini yönetir. Ürün yöneticileri, diğer birçok çalışanın yaptığı işleri koordine eder ve nihai olarak ürün istenilen kalitede ve şartlarda sonuçlanmasından sorumludur.