10 Denenmiş ve Test Edilmiş Çevik Geliştirme İpuçları
Yayınlanan: 2020-05-04Çoğu kişi, programlama ve yazılım geliştirmeyi, bilgisayar meraklılarının milyonlarca satırlık kodla uğraştıkları, odalarında tek başına bir uğraş olarak düşünür, ancak bu gerçeklerden çok uzaktır. Gerçek yazılım geliştirme, farklı uzmanlıklara sahip geliştirici ekiplerinin birlikte çalışarak işlevsel, kullanımı kolay ve doğru özelliklerle dolu bir yazılım geliştirmesini gerektiren önemli bir grup çalışmasıdır.
Geliştirme döngüsü boyunca bir geliştirme ekibinin aynı sayfada olması, süreci en iyi şekilde kolaylaştırabilecek bir modeli takip etmek anlamına gelir. Yıllar içinde Waterfall, Spiral, V-model ve benzeri isimlerle yazılımın nasıl geliştirildiğini, konseptten bitmiş bir ürüne sahip olmaya ve ardından bunu sürdürmeye kadar gösteren çok sayıda isim oldu.
Resim Kaynağı: Adam Weisbart'ın Çevik Manifesto Posteri.
Pek çok büyük geliştiricinin şu anda atfettiği süreç, Çevik olarak bilinir ve temel ilkesi uyarlanabilirlik ve sürekli evrim ile adlandırılır. Çevik Manifesto adı verilen ve son derece deneyimli geliştiricilerden oluşan küçük bir grup tarafından yazılan şeye dayanmaktadır.
İşbirliğini geliştirmenin temel direği olarak gördüler ve hem gereksinimler hem de çözümler ondan gelişebilir. Çevik Geliştirmede ustalaşmak uzun zaman alır, ancak işte size yardımcı olabilecek on ipucu.
Geliştiricileriniz ve Test Kullanıcılarınız için Harika Donanım
Bir dizüstü bilgisayar kullanarak kodlama yapmak mümkün olsa da, yazılımınızı yeterli donanımdan daha fazlası ile geliştirmek daha iyidir. Performans sorunlarından bağımsız olarak ortaya çıkan hataları ve aksaklıkları görmek isteyeceğinizden, test uzmanlarının işlerini yapacak kaliteli makinelere sahip olmaları da aynı derecede önemlidir.
Ancak programcıların gerçekten istediği şey, birden fazla monitörün kodlarını yazabilecekleri kadar ekran alanına sahip olmasıdır. İyi klavyeler aynı zamanda büyük bir destektir, çünkü kod yazmak onların ekmeği ve yağıdır ve mekanik klavyeler hem dayanıklı hem de yazmak için harikadır (en azından dokunsal anahtarlara sahip olanlar).
Sonuçlara Odaklanmak
Önemli olan kimin fikrinin doğru olduğu değil, doğru fikri bulmaktır. Sonuç olarak, Agile'ın aşağıdan yukarıya geldiği ilk günlerinin aksine, yön üst yönetimden gelir. Bunun en iyi süreç akışı olduğu tespit edildi, çünkü daha üstteki insanlar projeyi denetlemeye ve yönetmeye odaklanırken, geliştiriciler üst yönetim tarafından belirlenen parametreleri ve sınırları takip ederken işlerine odaklanabilirler.
Bu yukarıdan aşağıya yönetim modeli nedeniyle, geliştirme ekibinin somut ve ölçülebilir sonuçlar vermesi beklenir. Çalışmalarını sadece kod olarak değil, aslında amaçlandığı gibi çalışan bir şeye sahip olabilmeleri gerekir. Bu daha sonra Çevik Geliştirmede büyük bir rol oynayan bir süreç olan Test Odaklı Geliştirme (TDD) aracılığıyla devreye girer.
Önce Sürekli Teslimatı Uygulayın
Temel olarak, gelmeye devam et. Bu, geliştirmenin sabit bir hızda gerçekleştirilmesini ve geliştiricilerin erken ve sıklıkla geri bildirim almasını sağlar. Çevik Geliştirme, ekibin gerektiğinde ani değişikliklere ve beklenmedik koşullara uyum sağlamasına izin veren sürekli iletişim ve geri bildirimdir. Burada "yapılar" devreye giriyor.
Bir yapı, temel olarak geliştirilmekte olan yazılımın kullanılabilir bir sürümüdür. Sürekli Teslimat (CD) kavramı aracılığıyla, her biri önceki derlemeye ilişkin geri bildirimlerden alınan iyileştirmeler ve düzeltmeler yapıldıktan sonra yayınlanan ardışık derlemelerin sık sık konuşlandırılması gerekir.
Üst Yönetim için Sponsorluk Kazanın
Çevik Geliştirme, yukarıdan aşağıya bir yaklaşım benimsese de, bir şeyi uygulamadan veya değiştirmeden önce üst yönetimin onayını beklemek oldukça zaman alıcı olabilir.
Yanlış yapıldığında, bu sadece izin verilmesini beklemek için çok fazla zaman harcanmasına neden olabilir. İyi bir çözüm, bu endişeyi geliştiriciden yetkiliye daha hızlı aktarabilecek bir sözcüye sahip olmak, tercihen fikir sunmakta iyi olan ve ne istendiğini anlayabilen bir kişidir.
Daha Kısa Geliştirme ve Test Döngülerine Geçiş
Geliştirme cehennemi, büyük olanlar da dahil olmak üzere birçok yazılımı kaplar. Ayrıca, uzun geliştirme döngülerinin, kullanıcılar tarafından nihai olarak reddedilen özelliklerle sonuçlandığı zamanlar vardır; bu, tüm döngüyü, şirketin hemen kurtaramayacağı büyük bir zaman ve para kaybı haline getirir. Bu tehditleri azaltmanın iyi bir yolu, geliştirme ve test döngülerini kısaltmaktır.
Çevik Geliştirme, geri bildirim akışı da dahil olmak üzere, her şeyi olabildiğince hızlı bir şekilde yürütmekle ilgili olduğundan, “minimum uygulanabilir ürün” bulmak için daha kısa geliştirme döngülerine sahip olmak önemlidir. Bu, kullanıcılara dişlerini gıcırdatacakları ve buna göre bir sonraki derlemede ele alınabilecek geri bildirimde bulunabilecekleri bir şey verir.
İlk Günden Otomasyona Ulaşmak
AD1 olarak da bilinen bu, her şeyi mümkün olan en kısa sürede kurarsanız, işlerin kesinlikle daha hızlı ilerlemesini sağlayabilecek yüce bir hedeftir. Gerçekçi olarak, eğer iyiyseniz, ikinci veya üçüncü yıla kadar her şeyi otomatikleştirebilirsiniz, ancak en azından mümkün olduğunca birinci günde bitirmeye devam etmelisiniz.
Bu bir zaman tasarrufu ve hatta yeterince düşünürseniz hayat kurtarıcıdır. Basit süreçlerin otomatik hale getirilmesi, geliştiricilerin ve diğer üyelerin gereksiz yoğun işlerle uğraşmak zorunda kalmalarına gerçekten yardımcı olabilir.
Etkili Takım Oranı
Söylediği gibi, "Çok fazla aşçı suyu bozar." Bir takımda çok az üyeye sahip olmak işi zorlaştırabilirken, çok fazla üyeye sahip olmak da aynı derecede kötü olabilir. Aynı zamanda, onlara ödeme yapmanız gerektiğinden, bir projede çok fazla paraya sahip olmak mali açıdan büyük bir yüktür. Bu nedenle, verilen zaman çerçevesi ve diğer birçok faktörün yanı sıra projenin ve ekibin ihtiyaçlarının dikkate alınması çok önemlidir.
Açık Problemleri Planla
Ekip her sorunu tek tek çözmeye çalışabilir, ancak her zaman içinden kayıp giden ve/veya açık sorunlar haline gelen bazı sorunlar olacaktır. Bu, bir sonraki geliştirme döngüsünde bu açık sorunların üzerinde çalışılmasıyla gerçekleştirilir.
Geri Bildirim İsteyin
Bu yeterince vurgulanamaz – geri bildirim Çevik Gelişimin can damarıdır. Yazılımın gelişmesine yardımcı olabilecek verilerdir ve hem geliştiriciler hem de üst yönetim, hem şimdiki hem de uzun vadede en azından en acil olanlara kulak vermelidir.
Sürecinizi Değerlendirmek
Sadece üzerinde çalışılan yazılımı değil, aynı zamanda geliştirme sürecinizi de değerlendirmeniz gerektiğinden, geliştirmenin evrimi burada devreye girer. İnce ayar yapabileceğiniz pek çok şey var, ancak mevcut proje ve ayrıca gelecekteki projelerle belirli bir zaman diliminde en iyi sonuçları verebilecek olanların hangileri olduğunu belirlemeniz gerekecek.