Özellik Odaklı Geliştirme Nedir?

Tüm yazılım geliştirme, proje yönetimi ve sistem geliştirme-yaşam döngüsü (SDLC) yönetimi gerektirir. Bunlar, bir yazılım uygulamasının geliştirme sürecini etkin bir şekilde yönetmek için kullanılan teknikler ve süreçlerdir. Özellik odaklı geliştirme, hızlı gelişim döngülerine dayanan bir tekniktir. İşletmeye tipik standart SLDC tekniklerinden daha hızlı işlevsellik sağlar.

Günümüzün rekabetçi pazarında, kuruluşların değişen trendlere ve pazar iklimlerine hızla tepki vermesi önemlidir. Bilgi teknolojisi, bir kurumun rekabet ihtiyaçlarını önceden tahmin edebilecek daha çevik bir süreçte yazılım geliştirmeyi geliştirmeye çalışmıştır. Özellik odaklı geliştirme, uygulama özelliklerini bir işletmenin önceliklerini temel alarak yinelemeli bir şekilde uygulamaya çalışan bir yazılım geliştirme tekniğidir.

Özelliğe dayalı geliştirme, yinelemeli bir geliştirme süreci olarak kabul edilir. Bunun nedeni, kodun tam bir uygulama yerine işlevsellik yinelemelerinde geliştirilip dağıtılmasıdır. Yazılım uygulamaları sunmak için 1997 yılında Jeff De Luca tarafından hızlı bir teknik olarak yaratılmıştır. Bu çevik işlem, müşteriye öncelikli özellikleri daha hızlı bir şekilde sunmaya çalışır.

Özelliğe dayalı geliştirme süreci, modellere ve kısa geliştirme çevrimlerine dayanır. Bu, Extreme Programming (XP) 'de kullanılan geliştirme tekniklerine benzer. Her proje, iki haftadan daha kısa bir sürede kodlanabilecek, test edilebilecek ve konuşlandırılabilecek küçük özelliklere bölünmüştür. Bu iki haftalık döngü, işe sürekli olarak gelişmekte olduğu için zengin özellikli bir sistemle iş sunuyor.

Özelliğin geliştirilmesine yönelik dört ana alan vardır. Bunlar etki alanı modeli, özellik listesi, özelliğe göre planlama ve son olarak özelliğe göre derleme ve uygulamalardır. Bu dört alanın onları başarılı kılan özel gereksinimleri ve teknikleri var.

Etki alanı modeli, tüm uygulamanın üst düzey bir genel bakış ve tasarımıdır. Yineleme işlemi sırasında neyin inşa edileceğine dair iskelet planı. Bu özellik odaklı sürecin ilk adımıdır ve geliştirme ekibine tüm uygulamanın yol haritasını vermesi amaçlanmıştır.

Etki alanı modeli tamamlandığında, bir özellik listesi oluşturulması gerekir. Özellik listesi, uygulamanın gerekli tüm işlevselliğini içerecektir. Her özelliğin çalışması için özel olarak tasarlanması gerekir. Bir banka başvurusu için bir özellik örneği “mevcut toplam banka bakiyesini hesaplamak” olabilir.

Önceliklendirme, özellikli sürücü geliştirmede bir sonraki adımdır. Özellik listesinin tamamı oluşturulduktan sonra işletme kullanıcıları tarafından önceliklendirilmesi gerekir. Bu önceliklendirme, organizasyon için işlevselliğin önemine dayanmalıdır.

Özellik odaklı geliştirmenin son aşaması, öncelikli özellik listesine dayalı özellikler oluşturma ve dağıtma üzerine kuruludur. Her özellik iki haftalık artışlarla kodlanacak, test edilecek ve dağıtılacaktır. Bu hızlı yinelemeli yaklaşım, işletmeye tamamen bitmeden uygulamayı kullanma fırsatı verir.