DevOps ve Agile

30 Mar 2016
by dsezen
Comments are closed

 

 

DevOps ve Agile birbirinin rakibi değildir ve farklı alanlara dokunduklarından dolayı birbirini tamamlayıcı niteliklere sahiplerdir. 

Agile yaklaşımlar müşteri ile geliştirme takımı arasındaki süreçlere odaklanırken, DevOps ise geliştirme takımı ve Operasyon takımları arasındaki süreçlere odaklanır.

Agile, bir User Story'nin geliştirmesinin tamamlanmasına kadar olan süreç ile ilgilenir, fakat geliştirme sonrasındaki süreç olan

  • Release/Deployment
  • Continuous Delivery
  • Infrastructure Automation
  • Monitoring/Measurement
  • UAT Automation

konularını açıkta bırakmaktadır. DevOps ise Developer ve Operasyon birimlerini birbirlerine yaklaştıran süreçleri teşvik ederek, bu açığı kapatmak ve uçtan uca çevikliğin sağlanmasını amaçlamaktadır.

Özellikle System Admin/Altyapı tarafından gelenler bilir ki, müşteri tamamlanan koddan ziyade vitrininizdeki kodu görür, dolayısıyla Agile 'in dokunduğu alana kıyasla daha hassas ve göz önünde bir alandır. DevOps işte bu ve Agile süreçlerin zayıf olduğu alanlara odaklanarak uçtan uca çevikliğin sağlanmasına yardımcı olur.

2 tarafın dokunduğu alanlar açısından ufak bir tablo hazırladım:

Agile   DevOps
Embrace change   Embrace testing & Delivery
Embed customer in team   Embed Ops in team
Soft skills + Engineering   Engineering

 

Bir diğer önemli husus ise DevOps üzerinde odaklanmış takımlardaki (Bunun bir rol/takım olması her ne kadar bir anti-pattern ise[1] de piyasada görüyoruz) Dev ve Ops tecrübelerinin dengeli olması gerekliliğidir. Sadece Developer background undan gelenlerde odak Continuous Delivery ve Containerization olurken, Sistem Admin tarafından gelenlerde scaling, fault tolerence, automated provisioning gibi alanlar olabilmektedir. İşte bu bakımdan DevOps rolü/takımının pratikte bu iki alandan birini boşta bırakma riski vardır. Fakat hem Dev, hem de Ops tarafında tecrübesi olan bir DevOps takımı, organizasyondaki mevcut takımlara, yürütme ve geliştirmeyi onlara bırakacak şekilde, bu kültürü aşılama rolü oynayabilir…

DevOps ve Agile ı, genel "Organizational Agility" altında düşünerek, alttaki gibi resmetmeye çalıştım:

Benim gördüğüm ve tecrübe ettiğim üzere tek kesişimleri Lean prensiplerdir. Hem Agile, hem de DevOps, günün sonunda 3 temel Lean günahını [2] yoketmeye çabalarlar.

Agile ve DevOps 'un ölçümlediği metrikler de bu doğrultuda farklılıklar göstermektedir:

Agile KPIs   DevOps KPIs
Innovation Rate   Deploy Frequency
Usage Index   Change Lead Time
Strategic Alignment Index   MTTR(Mean-time to recovery)
Velocity   MTBF(Mean-time between failuers)
Customer Satisfaction Index   Change Failure Rate

 

Deployment frequency boyutunda, günlük defalarca automated Live a çıkan takımlarda/ürünlerde, yani Continuous Deployment pratiğinde, Scrum gibi iteratif framework ler stres altında kalmaktadır.

İki konunun birbirinden farklı uzmanlıklar gerektirdiğini, bazı acquisition örneklerinden [3] de referans alabiliriz.

DevOps yolculuğunuzda sadece Dev değil, Ops üzerinde de uzmanlığın yer aldığından mutlaka emin olun

Bunu söylememin nedeni, özellikle Türkiye'de DevOps=Dev i çok fazla görüyor olmam.

DevOps yolculuğu Agile yolculuğunun stres altına bıraktığı organizasyon yapısına dokunmaz, yani Agile yolculuğunuz kadar riskli değildir, mevcut yapıya enjekte edilebilir.

DevOps'un, Development'ı outsource etmiş, ama Operasyonu içeride tutan şirketler için gün1 value sağlamaya başladığı alanlar bulunmaktadır.

[1] : http://martinfowler.com/bliki/DevOpsCulture.html

[2] : http://www.panview.nl/en/lean-production-toyota-3m-model/toyota-3m-model-muda-mura-muri

[3] : http://www.crn.com/news/cloud/300074831/vmware-acquires-professional-services-firm-to-boost-cloud-migration-devops-expertise.htm

 

 

Cloud, DevOps and Microservices Solution Provider © 2025