Programcının Paradoksu: Yazılım Fabrikaları

In: Genel


Bir yazılım geliştirme mağazasının fabrika modelinden rahatsızım.

Bunu onlarca yıl önce deneyimli bir teknik yöneticiden duymuştum. Etkili bir şekilde geliştirme mağazası, gereksinimleri karşılayan ve sürümler üreten bir fabrikadır. Temel olarak, bir grup yazılım montaj hattıdır.

Açık olan sorun, dolaylı olarak programlamanın mavi yakalı çalışmaya benzer olduğunu ima etmesidir. Bir grup programcıyı bir araya toplarsın, onlara ne yapacaklarını söylersin, onlar yapar ve sonra sonuçlar gönderilir. Ona sanki entelektüel değil de fizikselmiş gibi davranılıyor.

Bu, içimdeki idealistleri rahatsız etse de, çoğu yazılım geliştirmenin rutin olduğu şu anda durum hemen hemen böyle. Kitaplıklar ve çerçeveler zor kısımlarla ilgilenir, çoğu kodlama belirli bir hedefe ulaşmak için hepsini birbirine yapıştırır. Öğreticileri ve temel belgeleri okursanız, StackOverflow gibi sitelerde her türlü eksik yanıt bulunabilir. Temel becerileri oldukça hızlı bir şekilde öğrenebilir ve çoğu durumda bunları tekrar tekrar uygulamaya devam edebilirsiniz.

Hala bir ‘hızlı anlama’ sorunu var. Yani, cevapları bulmuş olabilirsiniz, ancak yine de onları hızlı bir şekilde anlamanız gerekiyor. Aktif programcılar genellikle sürekli bir şeyler öğrenirler. Okulda olmak gibi ve neredeyse hiç bitmiyor. Belki on yıldan fazla bir süre aynı kod tabanında kaldıysanız öğrenecek pek bir şey kalmaz, ancak çoğu kodlama pozisyonu için çok büyük bir bilinmeyen vardır.

Fabrika modelinin ince ayarlarından biri, analizin fabrikanın dışında değil, içinde olmasıdır. Gereksinimler ön kapıdan gelir, ancak analistler sorunları araştırmak ve çözmek için fabrikadan dışarı çıkarlar. İş Analistleri gibi özel roller olabilirler, ancak genellikle mimarlar ve geliştirme liderleri gibi tasarımla yoğun bir şekilde ilgilenen tüm insanları içerirler. Sorunu anlamazsanız, gerçekten iyi bir çözüm oluşturamazsınız.

Modelle ilgili diğer önemli sorun ölçeklendirmedir. Çok fazla BT ihtiyacı olan büyük şirketler, birçok küçük bağımsız fabrika gibi davranma eğilimindedir. Bu, her birinin aynı temel işi tekrar tekrar yaptıkları anlamına gelir. Oldukça verimsiz olmasının yanı sıra, ciddi kalite sorunlarına da yol açar. Kuruluş, birkaç fabrikası olsa bile, yazılım üretme konusunda asla yetkin olmaz. Ancak tüm bu bilgileri yanlarında alarak dağılma eğilimindedirler.

Ayrıca, iş ihtiyaçları için dikey fabrikaları destekleyen farklı seviyelerde bazı güvenilir yatay fabrikalara sahip olmak daha iyi olacaktır. Yani, diğer geliştiriciler tarafından kullanılması zorunlu olan arka uç teknik şeyler yazan geliştirici grupları elde edersiniz. Açıkçası, alt düzey geliştiriciler için işin kalitesinin aşırı derecede yüksek olması gerektiğinden, zorlama büyük bir sorundur veya bu çabanın yararını ortadan kaldırır.

Fabrika modelinin iyi yanlarından biri, gelişimin sınırlarını açıkça tanımlamasıdır. Yani fabrika güncellemeler, sürümler ve benzeri şeyler üretir, ancak bu şeyleri ‘işletme’ eyleminden izole edilmiştir. Bu, bir bakıma, iyi yönetilen bir geliştirme mağazasının oldukça sessiz olduğunu ve işin kendisi çılgın ve stres dolu olsa bile işine odaklandığını ima eder. Açıkçası, bu kalite için çok daha iyi olurdu. Sürekli kesintiye uğrarsanız çok iyi kod yazamazsınız. Mükemmel koda ihtiyacınız yok, ancak kötü kod çalıştırmanın yan etkileri çok pahalı olabilir.

Ve geliştirme ve operasyonlar arasındaki bu ayrım çok önemlidir. Bunlar farklı zihniyetlerdir, bu nedenle geliştiricileri yoğun bir şekilde operasyon sorunlarına zorlamak onları yakma eğilimindedir. Doğru çalışması için mühendislik işlerine odaklanmalılar ve her şeyin beklendiği gibi çalıştığından emin olmak için çok fazla geri bildirim almaları gerekirken, devam eden operasyonel konularda önde ve merkezde olmaları gerekmez. Bunun yerine işlerini tamamlamalı, sonra onu üretime sokacak, izleyecek ve beklenmedik davranışlarla ilgilenecek başkalarına göndermelidirler.

Yani fabrika modeli beni zaman zaman rahatsız etse de, daha fazla insanın anlamasını ve dikkat etmesini istediğim yönleri var. Her şeyin umutsuzca bulanıklaştığı, insanların stresli ve kafalarının karıştığı ve işlerin çok kötü gittiği bu geliştirme dükkanlarını sık sık görürsünüz. İşi çok pahalıya mal olmayacak ve yapılması çılgınca bir zaman alacak şekilde yapılandırmanın daha iyi yollarını bulmalıyız. Yazılım geliştirmede daha kötüye gidiyor gibiydik, daha iyi değil.

Bir cevap yazın

Ready to Grow Your Business?

We Serve our Clients’ Best Interests with the Best Marketing Solutions. Find out More

How Can We Help You?

Need to bounce off ideas for an upcoming project or digital campaign? Looking to transform your business with the implementation of full potential digital marketing?

For any career inquiries, please visit our careers page here.
[contact-form-7 404 "Bulunamadı"]