Özellik sürünmesi - Feature creep

Özellik sürünmesi aşırı devam eden genişleme veya yeni özellikleri bir üründe[1] özellikle bilgisayar yazılımı, video oyunları ve tüketici ve iş elektroniği. Bu ekstra özellikler, ürünün temel işlevinin ötesine geçer ve sonuçta yazılım bloat ve basit tasarımdan ziyade aşırı karmaşıklık.

Nedenleri

Özellik sürünmesinin en yaygın nedeni, satışları veya dağıtımı artırmak için tüketiciye daha kullanışlı veya arzu edilen bir ürün sağlama arzusudur. Bununla birlikte, ürün, yapmak üzere tasarlandığı her şeyi yaptığı noktaya ulaştığında, üreticiye, bazı kullanıcıların gereksiz olduğunu düşünebileceği, bazen verimlilik pahasına veya eski sürüme bağlı kalarak, işlevler ekleme seçeneği kalmıştır. algılanan gelişme eksikliği pahasına.

Özellik sürünmesinin başka bir önemli nedeni de bir komiteden uzlaşma Aynı üründe birden çok, farklı bakış açısı veya kullanım senaryosu uygulamaya karar verir. Daha sonra, her bir yaklaşımı desteklemek için daha fazla özellik eklendikçe, çoklu paradigmalar arasında çapraz dönüşüm özelliklerine sahip olmak gerekli olabilir, bu da toplam özellikleri daha da karmaşık hale getirir.

Özellikler

Özellik sürünmesi en yaygın kaynaklardan biridir. maliyet ve plan aşımları.[2][doğrulama gerekli ] Bu nedenle, ürünleri ve projeleri tehlikeye atar ve hatta öldürebilir.

Kontrol

Özellik sürünmesini kontrol etmenin birkaç yöntemi vardır: İzin verilen özellikler için kesin sınırlar, birden çok varyasyon ve fazlalık özellikleri budama.

Ayrılık

İlk tasarımın işlevselliğin mantıksal ayrımı ve veri erişimi gibi güçlü yazılım temellerine dayandırılmasıyla daha sonraki özellik sürünmesinin cazibesi bir dereceye kadar önlenebilir. isteğe bağlı olarak erişilebilen alt menüleri kullanarak Güç kullanıcıları daha fazla işlevsellik ve daha yüksek bir ayrıntı bilginin. Titizlikle aktif olarak kontrol edilebilir değişim yönetimi ve bir projenin sonraki teslim aşamalarında değişiklikleri erteleyerek.[3]

Varyasyonlar ve seçenekler

Özellik sürünmesini kontrol etmenin başka bir yöntemi, özelliklerin sınırlı tutulduğu ve daha temel varyasyonlarda, örn. Microsoft Windows sürümler. Yazılım için Kullanıcı arayüzleri Kullanıcıların kendi ihtiyaçlarına göre seçim yapabilecekleri görüntüleme modları veya çalıştırma modları kullanılabilir (örn. temel mod veya uzman modu).

İkisi de çoğunda grafik kullanıcı arayüzleri ve komut satırı arayüzleri kullanıcılar daha yüksek bir ayrıntıyı manuel olarak seçebilirler. İkinci durumda, birçok komut satırı programında, bir -v veya --verbose manuel seçeneği, minimum kullanıcı için daha az alakalı olabilecek, ancak kullanıcıları güçlendirmek veya hata ayıklama ve sorun giderme amaçları için yararlı olabilecek daha ayrıntılı bilgileri gösterir.

Sürekli büyüyen, sürekli genişleyen yeni özelliklerin eklenmesi mevcut kaynakları aşabileceğinden, daha küçük işletim ortamlarında çalışmasını sağlamak için bir ürünün minimum çekirdek "temel" sürümü ayrı olarak korunabilir. Kullanmak "80/20 kuralı ", daha temel ürün varyasyonları kullanıcıların çoğunluğunun (örneğin ~% 80) ihtiyaçlarını karşılayabilir, böylece kullanıcıların gelişmiş% 20'si tarafından talep edilen özelliklerin karmaşıklığına (veya ekstra masrafına) maruz kalmazlar. ekstra özellikler hala mevcuttur, ancak isteğe bağlıdır ve bunları isteyenler için kullanıma hazırdır, ancak bunlar ürünlerin temel sürümlerine uygulanmamıştır.

Modülerlik

Özellik sürünmesi için başka bir çözüm modülerliktir. Daha fazla işlevsellik isteyen uzman kullanıcılar, yazılım modüllerini indirerek ihtiyaç duydukları özellikleri iyileştirebilirler eklentiler, eklentiler (eklentiler olarak da bilinir) ve kişisel gereksinimlerine uygun özel temalar.

Budama

Bir noktada, belirli bir özellik alt kümesini korumanın maliyeti engelleyici hale gelebilir ve budama kullanılabilir. Yeni bir ürün sürümü, ekstra özellikleri basitçe atlayabilir veya eski özelliklerin bulunduğu bir geçiş dönemi kullanılabilir. kullanımdan kaldırıldı sistemden nihai olarak kaldırılmadan önce. Birden fazla ürün çeşidi varsa, bazıları aşamalı olarak kullanımdan kaldırılabilir. Önemli bir örnek, Samsung Galaxy S6 Mart 2015'te piyasaya sürüldü, önemli ölçüde birçok yazılım / menü özelliği ve ayrıca bazı donanım özellikleri azaltıldı. Bunun "daha işlevsel" bir varyasyonu henüz piyasaya sürülmedi.

Sonuçlar

Kapsamın genişletilmesi

Bazen, kontrolsüz özellik kayması, başlangıçta amaçlananların kapsamının çok ötesinde ürünlere yol açabilir; bu olarak bilinir kapsam sürünmesi. Bununla birlikte, özellik kaymasının daha yaygın bir sonucu, başlangıçta amaçlanandan daha pahalı hale gelebilen ürünün gecikmesi veya iptalidir.[kaynak belirtilmeli ]

Gecikmeler

Genellikle, makul ölçüde eksiksiz bir yazılım projesi veya makul miktarda özellik sürünmesi olan bir proje, birçok yinelemeyle hayatta kalabilir ve hatta gelişebilir, ancak sonraki sürümü, tüm kod tabanını yeniden yazma kararının yanı sıra, önemli gecikmeler yaşayabilir. yeni teknolojileri tanıtmak. Örneğin, Microsoft'un Windows Vista arasında küçük bir sürüm olması planlandı Windows XP ve halefi kod adı Windows "Blackcomb", ancak Blackcomb'dan (çoğu sonunda iptal edilen) daha fazla özelliği uyarladıktan sonra, Vista beş yıllık geliştirme alan büyük bir sürüm haline geldi.

Benzer bir kader acı çekti Netscape 6 başlangıçta olması gerekiyordu Netscape 5. Netscape Communications'ın 1998'de Netscape Navigator tarayıcısını ve Communicator İnternet paketini (her ikisi de kod adı Mozilla) açık kaynaklı olarak alma kararı, kısa süre sonra temeldeki kodun çok zor olduğunu ve Mozilla'nın tamamen yeniden yazılmasını gerektirdiğini ortaya koydu. Mozilla uygulama çerçevesi. Bu önemli gecikmelere neden oldu, Netscape 5 atlandı ve şirket AOL tarafından satın alındı. 2000 yılında Netscape 6.00'ın sonraki sürümü alfa düzeyinde kod olarak eleştirildi ve proje, İnternet paketini yeniden düzenleme kararından üç yıl sonra, 2001 yılında Netscape 6.1 tarafından kararlılığa ulaştı. O zamana kadar, Microsoft'un Internet Explorer tarayıcısı, Netscape'i kullanım payında uzun süredir gölgede bıraktı ve bu, tek hanelere indi.

İstikrara ulaştıktan ve bazı gerekli yeni özellikleri edindikten sonra bile, açık kaynak Mozilla Uygulama Paketi (daha sonra sadece Mozilla olarak adlandırılır), AOL'nin Netscape'i kurduğu "şişkin ". Sadece bir yıl sonra, bir grup Mozilla geliştiricisi tarayıcı bileşenini ayırmaya karar verdi ve sonunda Firefox.

Double Fine Adventures ' Kickstarter proje Kırık Çağ özellik kayması nedeniyle geciken bir proje örneğidir. Başlangıçta Ekim 2012'de çıkış tarihi olması beklenen oyunun ilk yarısı Ocak 2014'te, ikinci yarısı ise Nisan 2015'in sonlarında yayınlandı ve tamamlanması için iki ayrı finansman turu gerekiyordu.[4]

Korkunç yaratılışçılık

Kısa teslim tarihleriyle birleşen özellik sürünmesi genellikle "hacky çözüm". İstenen değişiklik, mevcut proje temelinin yeniden tasarlanmasını garanti edecek kadar büyük olabilir, ancak son tarih baskısı bunun yerine geliştiricilerin daha az zarif bir yaklaşımla "çalıştırmasını" gerektirir. Komik kaşıkçılık Bir geliştiricinin bu durumdan hoşlanmadığını vurgulamak için "cılız yaratıkçılık" icat edildi,[5] Kapsamlı ürünü "karanlıkta gezinen ... şekilsiz bir bilgisayar korsanlığı yaratık" olarak kişileştirmek,[6] ve gelecek daha fazla sürünmenin habercisi.[7] ("Feeping", "bip" ile eşanlamlı bir jargondur.)[8]

Ayrıca bakınız

Referanslar

  1. ^ J.M. Sullivan (8–10 Haziran 2005). "Hava Kuvvetlerinde otomasyon için engeller ve teşvikler". Bildiriler. 2005 Uluslararası Teknoloji ve Toplum Sempozyumu, 2005. Silahlar ve Teller: Bir Korku Anında Önleme ve Güvenlik. İSTAŞ 2005. 2005 Uluslararası Teknoloji ve Toplum Sempozyumu. s. 101–110. doi:10.1109 / ISTAS.2005.1452719. ISBN  0-7803-9284-1.
  2. ^ Davis, F.D .; Venkatesh, V. (Şubat 2004), "Yeni bilgi sistemlerinin ön prototip kullanıcı kabul testine doğru: yazılım proje yönetimi için çıkarımlar", Mühendislik Yönetimi Üzerine IEEE İşlemleri, 51, 51 (1): 31–46, doi:10.1109 / TEM.2003.822468, ISSN  0018-9391
  3. ^ Kenneth S. Norton (2001), Çapraz Fonksiyonel Evrimsel Metodolojilerin Web Geliştirmeye Uygulanması, Web Engineering: Managing Diversity and Complexity of Web, Springer tarafından yayınlanan makale, ISBN  3-540-42130-0
  4. ^ Double Fine, tamamlanmayı finanse etmek için Broken Age'i ikiye böldü, Kris Ligman, 2013-07-02, Gamasutra tarafından
  5. ^ yaratıkçılık, 2016-05-27, FOLDOC.org - Ücretsiz Çevrimiçi Bilgisayar Sözlüğü
  6. ^ Raymond, Eric S .; et al. (29 Aralık 2003). "cılız yaratıkçılık". Jargon Dosyası. Ver. 4.4.7. Alındı 20 Haziran 2017.
  7. ^ Raymond, Eric S .; et al. (29 Aralık 2003). "uyuyan yaratık". Jargon Dosyası. Ver. 4.4.7. Alındı 20 Haziran 2017.
  8. ^ Raymond, Eric S .; et al. (29 Aralık 2003). "feep". Jargon Dosyası. Ver. 4.4.7. Alındı 20 Haziran 2017.

Dış bağlantılar