Bu analojiyi kullandım ... birçok yazılım projesi başlar, çünkü bazı yazılımlara ihtiyaç duyan kişi bir "tamircinin" eşdeğerini bilir ve bu kişiyi bir bahçe kulübesinin yazılımını oluşturmak için işe alır. İşini çok iyi yapan küçük ve kullanışlı bir uygulamadır.
Müşteri daha sonra tamirciye geri döner, çalışmalarından memnun kalır ve bir şeyi daha yapmak için yazılımı değiştirmelerini ister. Çoğu zaman, bu yeni özelliğin orijinal isteğiyle pek ilgisi yok, bu yüzden neredeyse sizden ayrı bir girişe sahip bahçenin arkasına başka bir oda inşa etmenizi istiyorlar.
Sonra kulübenin içine bir ışık koymak istiyorlar, bu yüzden tamirciyi geri alıyorlar ve evdeki ana panelden tek bir devre geçiriyor, her odanın tavanına bir çekme zinciri ışık şalteri takıyor ve onları devreye bağlıyor .
Müşteri daha sonra bazı elektrikli el aletleri çalıştırmak istediklerine karar verir, ancak devre kesiciyi üflemeye devam eder, böylece kişiyi geri çağırır ve aslında ana panele koştuğu tek devreyi sökmek zorunda kalır ve daha büyük bir iletken ve kulübenin alt paneli. Kabloyu iki kez çalıştırmak ve iki elektrik izni vb. Ödemek zorunda kaldı. Bu verimsiz.
Sonra müşteri saçma bir şey ister: bahçemdeki bahçeyi bir garaja çevirir misiniz? Yaptığın hiçbir şeyi yeniden yapmanı istemiyorum ... Sadece daha büyük yapmanı istiyorum böylece arabamı oraya park edebilirim. Daha sonra, birçok durumda, tamirci "müşterinin her zaman haklı olduğunu" düşünür ve daha büyük hale getirmek için sundurmanın 3 tarafına eklemeler yapar, bölmeler arasındaki duvarı yıkar vb. Tabii ki, çatı sona erer. yukarı sarkma, çünkü doğru inşa edilmemiş.
Böylece müşteri artık o kadar etkilenmedi, ama hala daha fazlasını istiyorlar. Tamirciden tekrar tekrar bir oda daha eklemelerini ya da bu odayı değiştirmek için tekrar tekrar sormalarını istiyorlar. Sonunda The Burrow'a benzeyen ve mimari açıdan sağlam bir şeyle karşılaşıyorsunuz .
Artık çoğu insan bunu inşaat dünyasında deneyecek kadar saçma değil, ancak yazılım dünyasında her zaman oluyor, çünkü insanlar bu bağlantıları kurmuyor:
Gerçekten güzel bir bahçe barakası inşa etmek için nitelikli bir kişinin mutlaka bir ev inşa etmek için nitelikli olması gerekmez.
Önceden aşamalı olarak bir ev inşa edeceğinizi biliyorduysanız, ancak bu yalnızca bir bahçe kulübesi olarak başlayacaktı, işleri farklı bir şekilde yapardınız ve bahçe kulübesi çok daha pahalıya mal olacaktı ( Gerçekten kalın ped, bitmiş bir evin tam yükü için yeterince büyük bir iletken koştuğunuzdan emin olun).
Bir çok durumda, bir aşamadan diğerine yükseltme, daha önce yapılan çalışmaların çoğunun geri alınmasını gerektirir, olması gerektiği gibi olduğundan daha pahalı hale getirir.
İnşaat dünyasında, müşteriye tasarım aşamasında sonucun nasıl görüneceği konusunda iyi bir fikir verebiliriz, ancak yazılım dünyasında bu yeteneğe sahip değiliz. Bu noktaya ulaştıysanız, temel olarak yazılımın önemli bir bölümünü yazdınız.
Çevik Manifesto, yazılım / inşaat analojisinin bozulduğunu kabul etmenin bir sonucudur. Otomatik birim testleri ve yinelemeli serbest bırakma döngüleri gibi şeylerin yapımında hiçbir paralelliği yoktur. Bu şeyler tasarımdan prototipe gitmenin neredeyse sıfıra gitme maliyetinden faydalanıyor (biz buna derleme veya inşa diyoruz).