Çünkü yazılım geliştirme genellikle bir kaçış odası gibidir

pembikbulut

Global Mod
Global Mod


  1. Çünkü yazılım geliştirme genellikle bir kaçış odası gibidir

Son zamanlarda ilk bakışta olağandışı görünen bir benzetme duydum, ancak daha yakın bir düşünceye göre, şaşırtıcı bir şekilde ortaya çıkıyor:



“Yazılımın gelişimi bir kaçış odası gibidir.”






Bir sonraki büyük şey - Golo Roden




Golo Roden, yerel web GmbH'nin kurucusu ve CTO'sudur. Olaylara ve hizmetlere dayalı olarak dağıtılmış mimarilere özellikle dikkat ederek web ve bulut uygulamalarının ve arıların anlayışı ve geliştirilmesi ile ilgilidir. Yol gösterici ilkesi, yazılımın gelişiminin kendi başına bir son olmaması, ancak her zaman aşağıda bir profesyonellik izlemesi gerektiğidir.







Ayrıca bu fotoğrafı düşündüm, benim için o kadar uygun görünüyordu. Ve bu karşılaştırmanın büyük bir başarısı olduğunu düşündüğüm için, bu gönderiyi bugün ona adayacağım. Bu noktada, bu büyük benzetme için Jörg'e çok teşekkürler.

Kaçış odasına hoş geldiniz!


Bu yüzden yazılım geliştirmenin bir kaçış odası gibi olacağını hayal edin. Sadece – biraz farklı. Ya da daha kesin: çok farklı. Çünkü daha önce bu kaçan odada kimse onu sizin için test etmedi. Kimse onlara kaç oda olduğunu söylemedi. Size önerilerde bulunan bir oyun yok. Ve bir yerde bir çıkış olduğu garantisi bile yok. En İyi Şey: İçerideyken, dışarıda bekleyen biri – saatlik olarak.


Önerilen editoryal içerik



Rızanızla, burada harici bir YouTube videosu (Google Ireland Limited) burada davet edilir.



YouTube videosu her zaman yüklenir

YouTube videosu artık yüklüyor





Yazılım geliştirme bir kaçış // Alman odası




Amaç açıkça açık: bir çıkış yolu bulmak istiyorsunuz. Figüratif bir anlamda, bu uygulamanın canlı olmasını, işlevin dağıtılacağını, boru hattı CI/CD'nin yeşil olduğunu ve müşterinin memnun olduğunu anlamına gelir. Sadece: Kimse oraya nasıl geldiğini tam olarak bilmiyor.



En azından bir kaçış odasında kısa bir brifing alın, örneğin:

“60 dakikan var, işte hikayen, iyi şanslar!”

Sonunda, yapıp yapmamanıza bakılmaksızın, birisi kapıyı açar ve şöyle der:

“Sonuçta, bazı iplikleri denediler ve azalttılar.”

Yazılımın geliştirilmesinde biraz farklı çalışıyor:

“Bu işleve mümkün olan en kısa sürede, tercihen dün ihtiyacımız var.”

O zaman işlevin ne yapması gerektiğini ve detayların ne olduğunu sorun, bir cevap genellikle şöyle gelir:

“Ah, çok fazla değil, sadece bazı düğmeler.”

Zararsız görünüyor – göreve daha yakından bakana ve temelde var olana kadar:

“Lütfen kısa süreli bir uçak geliştirin. Sadece kanatlar olmadan, daha sonra ekleyebiliriz. Ama şimdi uçmalı.”

Kapının Arkasında Ne Beklenmeli


Sonra kaçış odanıza girin. İlk kapıyı açın, ilk bulmacaya rastlarsınız – örneğin: Hangi arayüzlere ihtiyacımız var? Aslında Confluence'a göre belgelenen belgeleri sağlıyorlar mı? Veya sonunda sadece bir Jason boş nesne geri döner çünkü biri bir yerde return Yazılı, ancak iade değerini unuttu mu?

Ancak, her şeyin yolunda gittiğini ve bir şekilde yöneteceğini düşünüyorlar. Ve gerçekte ilk bulmacayı çözüyorlar. Yanında kapıyı açın ve aniden on iki diğer kapıyı, tuzağın bir kapısını ve tüm veri seviyenizde ilk çeken rastgele bir lazerle bir odada bulunur.

İşte böyle gidiyor. Bazen bir sorunu çözerler ve kesinlikle başardılar. Sonra bir sonraki kapıyı açın – ve aniden performanslar tamamen çöküyor. Veya güvenlik bir sorun haline gelir. Veya boru hattı CI/CD blokları. Açıkçası sadece her ikinci yarışta, rahatsız edici bir mesajla “Çıkış Kodu 137”Sadece Jenkins karar verdiğinden:

“Hayır, bugün değil.”

Belki karşı taraftaki eski sistemin hala Java 6'da çalıştığını, sadece sabun konuştuğunu ve bilinmeyen nedenlerle rastgele zaman aşımı ürettiğini öğrenin. (Spoiler: Zaman aşımları kazara değil. Sistem onlardan yalnız nefret ediyor.)

Tipik Sorunlar


Açıkçası klasik:

“Yani benimle gidiyor.”

Geliştiriciler bu cümleyi yeterince biliyorlar. Tabii ki meslektaşı ile not defterinde çalışıyor çünkü oradaki çevresel değişken NODE_ENV AÇIK “kaos” Ayarlanmış ve üç yıl önce beş docker kap gerçekleşir, ancak bu bilgisayarda hiç çalışmamışlardır.

Bazen bir sorun muazzam görünüyor, ancak bu nedenle iki gün içinde yapılabilir çünkü herhangi bir kütüphane bir süre çözdü. Bazen bunun önemsiz olduğunu düşünürler ve haftalarca mal olurlar, çünkü aniden gerçekte (olması gereken) sıralarda sendika çatışmaları vardır. Yani, slogana göre:

“2018'den beri neden hala bir lock.json paketi var?”

Sonuçta, bir kaçış odasında bir saat duvara asılır. 60 dakika, sonra sona erdi. Yazılım projelerinde ise genellikle:

“Yaklaşık üç ayda takdir ediyoruz.”

Ve eğer dürüstseniz, şu anlama geliyor:

“Her şey üç ay daha.”

Çünkü bir sonraki kapının arkasında küçük bir sayı bloğu veya çağrılan büyük bir Hydra Hydra hizmetleri bulup bulmayacağınızı ve elbette bir tane güncellemeye çalıştığınızda tamamen parçalara ayrılacağınızı bilmiyorsunuz.

İlgilenen partilerle eğlenceli …


Böylece ilgili taraflar olay yerine gidiyor. Kaçış odasında, en azından onlarla odada değilim. Yazılım projelerinde. Ya da her beş dakikada bir gelirler ve şunu sorarlar:

“Kısaca ne kadar uzakta olduğunu gösterebilir misin?”

Ve dağıtımlarının neden aniden arılarının tüm kaynaklarını ve sağlık kontrolünü aniden yuttuğunu bulmaya çalışırken, son zamanlarda sadece HTTP kodunu 418 geri döndü (geri“Ben bir çaydanım”). Peki gösterdiğiniz ilerleme ne? Tamamen kırmızı bir gösterge paneli ve terminalini üç saat boyunca sabitleyen bir geliştirici …

… ve gereksinimler


Kişisel favori bulmacam gereksinimler. Başlangıçta şöyle diyor:

“Sadece bu işleve ihtiyacımız var.”

Bir hafta sonra:

“Ah, bu arada, tüm artık senkron çağrıları uygulayabilir misiniz?

Tabii ki neden olmasın. Benim için gereksinimler genellikle Pokémon olarak gelişir: başlangıçta sadece küçük bir düğme. Böylece bir form haline gelir. Ve belirli bir noktada, Oouth, onay zinciri ve karmaşık bir gösterge paneli ile bir iş akışındaki her şey değişir.

“Ama bir ev inşa ettiğinizde …”


Bunu açıklamaya çalışırsanız – belki de buradan biraz daha ayık – günlük işlerde birisi garanti edilir ve şöyle diyor:

“Ama bir ev inşa etmek söz konusu olduğunda işe yarıyor.”

Evet ama biliyor musun? Her şey evlerin inşası için de bilinir. Bir plan var. İşte pencerelerin oraya geldiği duvarlar yapıldı. İnşaatın başlamasından iki ay sonra şantiyeye mimar gelmez ve şunları söyler:

“Bunu farklı düşündük. Şimdi çatıyı peynirden çıkarmak istiyoruz.”

Bu, yazılımın geliştirilmesinde ve sürekli olarak olan budur. Veya müşteri tamamen farklı bir şeyin gerçekten gerekli olduğunu fark ettiği için. Ya da büyük bir bataklığın temel altındaki kontamine bölgeler tarafından gizlendiğini keşfettiğiniz için. Veya yüzde yüz neden. Yani her şeye gitmeden önce en azından bazı istikrarlı yayınlarda hareket edebiliyorsanız mutlu olursunuz.

Bizimle nasıl yüzleşiyorsun? İterik olarak çalışıyor. Tüm kaçış odasını aynı anda tüm bulmacalarla çözmeye çalışmayın, ancak birbiri ardına bir bulmaca al, boşluk, kapı kapıya. Düzenli olarak test edin, Tronchi yazar (çarpmadan önce), metrikleri yükleyin ve hataları önceden görünür hale getirin. Ve her şeyden önce, ışığı açmak ve orada gerçekten kırışıklık ve önerilerime bakmaktan korkmuyorsunuz.

Takım çok önemli


Takım önemli bir fark yaratıyor. Yüz kez yapan üç kişiden oluşan iyi ücretli bir ekiple ya da hiçbir fikri olmayan rastgele ve gergin insan yığını ile bir kaçış odasındaysanız büyük bir farktır. İyi bir ekip modeli tanır. İyi bir ekip, daha sonra kapsam yerine testleri nereye yazdığınızı bilir. İyi bir ekip, yalnızca yandığında kaydı içermez. Müşteri zaten yanlışsa ve geçen haftanın işlevselliğinin neden hala sahnelemede çalıştığını soruyorsa, bizi/CD'yi sondan beş dakika önce ayarlamıyor.

Ancak en iyi takım bile bir sonraki kapının arkasında bir canavar olmayacağını garanti edemez:

“Merhaba, ben onun on yaşındaki CRM mirası. Sadece EBCDIC konuşuyorum ve 2012'den beri resmi olarak desteklenmemiş bir Oracle versiyonuyla sıkıca bağlandım.”

Eğer o zaman bu veritabanında bir tane var SELECT Yapın, 200.000 satır alın – ya da hiçbir şey. Aynı soruda, bazen böyle, bazen böyle. Nedenlerle.

Son kapı – bitti mi?


Ama belli bir noktada (umarım) şu anda kendilerini son kapının önünde buldukları anda vardır. Tüm testler yeşildir. Boru hattı çalışıyor. Dağıtım temiz. Kaçış odasındaki son anahtarı çevirdiğinizde, kapıyı atladığınızda ve bir taçlandırma ile dışarıdaki biri sizi beklediğinizde az ya da çok aynı görünüyor. En azından birisi söylenene kadar:

“Hızlı bir yönetim alanı kurabilir miyiz? Yarına kadar en iyisi harika olurdu.”

Güzel olan şu ki: bir şekilde tüm bunlar bunun bir parçası ve bu mesleğin cazibesini biraz yapıyor. Yazılım geliştirme bir kaçış odasıdır. Sadece daha büyük, kaotik, öngörülemez. Bazen son derece gergin, bazen sinir bozucu, ancak bir bulmacayı çözdüğünüzde her zaman bu küçük futbolla. Bir kapı açarsanız ve arkasında bir ejderha beklemezseniz, gerçekte sonuç. Böylece dışarı çıkabilir, bunu yaptığınızı söylemek için kısa ve gururla sallayabilirsiniz. En azından biri arkadan aranana kadar:

“Bu arada, hala yeni bir projemiz var. Bu sefer otomatik öğrenme, IoT ve blockchain ile. Ama bu hızlı bir şekilde gitmeli, değil mi?”



(RME)




Ne yazık ki, bu bağlantı artık geçerli değil.

Boşa harcanan eşyalara olan bağlantılar, 7 günlük daha büyükse veya çok sık çağrılmışsa gerçekleşmez.


Bu makaleyi okumak için bir Haberler+ paketine ihtiyacınız var. Şimdi yükümlülük olmadan bir hafta deneyin – yükümlülük olmadan!
 
Üst