Süreç mi Kodlama mı? Bir DevOps Bakışı

Giriş

Yazılım mühendisliğinde uzun süredir tartışılan bir soru vardır: Hangisi daha önemlidir, süreç mi kodlama mı?
Bazıları kodlamayı gerçek üretim faaliyeti olarak görürken süreci gereksiz bir yük olarak nitelendirir. Diğerleri ise süreç yönetimi olmadan iyi kodun bile üretim ortamında sorun çıkaracağını savunur.

DevOps perspektifinden bakıldığında bu soru daha da ilginç hale gelir. DevOps; iş birliği, akış verimliliği, otomasyon ve sürekli iyileştirme üzerine kurulu bir kültürdür. Bu nedenle süreç ve kodlama birbiriyle rekabet eden değil, birbirini tamamlayan iki temel unsurdur.

Bu makale, süreç ve kodlamanın modern yazılım teslimindeki (software delivery) rollerini, DevOps kültürü içerisindeki ilişkilerini ve neden her ikisinin de dengeli bir şekilde ele alınması gerektiğini incelemektedir.


Yazılım Geliştirmede Süreç Nedir?

Süreç; yazılımın planlanması, geliştirilmesi, test edilmesi, dağıtılması ve işletilmesi aşamalarını yöneten; tekrarlanabilir, tanımlı uygulamalar bütünüdür. Süreç, şu alanları kapsar:

  • Agile seremonileri ve iş akışları
  • CI/CD süreçleri
  • Kod incelemeleri ve kalite kontrolleri
  • Olay (incident) yönetimi
  • Sürüm ve dağıtım yönetimi (Release management)
  • Değişiklik yönetimi
  • Güvenlik ve uyumluluk uygulamaları (Governance and compliance)
  • SLO (Service Level Objective), SLI (Service Level Indicator) ve SLA (Service Level Agreement) tanımlamaları
  • Operasyonel prosess ve runbook’lar

Sürecin Öncelikleri

  • Öngörülebilirlik
  • Standartlaşma
  • Kalite tutarlılığı
  • Güvenlik
  • Risk azaltma
  • Ekip içi iletişim ve iş birliği

Süreç Hangi Temele Dayanır?

  • DevOps ve Agile prensipleri
  • Lean akış yönetimi
  • Sistem düşüncesi
  • Otomasyon kültürü

Süreç, yazılımın güvenilir ve tekrarlanabilir bir şekilde teslim edilmesini hedefler.


Yazılım Geliştirmede Kodlama Nedir?

Kodlama; yazılımın, altyapının ve otomasyonun doğrudan üretildiği teknik faaliyetlerdir. Bunlara şunlar dahildir:

  • Uygulama geliştirme
  • Infrastructure-as-Code (IaC)
  • CI/CD otomasyon kodları
  • Bulut yapılandırmaları
  • Operasyonel araçlar
  • Gözlemlenebilirlik ve izleme kodları

Kodlamanın Öncelikleri

  • İşlevsellik
  • Performans
  • Verimlilik
  • Sürdürülebilirlik
  • Temiz ve anlaşılır mimari
  • Otomasyon ihtiyacına uygun çözüm üretme

Kodlama Hangi Temele Dayanır?

  • Mühendislik bilgisi
  • Deneyim
  • Problem çözme becerisi
  • Dağıtık sistemler ve bulut mimarileri bilgisi
  • En iyi yazılım geliştirme uygulamaları

Kodlama, sürecin yönettiği ve yönlendirdiği teknik kapasiteyi üretir.


DevOps Kültüründe Kodlama ve Süreç İlişkisi

DevOps bakış açısında süreç ve kodlama karşıt değil, birbirini tamamlayan unsurlardır.

  • Süreç, kodun güvenli ve düzenli şekilde üretime akmasını sağlar.
  • Kodlama, sürecin otomasyonla güçlenmesine olanak tanır.
  • Süreç kaosu azaltırken; kodlama manuel işleri azaltır.
  • Her ikisi birlikte sürdürülebilir bir teslimat modeli oluştururlar.

DevOps kültürü; geri bildirim döngüleri, otomasyon ve sahiplenme ilkelerini ön plana çıkarır. Bu da şu anlama gelir:

  • Kötü bir süreci otomasyonla düzeltemezsiniz.
  • Manuel süreçler ölçeklenemez.
  • Yönetişim ve kalite süreçleri olmadan kod güvenli değildir.
  • Kodlama olmadan süreçler bürokrasiye dönüşür.

Modern cloud-native ekosistem, her iki unsura da aynı anda ihtiyaç duyar.


DevOps Perspektifinden Süreç ve Kodlamayı Dengeleyen Beş Temel Nokta

1. Süreç Güvenilirliği Sağlarken Kodlama Yeteneği Oluşturur

Kodlama özellikleri ve otomasyonu üretir.
Süreç ise bunların güvenilir şekilde işletilmesini sağlar.

Örneğin:

  • IaC kodu bir VPC yaratırken değişiklik yönetimi süreci bu kodun production ortamının  sıhhatini korur.
  • Yazılım geliştirici bir mikroservis yazar fakat CI/CD pipeline bunun nasıl deploy edileceğini yönetir.

Güvenilirlik, çoğu zaman koddan çok sürece bağlıdır.


2. DevOps Temelde Bir Süreç Felsefesidir

DevOps’un ana ilkeleri şunlardır:

  • Kısa geri bildirim döngüleri
  • Akış verimliliği
  • Sürekli iyileştirme
  • Ekipler arası iş birliği
  • Olay yönetimi olgunluğu
  • Standartlaştırılmış teslimat

Kodlama bu ilkeleri destekler; ancak DevOps felsefesinin kendisi süreç odaklıdır.


3. Süreç Olmadan Kodlama Kaosa Yol Açar

Aşağıdaki süreçler eksik olduğunda, iyi yazılmış bir kod bile sorun çıkarır:

  • Kod incelemesi
  • Sürüm kontrolü disiplinleri
  • Test süreçleri
  • Dağıtım stratejileri
  • Dallanma (Branching) politikaları
  • Olay yönetimi
  • Güvenlik kontrolleri

Gerçek hayatta birçok kesinti veya hata, kötü koddan değil, kötü süreçten kaynaklanır.


4. Kodlama Olmadan Süreç Bürokrasiye Dönüşür

Tek başına süreç yeterli değildir. Eğer kodlama kültürü zayıfsa:

  • Pipelinelar kırılgan olur
  • Altyapı manuel yönetilir
  • Dağıtımlar yavaşlar
  • Mühendisler üretmek yerine toplantılara boğulur
  • Manuel işler insan hatasını artırır

DevOps, otomasyon gerektirir. Otomasyon ise kodlama ile sağlanır.


5. Bulut Sistemleri Sürece Olan İhtiyacı Artırır

Bulut ortamları; ölçeklenebilirlik, ağ topolojileri, güvenlik katmanları, gözlemlenebilirlik araçları, dağıtım zincirleri ve çok daha fazlasını içerir. Bu karmaşıklık, süreci zorunlu kılar.

Kodlama olmadan yönetilemeyecek kadar geniş, süreç olmadan güvenilemeyecek kadar dinamiktir.


Sonuç

“Süreç mi daha önemlidir, kodlama mı?” sorusun özellikle DevOps bağlamında basit bir cevabı yoktur.
DevOps bize daha dengeli bir gerçeği öğretir:

  • Kodlama, otomasyonu ve uygulamanın üzerinde çalıştığı sistemi üretir.
  • Süreç bu sistemin güvenli, tutarlı ve tekrarlanabilir şekilde işlemesini sağlar.

Modern bulut ve DevOps mühendisliğinde başarı, bu iki unsurun entegrasyonuyla doğar.

DevOps, sürecin yönlendirdiği ve kodun otomatikleştirdiği bir teslimat felsefesidir.
Bu denge, şirketlerin daha hızlı, daha güvenli ve daha kaliteli yazılım sunabilmesini mümkün kılar.

LEAVE A RESPONSE

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir