Özel Yazılım Projeleri

Yazılım Ar-Ge çalışması: Teknik belirsizlik nasıl sınanır?

Yazılım Ar-Ge çalışmasını açık soru, küçük deney ve karar kaydıyla planlayın. Teknik belirsizlikten ürün geliştirme kararına uzanan ayrıntılı rehber.

Bilgisayar ekranındaki renkli kaynak kod satırları

Sahadaki ekip bir talep formunu dolduruyor, bağlantı kesiliyor ve kullanıcı gönder düğmesine yeniden basıyor. İnternet geri geldiğinde iki kayıt oluşuyor; başka bir denemede ise kayıt hiç ulaşmıyor. Ekran tasarımı hazır olsa da temel bir belirsizlik hâlâ çözülmemiş: iş, kesintili bağlantıda nasıl güvenilir biçimde tamamlanacak? Yazılım Ar-Ge çalışması böyle bir soruyu küçük ve ölçülebilir denemelerle inceleyebilir. Araştırmanın değeri kullanılan teknoloji sayısında değil, sonraki ürün kararını hangi bilgiyle değiştirdiğinde ortaya çıkar.

Bu kurgusal saha uygulaması üzerinden teknik belirsizliği tanımlamayı, denemeyi sınırlandırmayı ve sonucu ürün geliştirmeye aktarmayı ele alacağız. Buradaki Ar-Ge anlatımı, teşvik veya resmi sınıflandırma değerlendirmesi değildir. Konu, geliştirme ekibinin henüz doğrulamadığı bir varsayımı nasıl araştırabileceğidir. Rutin bir ekran işiyle teknik araştırma aynı teslim beklentisine bağlanmamalıdır. Denemenin neyi cevaplayacağı, hangi koşullarda geçerli olduğu ve sonrasında hangi kararın verileceği önceden belirlenmelidir.

Bilinmeyeni teknoloji adıyla değil soruyla tarif edin

“Çevrimdışı çalışmayı araştıracağız” çok geniş bir görevdir. Hangi işlem, hangi cihaz koşulu ve hangi veri davranışı belirsiz? Talebin bağlantı yokken yerelde tutulması ayrı, bağlantı döndüğünde sunucuya aktarılması ayrı, aynı kaydın iki kere oluşmaması başka bir sorudur. Bunları ayırmak denemenin sınırını görünür kılar. Bir teknoloji seçmek bütün bu davranışların doğrulandığı anlamına gelmez. Araştırma başlığının arkasında test edilebilir bir soru bulunmalıdır.

İş etkisini de yazın. Çift kayıt yalnızca listede iki satır mı oluşturuyor, yoksa iki ayrı görev ve bildirim mi başlatıyor? Kaybolan kayıt kullanıcının yeniden bilgi girmesini mi gerektiriyor? Bu sonuçlar araştırmanın önceliğini değiştirir. Teknik ekibin neyin önemli olduğunu işletmeden öğrenmesi gerekir. Aynı anda çok sayıda olasılık varsa önce ürünü kullanılmaz hâle getirebilecek varsayım seçilebilir. Araştırma sırası, sadece merak edilen yeni araca göre belirlenmemelidir.

Varsayımı gözlenebilir bir beklentiye dönüştürün

Bir hipotez, denemeyle incelenecek beklentidir. Örneğimizde “aynı gönderim birden fazla kez denendiğinde sistemde tek iş kaydı oluşması sağlanabilir” gibi bir beklenti kurulabilir. Bunun hangi sınırda geçerli olduğu ayrıca belirlenir. Aynı kullanıcı, aynı talep ve aynı işlem kimliği mi kullanılıyor? Kayıt içeriği değişirse yeni işlem mi sayılacak? Cevaplanmamış bu ayrıntılar test sonucunun ne anlattığını etkiler. İyi hipotez, yoruma açık ifadeleri azaltır.

Başarı ve başarısızlık koşullarını baştan konuşun. Bir kayıt ulaşmış görünürken ek dosyanın kaybolması kabul edilebilir mi? Kullanıcı işlem durumunu bilmiyorsa sistemin arka planda doğru davranması yeterli mi? Teknik gözlem ile kullanılabilirlik birlikte ele alınabilir. Her koşul için kesin sayı uydurmak gerekmez. Önce hangi olayın görüleceğini ve nasıl kaydedileceğini belirleyin. Gerekli hedefler teknik değerlendirme ve iş ihtiyacıyla birlikte seçilir. Deneme bittiğinde hedefin geriye dönük değiştirilmemesi önemlidir.

En küçük açıklayıcı deneyi seçin

Bütün uygulamayı geliştirmek yerine kritik akışın sınırlı bir örneği hazırlanabilir. Talep gönderme, kesinti oluşturma, yeniden deneme ve sonuç kontrolü bu örneğin parçaları olabilir. Gelişmiş tasarım veya bütün raporlar araştırma sorusunu cevaplamıyorsa ilk denemeye alınmayabilir. Küçük deney, eksik düşünülmüş çalışma demek değildir. Sınırları açık, gözlemleri yeterli ve sonucu tekrar incelenebilir bir çalışma olmalıdır. Gereksiz kapsamdan kaçınılırken gerekli kontrol kaldırılmaz.

Denemede gerçek kullanıcı verisi gerekmiyorsa örnek kayıtlarla çalışın. Kullanılan cihaz, ortam, veri biçimi ve bağlantı koşullarını not edin. Başka bir ekip aynı sonucu incelemek istediğinde hangi koşullarda elde edildiğini anlayabilmelidir. “Bizde çalıştı” ifadesi araştırma çıktısı için zayıf kalır. Hangi adımın nasıl uygulandığı ve neyin gözlendiği kayıtlı olduğunda sonuç bir kişinin hafızasından bağımsız biçimde değerlendirilebilir. Bu kayıt sonradan ürün kararına da dayanak olur.

Teknik deneme ile kullanıcı prototipinin görevini ayırın

Kullanıcı işlemin beklemede olduğunu anlamıyorsa arayüz prototipiyle durum mesajları sınanabilir. Sunucuya tekrarlanan gönderim belirsizse teknik deney gerekir. İki çalışma birbirini tamamlayabilir, fakat aynı soruyu cevaplamaz. Görsel olarak anlaşılır bir prototip, kayıt bütünlüğünün sağlandığını göstermez. Teknik olarak tek kayıt oluşması da kullanıcının ne olduğunu anladığını kanıtlamaz. Araştırma planında her çıktının hangi belirsizliğe karşılık geldiği açık olmalıdır. Böylece yanlış kanıttan güçlü sonuç çıkarılmaz.

Olumlu akışın yanında kesintiyi tasarlayın

Deneme, yalnızca bağlantının sorunsuz olduğu anı kapsamamalıdır. Gönderimden önce, gönderim sırasında ve yanıt beklenirken farklı kesinti durumları incelenebilir. Aynı işlem tekrar gönderildiğinde ne olduğu gözlenir. Sistemin bir kısmı işi tamamlamış ama diğer kısmı bunu henüz bilmiyor olabilir. Bu tür durumlar için beklenen kayıt ve kullanıcı davranışı tanımlanır. Hangi senaryoların gerçekten test edildiği listelenirse sonuçların sınırı daha anlaşılır olur.

Tekrarlama davranışı, işlem türü ve uygulama sözleşmesiyle birlikte tasarlanmalıdır. Her isteği körlemesine yeniden göndermek güvenilirlik sağlamaz. İşlem kimliği, durum sorgusu veya başka kontrol yaklaşımı değerlendirilebilir; hangisinin uygun olduğu sistem bağlamına bağlıdır. Denemede amaç tek bir tekniği evrensel çözüm ilan etmek değil, seçilen davranışın gerekli koşullarda işe yarayıp yaramadığını öğrenmektir. Alternatifler aynı ölçütlerle karşılaştırıldığında karar daha açıklanabilir hâle gelir. Uygulanmamış senaryolar da sonuç raporunda görünür kalır.

Ölçüm planı soruya hizmet etsin

Her denemede çok sayıda kayıt toplamak gerekmez. İşlem kimliği, adım, zaman ve sonuç gibi sınırlı bilgiler yeterli başlangıç sağlayabilir. Kişisel veya gereksiz ayrıntılar yerine araştırmanın gerektirdiği gözlemler seçilir. Bir başarısızlık oluştuğunda hangi adımda gerçekleştiği görülebilmelidir. Çıktı yalnızca “başarılı” veya “başarısız” ise nedenini anlamak için deneyin tekrar kurulması gerekebilir. Gözlemlenebilirlik araştırmanın daha başında düşünülmelidir; sonradan eklenen süsleme değildir.

Ölçülen şeyin ne anlama geldiğini açıklayın. Bir gönderim sistemde tek kayıt oluşturmuş olabilir, fakat kullanıcıya sonuç gösterilmesi gecikmiş olabilir. Kayıt doğruluğuyla algılanan tamamlanma farklı gözlemlerdir. Sonuç tablosunda bunlar karıştırılmamalıdır. Örneğin deneme sayısı, kullanılan ortam ve görülen istisnalar birlikte sunulabilir. Küçük örnekle geniş kullanımın tamamı hakkında kesinlik iddia etmeyin. Araştırma, bilinenleri artırırken hangi sorunun açık kaldığını da doğru tarif etmelidir.

Zaman sınırı ve durdurma koşulu belirleyin

Araştırma başlığı açık bırakılırsa yeni seçenekler sürekli eklenebilir. Bir sonraki kontrol noktası ve karar hedefi belirleyin. Bu mutlaka bütün teknik soruların o tarihte çözüleceği sözü değildir. Hangi kanıtla devam edileceği, alternatif denenip denenmeyeceği veya daha fazla araştırma gerekip gerekmediği konuşulacaktır. Zaman sınırı, araştırmanın iş kararından kopmasını önler. Kapsam büyürse bunun nedeni ve sağlayacağı yeni bilgi açıkça değerlendirilir.

Durdurmak bazen uygun sonuç olabilir. Deneme mevcut kısıtlar altında davranışın sağlanamadığını gösterebilir. Bu bilgi ürünü farklı tasarlamaya, bir süreci manuel tutmaya veya başka altyapı seçmeye yönlendirebilir. Sonuç, ilk fikri doğrulamadığı için değersiz sayılmamalıdır. Araştırma maliyetini tamamlanan özellik sayısıyla ölçmek yanlış beklenti yaratabilir. Değer, hangi belirsizliğin azaltıldığı ve hangi daha büyük yatırım kararının daha bilinçli verildiği üzerinden değerlendirilir.

Bulguyu ürünleştirme planına dönüştürün

Teknik denemenin çalışması, canlı ürünün tamamlandığı anlamına gelmez. Hata yönetimi, güvenlik, bakım, erişim ve farklı veri koşulları için ek çalışma gerekebilir. Prototip kodun doğrudan üretime taşınıp taşınmayacağı ayrı karardır. Deneme çıktısında hangi parçaların yalnızca araştırma için yazıldığı belirtilmelidir. Ürün geliştirme ekibi neyi yeniden kullanabileceğini ve neyi yeniden değerlendireceğini bilmelidir. Bu ayrım, gösterimde çalışan bir örnekle sürdürülebilir hizmet arasındaki mesafeyi görünür kılar.

Kabul koşullarını yeni bilgiyle güncelleyin. Örneğin kullanıcıya bekleyen işlem durumunun gösterilmesi gerekli bulunmuşsa bu ürün kapsamına eklenebilir. Aynı kaydın tekrar oluşmaması için seçilen yaklaşımın test senaryoları korunabilir. Araştırma raporu yalnızca bir sunum olarak kalmamalıdır. Karar, gerekçe, bilinen sınırlar ve önerilen sonraki işler ilgili geliştirme kayıtlarına bağlanır. Böylece aynı belirsizliğin başka ekipte yeniden sıfırdan tartışılması azaltılabilir. Bilgi, uygulama işine taşınmış olur.

İşletme ile ekip aynı araştırma çıktısını beklesin

İşletme çalışan bir modül beklerken ekip teknik bulgu teslim ediyorsa kapsam konuşması eksiktir. Araştırmanın sorusu, kullanılacak yöntem ve sunulacak çıktı anlaşılır olmalıdır. Sonuç bir karar notu, örnek uygulama, ölçüm kaydı veya alternatif değerlendirmesi içerebilir. Hangilerinin hazır olacağı baştan konuşulur. Belirsizlik nedeniyle araştırma yapılması, bütün çalışma sorumluluğunun belirsiz kalacağı anlamına gelmez. Süreç ve raporlama yine planlanabilir. Yalnızca sonucun hangi yönde çıkacağı önceden garanti edilmez.

Özel Yazılım Projeleri kapsamında Ar-Ge, fizibilite ve prototipleme ihtiyaçlarını bu sorularla birlikte ele alabilirsiniz. İyi araştırma, yeni teknoloji isimlerini projeye ekleme yarışı değildir. İşin önündeki kritik varsayımı seçer, uygun deneyle sınar ve kararın dayanağını kaydeder. Kapsamı daraltmak, çözüm yolunu değiştirmek veya geliştirmeye devam etmek böylece daha somut bilgiye dayanır. Teknik merak ile işletme ihtiyacı arasındaki bağ korunduğunda araştırma, ürün geliştirmeyi yönlendiren kullanılabilir bir çalışma olur.

Sonuç notunda alternatifin neden seçilmediği de bulunsun

İki yaklaşım denenmişse yalnızca seçilen yöntemi anlatmak bilgi kaybına yol açabilir. Diğer seçeneğin hangi koşulda yetersiz kaldığını kısa biçimde yazın. Örneğin kayıt doğruluğu sağlanmış ama kullanıcı durumunun anlaşılması için fazla manuel takip gerekmiş olabilir. Bu gerekçe, gelecekte benzer fikir tekrar gündeme geldiğinde yararlıdır. Koşullar değişirse eski karar da yeniden değerlendirilebilir. Araştırma kaydı, tercihi sonsuza kadar sabitlemek için değil hangi bilgiye dayanılarak verildiğini korumak için tutulur. Böylece ekip aynı seçeneği ne tamamen unutmuş ne de gerekçesiz biçimde yasaklamış olur.

Sık Sorulan Sorular

Her özel yazılım projesi Ar-Ge içerir mi?

Her geliştirme işi teknik araştırma olarak ele alınmak zorunda değildir. Buradaki ayrım, karar vermeyi engelleyen gerçek bir belirsizliğin bulunmasıdır. Bilinen bir işlemi uygulamakla bir varsayımı deneyle sınamak farklı iş türleri olabilir. Resmi teşvik veya sınıflandırma değerlendirmesi ayrı konudur; bu yazı böyle bir uygunluk sonucu vermez.

Teknik denemenin başarısız olması zaman kaybı mı?

Uygun soruyu ve koşulları sınadıysa olumsuz sonuç yararlı bilgi sağlayabilir. Mevcut yaklaşımın sınırı anlaşılır ve daha büyük geliştirme kararı değişebilir. Değer, ilk fikrin doğrulanmasından çok belirsizliğin azaltılmasıdır. Denemenin neden başarısız olduğu ve hangi alternatifin değerlendirileceği kaydedilmelidir. Sonuçsuz kalan belirsiz bir çalışma ile açıklayıcı olumsuz bulgu aynı şey değildir.

Araştırma ne kadar sürmeli?

Soru, gerekli ortam ve belirsizlik düzeyine göre planlanır. Evrensel süre vermek doğru olmaz. Bir sonraki kontrol noktasında hangi kararın verileceği açık olmalıdır. Kapsam büyürse ek çalışmanın sağlayacağı bilgi değerlendirilir. Zaman sınırı araştırmayı yüzeysel yapmak için değil, onu işletmenin karar ihtiyacına bağlı tutmak için kullanılır.

Prototip kodu canlıya alabilir miyiz?

Bu ayrı teknik değerlendirme gerektirir. Araştırma için yeterli olan kod, gerçek kullanımın güvenlik, bakım ve hata koşullarını karşılamayabilir. Hangi parçaların yeniden kullanılacağı ve hangi kontrollerin tamamlanacağı belirlenmelidir. Gösterimde çalışması üretime hazır olduğunun tek kanıtı değildir. Ürünleştirme işi kapsam ve kabul koşullarıyla ayrıca planlanabilir.

Araştırma çıktısı nasıl teslim edilmeli?

Soru, varsayım, ortam, uygulanan adımlar, gözlem, sonuç ve açık sınırlar anlaşılır biçimde aktarılmalıdır. Gerektiğinde örnek uygulama ve ölçüm kayıtları eklenir. Sonraki ürün kararı ve sorumlusu belli olsun. Yalnızca “çalışıyor” ifadesi, başka ekibin bulguyu değerlendirmesi için yeterli olmayabilir. Çıktının tekrar incelenebilir olması bilgi devrini güçlendirir.

Tüm yazılar