11 Tem 2023
2 dk okuma süresi
Yazılım geliştirme ekipleri, karmaşık bir CI/CD (Continuous Integration/Continuous Delivery) ortamına ayak uydurmak için Scrum veya DevOps arasında bir seçim yapabilir veya bunları birlikte kullanabilir. Her iki yaklaşımın da kendine özgü faydaları ve üstlendikleri farklı roller vardır. Bu yazımızda bu iki yaklaşım arasındaki temel farkları ele alacağız.
Yazılım geliştirme süreçlerinin birbirinden bağımsız ilerleyen çok parçalı bir yapıya bürünmesi, geliştirici ekiplerin CI/CD’yi başarılı bir şekilde yönetebilmesine yardımcı olacak yeni metodolojilere ihtiyaç duymasına neden oldu. Çevik yaklaşımlar bu konuda başarılı oldu ancak DevOps son birkaç yılda daha popüler hale geldi. Bununla birlikte genellikle çevik yaklaşımla ilişkilendirilen Scrum da ciddi bir destekçi kitlesi kazandı.
Adını Rugby sporundaki bir hamleden alan Scrum, ilk olarak 1986'da Hirotaka Takeuchi ve Ikujiro Nonaka tarafından yazılan bir makalede ortaya çıkmıştır. Çevik proje yönetim metotlarından bir tanesi olan Scrum, kompleks yazılım süreçlerinin yönetilmesi için kullanılır. Scrum yaklaşımında işler küçük parçalara ayrılır ve tekrara dayalı bir yöntem izlenir.Takım odaklı bir yaklaşım olan Scrum’da takım üyelerinin verimli çalışabilmesini sağlayan kişi de Scrum Master olarak adlandırılır.
Çevik yaklaşım dört temel değere odaklanır. Bunlar;
· Bireyler ve etkileşimler: Süreçlere ve araçlara odaklanılır.
· Çalışan yazılım: Kapsamlı bir dokümantasyon yerine tercih edilir.
· Müşteri ile işbirliği: Sözleşme görüşmeleri yerine tercih edilir.
· Değişime tepki verme: Kısıtlayıcı bir planı uygulamak yerine tercih edilir.
Scrum, çevik yaklaşımın bu temel değerleri çerçevesinde ilerlerken BT altyapısının diğer bileşenlerinin tamamen gözden çıkarılmamasını da sağlar. Scrum yaklaşımın arkasındaki fikir, bir sorunu ya da müşteri talebini ele alırken bunu bireylerin veya küçük ekiplerinin çözebileceği daha küçük görevlere ayırmaktır. Proje, sprint adı verilen ve 1-2 hafta içinde tamamlanması öngörülen küçük kısımlara ayrılır. Scrum içerisindeki tüm aktiviteler sprint içerisinde gerçekleşir.
Günlük scrum toplantılarında teknik sorunlardan ziyade ilerleme ve ihtiyaçlara odaklanılır. Müşteriler, herhangi bir gereksinim değişikliği için bu toplantılara doğrudan dahil olabilir.
Bahsettiğimiz konular DevOps uygulayıcılarına da tanıdık gelebilir. DevOps, büyük gereksinimleri yönetilebilir iş paketlerine ayırmada ve bunları yazılıma taşımada Scrum'dan biraz daha ileri gider. Bununla birlikte birçok DevOps geliştiricisi, yaklaşımlarına Scrum'daki kadar ayrıntılı bakmaz. Çoğu durumda, DevOps bir süreç akışı yardımcısıdır. Kodu, geliştirme süreci boyunca taşır. DevOps ayrıca müşteriye daha az ilgi gösterme eğilimindedir. Birçok DevOps uygulayıcısı müşteriden gereksinim bildirimleri talep eder ve ardından bunu gerçekleştirmek için DevOps'u kullanır.
DevOps, süreçlerdeki uyuşmazlıkları azaltarak kod geliştirme ve sağlamada genel verimliliği artırmak için otomasyon fırsatlarını tanımlar. Müşteri gereksiniminden çalışan koda kadar her şeyi yönetmek için uçtan uca bir ortam olarak çalışmaz.
Geliştirici ekipleri Scrum ile kod mekaniği yerine proje metodolojilerine odaklanarak sorunlara yaklaşmanın yeni bir yolunu öğrenmelidir. Scrum ve DevOps arasındaki fark, Scrum sorunların nasıl çözüleceğini tanımlarken, DevOps'un bu sorunları çözmek için araçlar sağlamasıdır. Bu nedenle DevOps ve Scrum bir araya gelebilir. Scrum, geliştirmeye odaklanır ve hızlı geliştirmeyi yönetmek için derin ve ayrıntılı bir yaklaşım sağlar. Kodu süreç içinde taşımaz.
Microsoft Azure Board gibi bazı DevOps araçları yerleşik Scrum yetenekleri barındırabilir. Ayrıca Atlassian, çevik yaklaşımları kapsayan Open DevOps ve Jira ürün serisi aracılığıyla yüksek düzeyde otomasyon sağlar.
Scrum ve DevOps birbirini dışlamaz. DevOps uygulayıcıları, Scrum yaklaşımının DevOps araçları ile nasıl birlikte çalışabileceğini araştırmalıdır. Bu, DevOps sürecinin ilk aşamalarında daha iyi geri bildirim döngüleri kurulmasını ve müşterilerle sürekli etkileşimde kalmayı da sağlar.
İlgili Postlar
Bulut maliyet yönetimi nedir?
31 Eki 2024
Dijital DönüşümYapay zeka şeffaflığı nedir?
28 Eki 2024
Dijital DönüşümStratejik inovasyon nedir?
25 Eki 2024
Dijital Dönüşüm