Kategori arşivi: Agile

Kanıta Dayalı Yönetim Kılavuzu

İş değeri ölçülerek ve deneysel yönetim kullanılarak iş sonuçları sürekli nasıl iyileştirilir.

GENEL BAKIŞ

Çevik ürün teslim etme pratiklerini benimseyen organizasyonlar, aktiviteleri ve iş sonuçları yerine çıktıları iyileştirerek gerçek hedefleri olan teslim edilen değeri iyileştirmeyi kolayca gözden kaybedebilirler.

Çeviklik bir amaç için araçtır, kendisi bir amaç değildir; çevik pratikleri benimsenin amacı iş performansını iyileştirmektir. Organizasyonlar bu bakış açısını kaybettiklerinde yöneticiler mantıklı gibi görünen fakat istenmeyen sonuçlara neden olan sorular sorabilirler. Böyle sorulara örnekler…

Kanıta Dayalı Yönetim Kılavuzu’nu indirebileceğiniz bağlantı: Kanıta-Dayalı-Yönetim-Kılavuzu.pdf (14 indirme)

Kanıta Dayalı Yönetim Kılavuzu yazısına devam et

Test Odaklı Geliştirme, Davranış Odaklı Geliştirme, Kabul Testi Odaklı Geliştirme Hakkında Kısa Rehber

Test Odaklı Geliştirme şu anda sektördeki pek çok moda sözcükten yalnızca biri. Bu yüzden insanların bu konuda kafalarının karışık olması son derece normal.

  • Test Odaklı Geliştirme (TDD → Test Driven Development)
  • Davranış Odaklı Geliştirme (BDD → Behavior Driven Development)
  • Kabul Testi Odaklı Geliştirme (ATTD → Acceptance Test Driven Development) 
  • DevOps
  • DevSecOps
  • Sürekli Test
  • Model Tabanlı Test

Liste böyle uzayıp gidiyor.

Ancak hata yapmayın. Tüm bu uygulamalar ve metodolojiler aslında tek bir soruya cevap arar. “Daha iyi” bir yazılımı nasıl geliştirebiliriz?

Bu yazımda, Test Odaklı Geliştirme, Davranış Odaklı Geliştirme ve Kabul Testi Odaklı Geliştirme ile ilgili kafanızdaki tüm soru işaretlerini gidermeye çalışacağım. Nedir? Nasıl çalışır? Ayrıca geliştirme/test süreci üzerindeki etkileri nelerdir?

Test Odaklı Geliştirme (TOG): “Kod Doğru Mu?”

Test Odaklı Geliştirme, iç-dış perspektifine odaklanır; yani testleri geliştiricinin bakış açısından oluştururuz. “Bu kod doğru mu?” sorusu Test Odaklı Geliştirme’nin ardındaki ana sorudur.
Metodoloji özellikle “birim testlerine” odaklanır. Geliştirici bir gereksinimi alır ve onu belirli bir test case’ine dönüştürür. Daha sonra da geliştirici yalnızca bu belirli testleri geçebilecek kodu yazar. Bu pratikle gereksinimleri karşılamayan lüzumsuz güncellemeleri önlemek amaçlanmaktadır. Test Odaklı Geliştirme, geliştiricilerin kodu yazdıktan sonra Birim Testleri yazdıkları geleneksel programlamadan farklı olarak, geliştiricileri kodu yazmadan önce ürün gereksinimlerine odaklanmaları için zorlar.

TOG, Kent Beck’in, “Test Driven Development: By Example” kitabında bahsettiği gibi 6 adımdan oluşan basit bir işlemdir. Şimdi gelin, Spotify kataloğundan belirli bir albümü yayınlama örneğini hep birlikte inceleyelim.

Test Odaklı Geliştirme, Davranış Odaklı Geliştirme, Kabul Testi Odaklı Geliştirme Hakkında Kısa Rehber yazısına devam et

Birim Test, Test Odaklı Geliştirme, Davranış Odaklı Geliştirme Arasındaki Farklar Neler?

JavaScript testlerinizi otomatize etmeye başladığınızda birçok soruyla karşılaşırsınız. Yüksek ihtimalle de Birim Test, Test Odaklı Geliştirme(Test-Driven Development) ve Davranış Odaklı Geliştirme(Behavior-Driven Development) hakkında konuşan insanlar göreceksiniz. Peki ya bunlardan hangisi en iyi yaklaşım? Hepsini de kullanabilir miyiz?

Birçok JavaScript geliştiricisiyle bu konuyu konuştum ve aslında bu sorunun cevabı hakkında biraz kafa karışıklığı olduğunu gözlemledim. Şimdi gelin birlikte Birim Test, TOG ve DOG nedir, ne değildir hep beraber bakalım ve bu konular hakkındaki bazı yanlış anlaşılmaları düzeltelim. 🙂

Birim Test (Unit Testing)

Birim Test yalnızca tek bir birim kod parçasına odaklanır; genellikle tek bir fonksiyona ya da modüle, bu bazen bir satır bazen de on bin satır kod olabilir. Testi tek bir fonksiyona özgü yapmak, onu daha basit, kolay yazılır ve daha hızlı koşulur kılar. Bu, birçok Birim Test’e sahip olabileceğiniz anlamına geliyor ki bu da daha fazla hata yakalamak demek. Bu testler kodunuzda bazı değişiklikler yapmak istediğinizde gerçekten çok işe yarıyorlar. Örneğin kodunuzun çalıştığını doğrulamak için elinizde bir dizi Birim Test olduğunu düşünelim; fakat kodda bir yeri değiştirmeniz gerekiyor, Birim Testler sayesinde kodunuzu güvenle değiştirebilirsiniz ve kodunuzun diğer kısımlarının doğru çalıştığından emin olabilirsiniz.

Birim Test, Test Odaklı Geliştirme, Davranış Odaklı Geliştirme Arasındaki Farklar Neler? yazısına devam et

Davranış Odaklı Geliştirme Nedir?

Davranış Odaklı Geliştirme (DOG), Test Odaklı Geliştirme(TOG)’den evirilen bir yazılım geliştirme yaklaşımıdır. Ortak bir dilde yazılmış olmasıyla farklılık gösterir ki bu da teknik ve teknik olmayan ekipler ile paydaşlar arasındaki iletişimi geliştirir. Her iki geliştirme yaklaşımında da testler koddan önce yazılır; fakat Davranış Odaklı Geliştirme’de testler daha kullanıcı odaklı ve sistemin davranışına dayanmaktadır.

DOG ’yi Neden Seçmeliyiz?

TOG, iş sahibi, kullanılan Birim Test çerçevesine aşina olduğu ve teknik yetenekleri güçlü olduğu(her zaman böyle değildir) müddetçe tatmin edici bir şekilde çalışır. Bu şartlar altında DOG avantaja sahiptir çünkü testler paydaşların da bildiği, örneğin İngilizce gibi ortak bir dilde yazılır. Daha açık olması, minimum miktarda mesleki argo kullanarak etkili iletişime erişim sağlaması, DOG kullanmanın muhtemelen en büyük avantajıdır. Teknik ve teknik olmayan ekipler arasında yüksek verimlilikle çalışılabilmesi için iş birliğini mümkün kılar.

Davranış Odaklı Geliştirme Nedir? yazısına devam et

Çevik Proje Lideri Nedir?

Bu makaleyi iki gözlemim nedeniyle yazdım:

1. Birçok kurum, kullanmaması gereken durumlarda bir “proje modeli” kullanır.

2. Çevik topluluğunda projeler ve proje liderliği tanımı hakkında birçok kafa karışıklığı ve tartışma vardır.


“Cevabım” olduğunu iddia etmiyorum, ancak bunu çok düşündüm ve müşterilerimde de deneyimledim (onlar duymasın… sshhhh). Bu nedenle işte burada çevik bağlamda proje liderliğinden anladıklarımı paylaşıyorum.Oh, ve bu arada, bu makale bir Bait & Switch*. “Çevik Lider Nedir?” adlı makaleyi okumanızı sağlamaya çalışıyorum. Bunu atlayıp hemen oraya giderek zaman kazanabilirsiniz. 🙂

Çevik Proje Lideri Nedir? yazısına devam et