Çevik Manifesto Prensiplerinde belirli bir noktayı anlayamıyorum


24

Çevik Manifesto Prensipleri okuyordum . Bir nokta dışında her şey açık ve makul görünüyor:

Sadelik - yapılmayan iş miktarını maksimize etme sanatı esastır.

Bunu anlamıyorum. Bu, yapılmayan işin bir şekilde abartılı olması gerektiği anlamına mı geliyor? Eğer öyleyse, gerçekten mantıklı değil.


2
Aşağı oyla mücadele etmek için + 1 - burada şaşırtıcı derecede ilginç bir sorunuz var.

1
Ayrıca Wu Wei'ye bakın ve genel olarak yazılım geliştirmeye nasıl uygulanabileceğini hayal edin. Sorunuzda ifade edilen felsefenin doğal ilerlemesidir.

Yanıtlar:


30

Parantez içindeki yorumu kaldırın. Geriye kalan şey “Sadelik esastır”, bu arada prensibin ifadesinin kendisine uygulanmasıdır.

Sadelik esastır, çünkü gerçekte ihtiyacınız olanı distile ettiniz, eldeki görevi daha ağır, daha az zarif kılan şeyleri kaldırarak: karmaşık.

Her zaman Pascal'nın kısalıklığı üstlenmesi anlamında yorumda bulundum : “ Daha kısa bir mektup yazdım, ama zamanım olmadı. ” Kutusuz olanlardan kaçınmalısınız (mektuptan, koddan) ve bu bir aktif görev değil, kolay bir. Bu kendi başına olan bir şey değil.


35

Fikir "iş miktarını maksimize gerekli değil iş yapıyor, yani kaçınmaktır değil yapılır".

Yani eğer geleneksel bir projede, daha sonraki tüm ihtiyaçlarınızı karşılamak için harika bir soyut temel sistemi planlayıp kuracaksanız, bunu atlayın ve mevcut gereksinimler için mümkün olan en basit şeyi inşa edin . İhtiyacın olmayan şeyleri yapma.

YAGNI ilgili bir kavramdır.


5
Tesadüfen, bu muhtemelen benim en az hemfikir olduğum çevik prensiptir . Aşırı ele alındığında, soyut öngörü bizi diğer hayvanlardan ayıran şeydir ... Yapabildiğimiz zaman kullanmamız gerektiğini söylüyorum. Tabii ki, ilkenin ne tür acımasızlıklara tepki vermesi gerektiğini biliyorum - ama bir miktar öngörü zarar vermeyecek. Bazen YAGNI'dir, ancak bazı geliştiricilerin o kadar dogmatik olduğunu gördüm ki, birkaç saat ileride düşünmeyi bile durduramayacaklar (ve uyguladıkları basitliğin 4-8 saat içinde bile yeterli olmayacağının farkına varıyorum).
Maksimum

2
@ Max, gelecekteki olası değişiklikleri öngörmek için gerekli olduğunu düşünüyorum. İşte öngörülerin çok yardımcı olduğu yer. Ve tarif ettiğiniz geliştiriciler daha çok kumda saklanan devekuşları gibidir.
superM

7
@Max müşteriler için ne ödeme istemiyorum düşünmek onlar olabilir gelecekte ihtiyaç onlar ne için ödeme isteyen artık mümkün olduğunca çabuk sağ gerekmez . Orada "Sonra bu kadar zaman kazandıracak" nin iyi niyetli üzerinde boşa çaba $$$ milyarlarca her ay olduğunu ve "daha sonra" aslında gelmez, ama işler, arabası ve geç çünkü bütün bu "öngörü" nin karmaşıktır

15
@ Max: YAGNI kararları son sorumlu ana ertelemekle ilgilidir . Hakkında konuştuğunuz şey, kararı gerçekten de bir Kötü Fikir ™ ​​olan mümkün olan en son ana ertelemek . Mesele şudur: bir karara dayanmak için hiçbir zaman daha az bilgiye sahip olmayacaksınız. En kötü durumda, yarın aynı bilgilere sahip olacaksınız. Ama genellikle, o zamana kadar bir şeyler öğrenmiş olursun. Bahsettiğiniz durumda, bunu biliyor olan YAGNI basitçe geçerli değildir bu yüzden, onu ihtiyacım olacak. Uygulamayı denemek bu durumda gerçekten aptalca.
Jörg W Mittag

2
@Max: Burada tarif ettiğiniz şey, yapılmayan iş miktarını maksimize etmenin tam tersidir. İki kat daha fazla iş yapıyor.
pdr

5

Buna "altın kaplama" diyorduk. Bir çekiç için gereklilik bir çiviyi bir tahta parçasına basmasıdır. Altın kaplama çekiç olmak işini daha iyi yapmaz.

Çoğu zaman bir geliştirici yeni bir havalı çerçeve kullanmayı veya havalı olmasa da gerekli olan özellikleri eklemeyi önerebilirdi. Bu fikri not ederdik, ama bu sürüm için bunu yapmayacağız. Yapılmayan işleri en üst düzeye çıkaracağız. Yazılımı zamanında teslim etmek yeterince zordur, bu nedenle ihtiyaç duyduğunuzdan daha fazla kod teslim etmeyin. Yapılması gerekiyorsa, en sonunda plana girecek ve uygun zamanda yapılacaktır.


4

Bu fikir, daha genel Yalın Üretim'e ve ardından bu tekniklerin Yalın Yazılım Geliştirme'ye uygulanmasına yol açan Toyota Üretim Sisteminden (TPS) gelen bir konsepte çok benzer . TPS, 1950'lerin sonlarında üretimdeki kökleri ile çevik hareketini önemli ölçüde yutmaktadır.

Yapılmayan iş miktarını maksimize etme kavramı israfı ortadan kaldırmaya benzer. Üretim ortamında atık, malların fazla üretimi, kaynakların beklenmesi, insanların veya ürünlerin gereksiz yere taşınması, çok fazla envanter ve hatalı ürünler gibi şeyleri içerir. Yalın Yazılım Geliştirmede, bu atıklar gereksiz işlevsellik, geliştirme sürecindeki gecikmeler, yazılım üretimini yavaşlatan gereksinimler, test eksikliği ve iletişim gecikmelerine çevrildi.

Her iki kavramın genel fikri aynıdır - değer katmayan şeyler israflıdır ve en aza indirilmelidir. Nihai amaç, kaliteyi artırmak ve üretme zamanını ve maliyetini azaltmaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.