5/28/2016

Full+Fullstack Yazılım Geliştirme

Şahsen her zaman bir geliştiricinin gerektiğinde fullstack çalışmasından yana oldum. Daha da doğrusu sadece frontend geliştirmek için bir kişinin uzmanlaşması kafama çok yatmazdı. Nedeni de basit çok basit aslında; daha efektif olduğunu düşünüyorum. Bir kişi backend ile uğraşırken, bir kişi frontend ile uğraşırsa; herhangi bir değişiklik için iki kişinin bu konu üzerinde mutabakat yapması ve zaman ayırması gerecek. Bir de iki bileşenin planlaması ve sürümü ayrı ayrı yürütülüyorsa, bu ciddi sıkıntı yaratabilir.

Son yıllarda geliştirdiğim web uygulamalarında, görsel tasarım yapan ve HTML üreten bir tasarımcı rolü ile çalışmalarımız oldu. Fakat HTML'in detaylandırması ve bunun dinamik bir uygulama olarak kodlanması fullstack çalışan geliştiriciler tarafından yapıldı her zaman. Bu şekilde iyi bir çalışma ortamı tesis ettiğimizi düşünmüşümdür hep .( Daha da eski günleri yad edersem, bir web tasarımcımızın olmadığı zamanlarda mühendis kafasıyla ne arayüzler hazırlardık, hatırladıkça efkarlanırım :P )

Gene de frontend geliştirici olduğunu söyleyen insanlara saygım sonsuz, yaptıkları işin de çok önemli olduğunu düşünüyorum. Orada da ciddi büyüyen bir ekosistem var; ayrıca backend ne kadar sağlam olursa olsun, kullanıcılar bir arayüz üzerinden uygulamamız ile etkileşiyor ve hikayenin çok önemli bir kısmı orada yazılıyor.




5/19/2016

Kervan Yolda Düzülür Mü?

Daha önceki yazımda, aktif bir projeye, yeni gereksinimlerin dahil edilirken yarattığı etkiler hakkında bir yazı yazmıştım.

"Kervan Yolda Düzülür" (KYD) ise karşımıza başka bir yaklaşım olarak çıkmakta :) Bizim insanlarımıza özgü bir davranış mıdır bilemedim; ama  düşünüp taşınıp, sonrasında iş yapmak bize zor geliyor nedense. Yazılım geliştirme döngüsünde, elbette herşeyi önceden kestirmek imkansız; fakat bunun tersini de düşünmek fazla saflık oluyor. Bundan dolayıdır ki; bir ürün veya yazılımın geliştirmeye başlamadan önce; sonuçta ne değer üretilmesi bekleniyor, bunun bir resminin çıkartılması ve en azından kullanım durumlarının bir başlığının çıkartılması önem arz ediyor. Kullanım durumlarının birçoğunun altı, proje devam ederken yinelemeler boyunca doldurulabilir.

Şimdi sizi duyar gibi oluyorum; bir önceki yazımda kastettiğim gibi kritik bir detay çıkarsa ne olacak? Bu riski indirgemenin etmenin yollarından biri, kullanım durumları başlık olarak çıkartıldıktan sonra, bu kullanım durumlarının değerini belirlemek ve değeri yüksek olanları önceliklendirmek olabilir. Öncelikli olarak hayata geçirilen değeri yüksek kullanım durumları ile değerimizin büyük bir kısmı daha az riskli bir yola sokulabilir ve doğal olarak değer teklifimizi daha erken hayata geçirmeye başlayabiliriz. Bunların  dışında, değişen gereksinimler veya  öngörülemeyen unsurlar her zaman olacaktır hayatımızda ve bizim işimizin doğasında vardır. Bu durumları da yönetmemiz gerekmektedir. Aslolan projeyi bitirmek kadar, istenilen değeri de yaratmaktır.

5/13/2016

Hergün Yeni Bir Gereksinime Uyanmak

Elinize vicdanınıza koyun da söyleyin:  10 aylık bir projeniz var, hatta 5 versiyon da canlıya çıkmışsınız. Son ay, ürün ekibi sizden geçmiş yaptığınız bir özelliği değiştirmenizi isterken, bir de dramatik değişiklikler gerektiren yepisyeni kritik bir özelliği canlıya geçirmenizi istedi. Sizler,  bu durumu nasıl karşılardınız?

a) İntihar ederim
b) Kan çıkar
c) Seve seve kabul ederim
d) Bu özelliği ötelemeye çalışırım

İlk iki seçeneği seçiyorsanız, zaten yanlış işi yapıyorsunuz diyebilirim hemen :) Proje kültürümüz, projenin zamanında ve bütçesinde bitmesine o kadar da odaklıdır ki, böyle bir durum büyük bir günah olarak görülecek ve herkes burada takla atma yoluna (d şıkkına veya varyasyonlarına) gidecektir. Bir alternatif, başka bir özellikten tasarruf edilerek durumun idare edilmesi olabilir. Fakat sizce de burada bir yanlışlık yok mu?

Bir yazılım ekibi olarak, günün sonunda yükümlü olduğumuz mesele bir projeyi tamamlamak değil; yaptığımız işlerle bir değer yaratmak. Bu noktada, yaşayan ve yaşayacak bir ürünle ilgili planlar yapmak, bir yazılımı proje olarak planlamaktan daha faydacı olacaktır diye düşünüyorum. Burada proje yönetimi disiplinini kestirip atmaktan bahsetmiyorum elbette ama bakış açımızı da değiştirmemiz önemli bence.

Sakın dediklerimden "Kervan Yolda Düzülür" anlamını da çıkarmayın. Bunu bir sonraki yazımda ele alacağım :)