İkisi arasındaki farkı daha iyi anlamak için, Agile öncesi döneme bir göz atalım.
Her ikisi de yazılım geliştirmede kullanılan en yaygın terminolojiler olsa da, hepsi aynı değildir, ancak ikisi de düşman değildir..
Başlangıçta yazılım geliştirmenin nispeten yeni bir terim olduğu ve yazılım geliştirme alanını tanımlamak için tanımlanmış bir yaklaşım yoktu. Bu nedenle, “Şelale” yaklaşımı, yeni bir plan güdümlü metodoloji ve ardından yazılım geliştirmeye sıralı bir tasarım süreci getiren öncülük etti..
Bununla birlikte, teknoloji ile müşterilerin yeni zorluklar sunan ihtiyaçlarını da değiştirdi ve şelale yaklaşımı tüm ağır süreçleri almak için yeterli değildi.
Ekipler ve son kullanıcılar arasında işbirliğini oluşturan ve geliştirme döngüsü boyunca projenin ilerlemesini denetlemelerine olanak tanıyan çok karmaşık “Çevik” yaklaşımın ortaya çıktığı yer burasıdır..
Öncelikle Agile yaklaşımının ana fikri olan artan yaklaşımla ince ayar yazılımını çok daha kolay hale getirdi. Proje, geliştiricilerin sorunsuz bir iş akışını garanti eden süreç boyunca sürekli geri bildirimlerle paralel olarak çalışmasını sağlayan küçük modüller halinde parçalanacak şekilde tasarlanmıştır..
Esnek metodoloji, geliştiricilerin geliştirme döngüsü boyunca müşterilerin ihtiyaçlarına cevap vermelerini sağlar. Ardından, geliştiriciler ve operasyon ekibi arasındaki boşluğu dolduran “DevOps” modeli geliyor.
Agile modelinde eksik son tarihler ve bütçe hedefleri gibi eksikliklerin üstesinden gelmek için DevOps, Agile yaklaşımının üstüne daha fazla esneklik getiriyor.
Agile, hızla değişen müşterilerin ihtiyaçlarına uyum sağlamak için daha yinelemeli bir yaklaşım isteyen geliştiriciler için cankurtaran oldu, ancak Agile'ın da eksiklikleri var.
Agile modelinin ortak dezavantajları, tamamlandıktan sonra uyumsuz yazılım bileşenlerini, eksik süreleri ve eski işlevleri bozan yeni özellikleri içerir.
Ayrıca, geliştirme ve operasyon ekibi arasında koordinasyon eksikliği vardı. DevOps burada ortaya çıkıyor. Geliştiriciler ve operasyon ekipleri arasındaki boşluğu doldurur ve daha hızlı ve daha iyi sonuçlar için dağıtım sıklığını artırmak için işbirliği yapmalarına olanak tanır.
DevOps modeli, karmaşıklık eksiğinden sürekli ve daha hızlı yazılım dağıtımı sağlar.
- DevOps, yazılım ekibinin ötesinde çalışan Agile modelinin yavrularıdır. Her iki yöntem de daha hızlı üretim ve hızlı teslimat için birbirini tamamlar, ancak bunu çok farklı yaparlar. Agile, karmaşık görevleri modül adı verilen daha küçük alt görevlere bölerek çözmek için artımlı bir yaklaşım benimser. DevOps ise daha hızlı teslimat elde etmek için kültürel uygulamaları ve araçları birleştiren operasyonel bir felsefedir.
- Çevik model, artımlı teslimat için sürekli yinelemeyi vurgulayan Yalın düşünceye dayanır. Geliştirme ekibi ve son kullanıcılar arasındaki işbirliği. DevOps, geliştirme ve operasyon ekibi arasında ortak bir işbirliği, dolayısıyla adı. Sadece yazılım üzerinde çalışmak yerine, teslimat sürecini hızlandırmak için hizmetlere ve yazılıma vurgu yapar.
- Çevik, değişimi teşvik eden gelişime modern bir yaklaşımdır. Gelişimi bir bütün olarak düşünmek yerine, zaman içinde daha büyük değişikliklere yol açabilecek veya vermeyebilecek daha küçük değişiklikleri teşvik eder. Aksine, DevOps, bir organizasyonun nispeten daha hızlı bir şekilde hizmet ve uygulama sunma yeteneğini artıran kültürel uygulamaların bir kombinasyonudur. Geliştirme ve operasyon ekipleri, Agile ekibi yerine DevOps ekibinin bir parçası olarak birlikte çalışır.
- Agile küçük ve özlü inanır; ekip ne kadar küçük olursa, daha az karmaşıklıkla o kadar hızlı teslim edebilirler. Fikir küçük kalmak ve hızlı çalışmaktı. DevOps ise sayıya inanıyor, bu da daha büyük daha iyi anlamına geliyor. Birçok takım farklı teoriler üzerinde çalışmak için birlikte tek bir takım olarak çalışır.
- Çevik model, çeşitli toplantılar etrafında dönen bir metodolojidir ve gayri resmi toplantılar Agile'nin merkezinde yer alır. Agile, geliştirme ekiplerini daha üretken ve verimli hale getirmek için sürekli geri bildirimlere ve günlük ekip toplantılarına inanır. Ekibin ilerlemelerini denetlemesine ve daha az karmaşıklıkla sürekli bir iş akışı sağlamak için potansiyel zorluklara ve diğer sorunlara aşina olmasını sağlar. DevOps ise günlük toplantılar yapmak yerine tüm ilgili ekiplerle iletişim kurmak için modern bir dokümantasyon yaklaşımını takip ediyor.
- Otomasyon DevOps metodolojisi ile eşanlamlıdır, çünkü yazılım verimliliği söz konusu olduğunda verimliliği en üst düzeye çıkarmak ve kesintileri en aza indirmekti. Agile, yazılım geliştirmeye de modern bir yaklaşımdır, ancak otomasyonu asla beklemez. DevOps, uygun dağıtımı sağlamak için maksimum üretkenliğe ve güvenilirliğe inanır.
Çevik model yazılımın geliştirilmesine vurgu yaparken, DevOps yazılımın hem en güvenilir hem de en hızlı şekilde geliştirilmesine ve konuşlandırılmasına odaklanmıştır. Agile, yazılım projeleri sunmak için katma değerli olmayan faaliyetlerin ortadan kaldırılmasını teşvik eden Yalın Düşünce üzerine kuruludur. Bununla birlikte, Agile'ın da eksiklikleri vardır, bu da sonunda Agile yazılım geliştirmesinin çocuğu olan DevOps'u doğurdu. Teknolojideki gelişmeler ve sürekli değişen müşterilerin ihtiyaçları, yazılım teslim sürecini hızlandıracak daha uygun bir yaklaşıma duyulan ihtiyacı ortaya çıkarmıştır. Her ikisi de ortak bir vizyona sahip yazılım geliştirme metodolojileridir; yani ekipleri, birleşik becerilerinden yararlanacak şekilde birlikte çalışmaya ve karar almaya teşvik etmek.