25 puan yazan GN⁺ 2025-02-19 | 1 yorum | WhatsApp'ta paylaş

> “Bunu yapmak ne kadar sürer sence?”

  • Yazılım geliştiricilerin korktuğu ve nefret ettiği bu soruya çamaşır makinem bana yeniden düşündürdü
  • Çamaşır makinesinin gösterdiği yazılım efor tahmini (Software Effort Estimation) zorluğu
    • Yeni eve taşınırken çamaşır makinesini kurma süreci beklenenden çok daha fazla zaman aldı
    • Normalde 10 dakikada bitecek bir işti ama bu kez 4 saat sürdü
    • Önceden öngörülmeyen engeller (blocker'lar) ortaya çıktı ve kurulum gecikti
    • Bu sürecin, yazılım geliştirmede efor tahminini neden zorlaştırdığıyla benzer olduğunu fark ettim
  • Engeller ve çözümler
    • Engel 1: Elektrik bağlantısı için delik yoktu, bu yüzden çamaşır makinesini prize bağlayamadım
      • Çözüm 1: Hırdavatçıdan 60 mm'lik bir panç testere ucu alıp delik açtım
    • Engel 2: Tüketici tipi matkapla panç testere ucu kullanılamıyordu
      • Çözüm 2: Daha güçlü bir matkap ödünç alıp kullandım
    • Engel 3: Gider ve temiz su hortumları yeni evde beklediğimden daha kısa kaldı
      • Çözüm 3: Yeni bir uzatma hortumu almaya çalıştım ama mevcut hortumun uzatılamadığını fark edip yeniden yeni hortum satın aldım
    • Engel 4: Musluğa sıkıca sabitlenmiş metal kapak çıkarılamıyordu
      • Çözüm 4: Daha büyük bir İngiliz anahtarı alıp kapağı çıkardım
    • Engel 5: Giderin spigot'u PVC bir duvarla kapalıydı
      • Çözüm 5: Matkapla PVC duvarı delip gider hortumunu bağladım
    • Toplam 5 hırdavatçı ziyareti ve 4 saatlik çalışmanın ardından çamaşır makinesini sonunda sorunsuz kurabildim
  • Yazılım geliştirmede efor tahmini neden zordur?
    • Tanıdık bir iş olsa bile ortam değiştiğinde beklenmedik değişkenlerin ortaya çıkma ihtimali yüksektir
    • Geçmiş deneyime dayalı tahminlerin sık sık yanlış çıkmasının nedeni “bilinmeyen bilinmezler (Unknown Unknowns)”dir
    • Bazı örnekler:
      • Kullanmayı planladığınız kütüphanenin artık bakım almıyor olması ve doğrudan kendiniz düzeltmek zorunda kalmanız
      • Geliştirme araçları güncellendiğinde eski yöntemin artık geçerli olmaması
      • OS sürümü değiştiğinde mevcut bağımlılıkların düzgün çalışmaması
      • Altyapıya yeni bir bileşen eklendiğinde onun beklendiğinden farklı davranması
  • Sonuç
    • Yeni evdeki bu deneyim, yazılım geliştirmede efor tahmininin ne kadar zor olduğunu gösterdi
    • Geliştirmeye başlamadan önce gereksinimleri olabildiğince ayrıntılı incelemek gerekir, ancak beklenmedik blocker'ların ortaya çıkması kaçınılmazdır
    • Yazılım projeleri tanıdık işler gibi görünse bile yeni bir ortamda bambaşka zorluklar ortaya çıkabilir
    • Bu değişkenleri hesaba katarak takvimi ve kaynakları esnek şekilde ayarlamak gerekir

1 yorum

 
GN⁺ 2025-02-19
Hacker News görüşleri
  • Yazılım tahmini bir şaka gibi; çünkü düşük tahmin yapmanın bir cezası yok

    • Film prodüksiyonu tahminleriyle karşılaştırılabilir. Film prodüksiyonuna tamamlanma garantisi satan şirketler var
    • Tamamlanma garantisi prodüksiyon maliyetinin yaklaşık %2’sine mal olur. Genellikle bütçesi 3 milyon ila 70 milyon dolar arasında olan bağımsız filmlerde kullanılır
    • Garanti şirketi bazı ek maliyetleri üstlenir, ancak fazla büyürse yönetmeni kovar ve prodüksiyonu devralır. Bu yaklaşım gerçekten işe yarar
    • Tamamlanma garantisi şirketleri geçmiş verilere dayanarak tahmin yapar. Ellerinde birçok filmin gerçek maliyetleri vardır
    • Her sahnenin maliyetini ayrıntılı olarak kaydederler. Örneğin bir araba takip sahnesi için veritabanındaki geçmiş 100 araba takip sahnesinin maliyetine bakarlar
    • Yönetmen, yapımcı ve oyuncular hakkında da bilgi sahibidirler; bunların bir sahneyi çekme maliyetini benzerleriyle karşılaştırırlar
    • Bu roket bilimi değil, sigorta underwriting’idir
  • Harika bir yazı, ama yazılım deneyimiyle ilgili temel bir fark eksik

    • Müşteri gerçekte ne istediğini bilmiyor olabilir. Önceden ne kadar çok sorarsanız sorun bu bilgiyi elde edemezsiniz
    • Saatlik ücretlendirip proje bazlı faturalandırmayı kesinlikle reddetmelisiniz
  • DIY projeleri her zaman böyledir

    • Eşyalar hakkında çok konuşulur ama aletler ve parçalar çok yer kaplar
    • Yazarın zaten birçok aleti vardı ama yine de birkaç tanesi eksikti
    • Sonunda hırdavatçıya gitme sıklığı azalır, ama atölye eşyayla dolar taşar
  • Delik açtıktan sonra 25 dakika boyunca düz kalmayı korumayı ve gürültü engelleyici kulaklıkların şaşırtıcılığını öğrendim

    • Gürültü engelleyici kulaklıklar işitme koruma ekipmanı değildir. İşitme koruması, gürültü kaynağı ile kulak arasında fiziksel bir bariyer oluşturur
    • Gürültü engelleyici kulaklıklar çevredeki sesi dinler ve karşıt ses dalgaları üretir. Kusursuz olmadıkları için kulağı yeterince korumazlar
  • Hikâye güzel. Ama benim deneyimim neredeyse tam tersi

    • %90’ı kolay işler değil, %90’ı ne yaptığını çözmeye çalışmaktır
    • Aynı ürün birçok şirkette tekrar tekrar yapılır
  • Bu bana “gerçekliğin şaşırtıcı ayrıntıları vardır” sözünü hatırlatıyor

    • Bilmediğiniz şeyler, yeni bir şeye yaklaşana kadar öylece kalır
  • Yazar elektrik kablosu için delik açarken plastik parçayı tertemiz oturtuyor

    • İnşaatçılar su hortumu için deliği kabaca kesip sigara içmeye gider
    • Bu benim geçmiş deneyimlerimle de örtüşüyor
  • Çoğu iş arkadaşım, proje başlamadan önce araştırma ve envanterin çok zaman aldığını söylediğimde şaşırıyor

    • Çoğu iş arkadaşım projeleri hızlı bitiriyor, sonra da çok zaman bakım ve düzeltmelere gidiyor
    • Ben projenin başında çok zaman harcıyorum, böylece sonradan bakıma ihtiyaç kalmıyor
  • Bir dahaki sefere bir teknisyenin fiyatına şaşırdığınızda düşünmeye değer ilginç bir nokta

    • Bir tesisatçının çamaşır makinesini bağlamak için birkaç dakikada 300 dolar istemesinin sebebi, gidere nasıl delik açılacağını biliyor olmasıdır
  • Bir yazılım projesine başlamadan önce hangi soruları sormanız gerektiğini bilmiyorsanız ne yapmalısınız?

    • Keşif işini gereksinim toplama alıştırması olarak görmeye karşı değilim
    • Hırdavatçıya bir kez gidip büyük bir alışveriş listesi ve açık sorular listesiyle dönmek, işi daha verimli ve daha basit hale getirebilir