Diyarbakır Yazılım LogoDİYARBAKIR
>Ana Sayfa>Projeler>Atölye>Yazılar
>Ana Sayfa>Projeler>Atölye>Yazılar
durum: inşa ediliyor
Açık Kaynak Projelerde Ekip Planlaması ve Dağıtım Zaman Çizelgeleri
  1. Anasayfa
  2. Yazılar
  3. Açık Kaynak Projelerde Ekip Planlaması ve Dağıtım Zaman Çizelgeleri

Açık Kaynak Projelerde Ekip Planlaması ve Dağıtım Zaman Çizelgeleri

Diyarbakır Yazılım
Diyarbakır Yazılım
16.08.2026
#Yazılım#Teknoloji#Topluluk

Açık kaynak bir projede release tarihini belirlemek kolaydır, o tarihe sürdürülebilir biçimde ulaşmak ise çok daha fazla düşünmeyi gerektirir. Yaklaşık on yıldır yazılım ekipleri, topluluk katkıları, proje akışları ve sürüm planlarıyla çalışırken en sık gördüğüm hata, gönüllü katkıcıların klasik şirket çalışanları gibi planlanması oldu. Açık Kaynak Projelerde Ekip Planlaması ve Dağıtım Zaman Çizelgeleri bu nedenle yalnız takvim oluşturmakla ilgili değildir. Maintainer kapasitesi, reviewer kuyruğu, topluluk katkısı, bağımlılıklar, güvenlik işleri ve release kriterleri aynı planın parçalarıdır. Bu rehberde açık kaynak projelerde ekip planlaması nasıl yapılır, açık kaynak yazılım projelerinde görev ve sorumluluk dağılımı nasıl belirlenir, açık kaynak projelerde release planı ve sürüm takvimi nasıl hazırlanır ve açık kaynak geliştirmede roadmap milestone sprint ve dağıtım süreçleri nasıl birlikte yönetilir sorularını uygulamaya dönük biçimde ele alacağız.

Açık Kaynak Projelerde Ekip Planlaması Neden Farklıdır?

Açık kaynak proje ekipleri klasik şirket ekiplerinden farklı davranır çünkü katkının önemli bölümü gönüllü olabilir. Bir contributor bu hafta beş saat ayırırken gelecek ay hiç katkı sunamayabilir. Maintainer ise kod yazmanın yanında issue triage, review, topluluk iletişimi ve release sorumluluğu taşıyabilir. Bu nedenle plan, herkese sabit teslim tarihi dağıtmak yerine mevcut kapasite ve akış üzerinden kurulmalıdır. En başarılı açık kaynak planlarında tarih kadar esnek kapsam ve görünür öncelikler de önemlidir.

Açık Kaynak Ekip Yapısının Özellikleri

Açık kaynak ekipleri çoğu zaman çekirdek ekip, maintainer, contributor, reviewer ve topluluk üyelerinden oluşur. Roller tam zamanlı iş sözleşmesine dayanmak zorunda değildir. Yetki genellikle geçmiş katkı, güven ve sorumluluk alma kapasitesiyle gelişir. Bu yapı merkezi komut zincirinden çok ortak çalışma modeline yakındır. Planlama sistemi de bu gerçeği yansıtmalıdır.

Gönüllü Katkıcılarla Planlama

Gönüllü katkıcı için kesin deadline vermek çoğu durumda doğru değildir. Bunun yerine milestone, hedef dönem ve öncelik seviyesi belirtmek daha sağlıklı olur. Contributor müsait değilse iş başka katkıcıya açık kalabilmelidir. Böylece proje tek kişinin boş zamanına bağımlı hale gelmez. Plan gönüllülüğü zayıflatan baskı değil katkıyı kolaylaştıran yön gösterme aracı olmalıdır.

Kurumsal Çalışan ve Gönüllü Contributor Dengesi

Bazı projelerde şirket tarafından ücretlendirilen geliştiricilerle gönüllü contributor'lar birlikte çalışır. Tam zamanlı ekip kritik yol ve release engineering gibi öngörülebilir görevleri üstlenebilir. Gönüllü katkılar ise özellik, bug fix, dokümantasyon ve test çalışmalarını destekleyebilir. Bununla birlikte gönüllülerin yalnız küçük işlere sıkıştırılması topluluk gelişimini sınırlar. Güven arttıkça daha önemli bileşenlerde sorumluluk paylaşımı yapılmalıdır.

Merkezi Proje Yönetimi ile Topluluk Yönetimi Arasındaki Fark

Merkezi proje yönetiminde yöneticiler görevleri doğrudan atayabilir. Açık kaynak topluluklarında ise ilgi, uygunluk ve katkı isteği daha belirleyicidir. Maintainer öncelikleri açıklayabilir fakat gönüllü katkıcıya çalışan gibi emir veremez. Bu nedenle açık roadmap, iyi issue açıklaması ve net acceptance criteria büyük önem taşır. Katkıcı ne yapılacağını ve neden önemli olduğunu gördüğünde katkı ihtimali artar.

Açık Kaynakta Planlama Neden Emir–Görev Modeliyle Çalışmaz?

Açık kaynakta insanların önemli bölümü projeye kendi isteğiyle katkı verir. Emir odaklı yaklaşım bu motivasyonu hızlı biçimde zayıflatabilir. Daha iyi model, problemi ve önceliği açıkça paylaşmak ve katkı alanı yaratmaktır. Maintainer gerektiğinde yön verir fakat bütün işleri mikro düzeyde dağıtmaz. Bu yaklaşım sahiplenmeyi ve uzun vadeli contributor retention oranını destekler.

Açık Kaynak Proje Ekibini Kimler Oluşturur?

Açık kaynak proje ekibi yalnız kod yazan geliştiricilerden oluşmaz. Teknik karar, review, güvenlik, dokümantasyon, community management ve release engineering gibi farklı sorumluluklar bulunur. Küçük projelerde bir kişi birden fazla rol üstlenebilir. Proje büyüdükçe bu rollerin açık hale getirilmesi darboğazları azaltır. Özellikle açık kaynak yazılım projelerinde görev ve sorumluluk dağılımı nasıl belirlenir sorusunun ilk cevabı rol beklentilerini görünür hale getirmektir.

Project Lead

Project Lead projenin genel yönünü ve uzun vadeli hedeflerini koordine eder. Her teknik kararı tek başına almak zorunda değildir. Roadmap, topluluk beklentileri ve maintainer öncelikleri arasında uyum kurulmasına yardımcı olur. Proje büyüdükçe karar yetkisini farklı çalışma gruplarına dağıtması gerekir. Liderliğin temel amacı bütün işleri yapmak değil sistemin çalışmasını sağlamaktır.

Maintainer

Maintainer belirli repository veya component için sürdürülebilirlik sorumluluğu taşır. Issue triage, PR review, teknik karar ve release hazırlığı gibi görevler üstlenebilir. Maintainer olmak yalnız merge yetkisine sahip olmak anlamına gelmez. Toplulukla sağlıklı iletişim kurmak ve teknik kaliteyi korumak da rolün önemli parçasıdır. Proje planı maintainer kapasitesini gerçekçi biçimde hesaba katmalıdır.

Committer

Committer genellikle belirli alanlarda doğrudan commit veya merge yetkisi bulunan katkıcıdır. Yetki projenin governance modeline göre değişebilir. Bazı projelerde committer maintainer seviyesine yakın sorumluluk taşır. Bazılarında ise yalnız belirli component içinde yetkilidir. Yetki sınırları yazılı olarak tanımlandığında release riski azalır.

Reviewer

Reviewer pull request'lerin kalite kontrolünde kritik role sahiptir. Kod doğruluğu, test kapsamı, mimari uyum ve güvenlik etkisini inceleyebilir. Reviewer kapasitesi düşükse contributor sayısı artsa bile merge hızı düşebilir. Bu nedenle ekip planlaması yalnız geliştirici kapasitesine bakmamalıdır. Review kuyruğu ayrı kapasite alanı olarak ölçülmelidir.

Contributor

Contributor kod, dokümantasyon, test, issue raporu veya başka proje çıktılarıyla katkı sunabilir. Her contributor'ın uzun vadeli commitment vermesi beklenmemelidir. İyi onboarding süreci katkıcının ilk PR'a ulaşmasını kolaylaştırır. Contributor'ın ilgi alanı ile proje ihtiyaçları eşleştiğinde katkı sürdürülebilir hale gelir. Zaman içinde bazı contributor'lar reviewer veya maintainer rolüne geçebilir.

Release Manager

Release Manager sürüm sürecinin koordinasyonunu üstlenir. Scope durumu, blocker'lar, testler, paketler ve yayın adımları takip edilir. Bu kişinin bütün teknik değişiklikleri yapması gerekmez. Farklı sorumluları aynı release takviminde hizalamak temel görevidir. Tek kişiye bağımlı olmamak için release runbook ve yedek sorumlu bulunmalıdır.

Community Manager

Community Manager contributor deneyimi ve iletişim kanallarını destekler. Discussion, forum, toplantı ve davranış kurallarının sağlıklı işlemesine katkı sağlar. Teknik ekip ile topluluk arasında bağ oluşturabilir. Contributor feedback roadmap kararlarına taşınabilir. Büyük projelerde bu rol contributor retention açısından ciddi değer üretir.

Documentation Team

Dokümantasyon ekibi yalnız release sonrasında metin hazırlayan bir ekip değildir. Yeni özellik geliştirilirken kullanım davranışını anlamalıdır. API değişikliği veya migration ihtiyacı erken aşamada dokümantasyon planına girmelidir. Documentation readiness go / no-go kararının parçası olabilir. Böylece kullanıcı yeni sürüm çıktığında ne yapacağını anlayabilir.

Security Team

Security Team güvenlik raporlarını, vulnerability süreçlerini ve acil patch çalışmalarını yönetebilir. Kritik açıklar normal roadmap dışında öncelik kazanabilir. Private coordination gerektiren durumlarda iletişim kanalları açıkça belirlenmelidir. Release takvimi güvenlik işi için tampon kapasite bırakmalıdır. Güvenlik sürecinin tek maintainer'ın kişisel inbox'ına bağlı olması risklidir.

Working Group / SIG Lead

Working Group veya SIG Lead belirli teknik veya operasyonel alanın koordinasyonunu üstlenir. Networking, security veya documentation gibi konular ayrı gruplarda yönetilebilir. Grup kendi backlog ve milestone'larını takip edebilir. Ana roadmap ile bağlantı korunmalıdır. Böylece merkezî ekip her kararı tek noktadan vermek zorunda kalmaz.

Core Team, Maintainer ve Contributor Arasındaki Sorumluluk Dağılımı

Core team, maintainer ve contributor sorumluluklarının açık ayrılması karar gecikmelerini azaltır. Roadmap sahipliği ile günlük issue çalışmasının aynı kişi üzerinde toplanması sürdürülebilir değildir. Merge ve release yetkileri de her katkıcıya açık olmak zorunda değildir. Buna karşılık contributor'ların yalnız kod yazıp karar süreçlerinden dışlanması topluluk gelişimini sınırlar. Sağlıklı model yetkinlik ve güven arttıkça sorumluluğun kademeli büyümesini sağlar.

Roadmap Sahipliği

Roadmap tek kişinin kişisel yapılacaklar listesi olmamalıdır. Project Lead ve maintainer'lar ana temaları belirleyebilir. Topluluk geri bildirimi ve kullanıcı ihtiyaçları da planlamaya dahil edilmelidir. Öncelik kararlarının gerekçesi mümkün olduğunca görünür olmalıdır. Roadmap sahipliği karar sorumluluğu ile şeffaflığı birlikte taşır.

Issue Triage

Issue triage yeni taleplerin sınıflandırıldığı ilk önemli aşamadır. Bug, feature, security veya documentation ayrımı yapılabilir. Priority ve target milestone gerektiğinde eklenir. Contributor'ların üzerinde çalışabileceği işler netleştirilir. Triage düzenli yapılmazsa backlog kısa sürede kullanılamaz hale gelir.

Teknik Kararlar

Teknik kararlar component owner veya ilgili working group tarafından alınabilir. Büyük mimari değişiklikler RFC sürecine girebilir. Karar gerekçesi ADR veya decision log içinde saklanmalıdır. Böylece altı ay sonra neden belirli yaklaşımın seçildiği anlaşılır. Karar modeli projenin büyüklüğüne göre ölçeklenmelidir.

Pull Request Review

PR review kod kalitesinin temel kontrol noktalarından biridir. Reviewer yalnız syntax değil davranış ve risk değerlendirmesi yapmalıdır. Çok büyük PR'ler review süresini uzatır. Küçük ve odaklı değişiklikler daha hızlı ilerleyebilir. Review SLA yerine gönüllü projelerde makul SLE kullanmak daha esnek olabilir.

Merge Yetkisi

Merge yetkisi güvenilir contributor ve maintainer'lara verilebilir. Component bazlı yetkilendirme riski azaltır. CODEOWNERS benzeri mekanizmalar doğru reviewer'a yönlendirme sağlayabilir. Kritik branch'lerde ikinci onay şartı uygulanabilir. Yetki modeli gereksiz merkezîleşmeyi de önlemelidir.

Release Yetkisi

Release yetkisi tag, artifact ve registry publish işlemlerini kapsayabilir. Bu yetki dar bir ekipte kontrollü tutulabilir. Ancak tek kişinin hesabına bağlı olmamalıdır. Çok faktörlü doğrulama ve yedek release manager kullanılmalıdır. Runbook bütün adımları tekrar üretilebilir hale getirmelidir.

Community Moderation

Community moderation teknik karar kadar topluluk sağlığını da etkiler. Davranış kuralları ve escalation yolları açık olmalıdır. Moderator'lar teknik maintainer'lardan farklı kişiler olabilir. Tartışmaların kişiselleşmesini önlemek uzun vadeli contributor deneyimini iyileştirir. Moderasyon planı yalnız sorun çıktığında düşünülmemelidir.

Güvenlik Müdahalesi

Güvenlik müdahalesi normal issue akışından ayrı işleyebilir. Vulnerability ayrıntıları public tracker'a hemen yazılmamalıdır. Security contact ve private coordination yöntemi önceden tanımlanmalıdır. Patch hazır olduğunda advisory ve release birlikte planlanabilir. Acil güvenlik işi release takvimini değiştirebilecek önceliğe sahip olabilir.

Açık Kaynak Projelerde RACI Yerine Nasıl Bir Yönetişim Modeli Kullanılmalı?

Klasik RACI bazı kurumsal projelerde yararlı olsa da açık kaynakta tek başına yeterli olmayabilir. Açık kaynak yapılarında sahiplik genellikle component, maintainer ve working group üzerinden daha doğal gelişir. Consensus, lazy consensus ve escalation gibi karar mekanizmaları ayrıca gerekir. Yetkinin kimde olduğu kadar kararın nasıl alındığı da açık olmalıdır. Proje büyüdükçe bu model yazılı governance dokümanına dönüşmelidir.

Maintainer Ownership

Maintainer ownership belirli alanın bakım sorumluluğunu açıklar. Bu kişi her işi yapmak zorunda değildir. Önceliklendirme, review ve teknik tutarlılık için referans noktasıdır. Yedek maintainer bulunması bus factor riskini azaltır. Sahiplik zaman içinde katkı geçmişine göre değişebilir.

Component Ownership

Büyük projeler bileşenlere ayrılabilir. Her component için owner ve reviewer grubu belirlenir. Böylece bütün PR'ler aynı birkaç kişide birikmez. Component roadmap ana proje hedefleriyle uyumlu tutulur. Sorumluluğun dağıtılması ölçeklenebilirlik sağlar.

CODEOWNERS

CODEOWNERS benzeri dosyalar belirli dosya yollarını sorumlu reviewer'larla eşleştirebilir. PR açıldığında doğru kişilere otomatik review isteği gönderilebilir. Bu mekanizma insan bilgisinin tamamen yerini tutmaz. Ancak ownership'i görünür ve otomatik hale getirir. Yedek owner'lar tanımlamak tek kişiye bağımlılığı azaltır.

Working Group Yapısı

Working group belirli tema etrafında çalışan katkıcı grubudur. Kendi toplantılarını, backlog'unu ve önerilerini yönetebilir. Yetki sınırı governance dokümanında belirtilmelidir. Ana projenin roadmap'iyle düzenli senkronizasyon gerekir. Böyle yapı katılım alanını genişletir.

SIG Modeli

SIG belirli uzmanlık alanına odaklanan daha kalıcı grup modeli olabilir. Security, networking veya release engineering için kullanılabilir. Grup karar süreçlerini ve üyelik kriterlerini açıkça tanımlar. SIG Lead koordinasyon görevini üstlenebilir. Büyük ekosistemlerde konu sahipliğini dağıtmak için etkili yöntemdir.

Decision-Making Authority

Her karar için herkesin onayı beklenirse proje yavaşlar. Hangi kararın maintainer, hangi kararın SIG veya project lead yetkisinde olduğu tanımlanmalıdır. Büyük API değişiklikleri daha geniş review gerektirebilir. Küçük bug fix'ler component owner tarafından onaylanabilir. Yetki sınırı hız ile katılım arasında denge kurar.

Consensus ve Lazy Consensus

Consensus mümkün olduğunca ortak kabul arar. Lazy consensus ise belirli süre içinde ciddi itiraz gelmezse önerinin kabul edildiği modeldir. Açık kaynakta asenkron kararlar için kullanışlı olabilir. Comment period açıkça belirtilmelidir. Kritik değişikliklerde daha güçlü onay şartı gerekebilir.

Escalation Mekanizması

Görüş ayrılığı çözülemediğinde nereye gidileceği önceden bilinmelidir. Component owner, technical steering group veya project lead escalation noktası olabilir. Süreç kişilere değil role dayanmalıdır. Kararın gerekçesi public decision log'a yazılabilir. Bu sayede aynı tartışma tekrar tekrar yaşanmaz.

Ekip Kapasitesi Nasıl Planlanır?

Açık kaynak kapasite planlaması kişi sayısını toplamaktan ibaret değildir. Maintainer, reviewer, contributor ve release engineering kapasitesi ayrı akışlar oluşturur. Bir projede yirmi contributor olup yalnız iki reviewer bulunması yine ciddi darboğaz yaratabilir. Bu nedenle açık kaynak geliştirmede roadmap milestone sprint ve dağıtım süreçleri planlanırken review ve integration kapasitesi de hesaba katılmalıdır. Akış metrikleri teorik kişi-saat tahminlerinden daha gerçekçi bilgi verebilir.

Full-Time Maintainer Kapasitesi

Tam zamanlı maintainer'ın haftasının tamamı feature development için kullanılamaz. Issue triage, review, meeting, güvenlik ve community support zaman alır. Gerçek planlama bu görünmeyen işi hesaba katmalıdır. Örneğin haftalık kapasitenin yalnız belirli bölümü roadmap geliştirmelerine ayrılabilir. Bu oran tarihsel veriden çıkarılabilir.

Part-Time Contributor Kapasitesi

Part-time contributor düzenli katkı verse bile çalışma zamanı değişebilir. Sprint taahhüdü yerine hedef issue ve milestone kullanmak daha esnektir. Küçük bağımsız işler katkı süresini kolaylaştırır. Kritik yol yalnız part-time kişiye bağlı bırakılmamalıdır. Katkı geldiğinde hızlı review sağlamak motivasyonu korur.

Volunteer Capacity

Volunteer kapasitesi kesin tahmin edilemez fakat tarihsel aralıklarla değerlendirilebilir. Geçmiş aylardaki aktif contributor ve tamamlanan PR sayısı incelenebilir. Konferans veya tatil dönemlerinde düşüş görülebilir. Planlama güven aralığıyla yapılmalıdır. Tek sayılı kesin tahmin yanlış güven oluşturabilir.

Reviewer Capacity

Reviewer capacity release hızını doğrudan etkiler. PR açılma sayısı review kapasitesinden hızlı artarsa kuyruk büyür. Review lead time bu durumu görünür hale getirir. Reviewer rotation veya component ownership uygulanabilir. Contributor'lardan yeni reviewer yetiştirmek uzun vadeli çözümdür.

Mentorluk Kapasitesi

Yeni contributor onboarding için deneyimli kişilerin zamanı gerekir. Mentor sayısı sınırlıysa aynı anda çok fazla good first issue açmak ters etki yaratabilir. İlk PR feedback süresi kısa tutulmalıdır. Mentorluk ayrı kapasite alanı olarak planlanmalıdır. Böylece yeni katkıcılar cevapsız kalmaz.

Release Engineering Kapasitesi

Build, packaging, signing ve publishing işleri ayrı uzmanlık gerektirebilir. Release haftasında bu ekip aşırı yüklenebilir. Otomasyon yükü azaltır fakat insan approval yine gerekli olabilir. Yedek release engineer bulunmalıdır. Release planı bu kapasiteye göre cadence belirlemelidir.

Kapasiteyi Kişi–Saat Yerine Akış Üzerinden Ölçmek

Açık kaynakta herkesin kaç saat çalışacağını bilmek çoğu zaman mümkün değildir. Bunun yerine PR lead time, review time ve blocked time gibi akış metrikleri kullanılabilir. Sistem gerçekten ne kadar iş tamamlıyor görülebilir. Kuyruk büyüyorsa kapasite sorunu erken fark edilir. Bu yaklaşım insanları saat bazında ölçmekten daha sağlıklıdır.

Gönüllü Contributor Kapasitesi Tahmin Edilebilir mi?

Gönüllü kapasite kesin biçimde tahmin edilemez fakat olasılıklı biçimde planlanabilir. Tarihsel contribution verisi, aktif contributor sayısı ve PR completion rate fikir verir. Mevsimsellik ve etkinlik dönemleri de modele eklenebilir. Plan tek sayı yerine düşük, orta ve yüksek kapasite senaryolarıyla kurulabilir. Böylece release scope katkı dalgalanmasına karşı daha dayanıklı olur.

Tarihsel Contribution Verisi

Son altı veya on iki aylık katkı geçmişi temel veri sağlar. Aylık açılan ve merge edilen PR sayısı incelenebilir. Sadece commit sayısına bakmak doğru değildir. Review ve issue katkıları da değerlidir. Tarihsel veri geleceği garanti etmez fakat başlangıç noktası oluşturur.

Aktif Contributor Sayısı

Aktif contributor tanımı açık olmalıdır. Son otuz veya doksan günde anlamlı katkı sunan kişiler sayılabilir. Tek seferlik typo fix yapan kişi sürekli kapasite gibi değerlendirilmemelidir. Contributor retention ayrıca izlenebilir. Aktif kişi sayısındaki düşüş roadmap riskine dönüşebilir.

Katkı Frekansı

Bazı contributor'lar haftalık, bazıları birkaç ayda bir katkı verir. Frekans dağılımı planlama için önemlidir. Kritik component yalnız seyrek katkı veren kişiye bağlı bırakılmamalıdır. Düzenli contributor'lar mentoring ile daha yüksek sorumluluğa hazırlanabilir. Frekans yalnız performans değil availability göstergesi olarak kullanılmalıdır.

PR Completion Rate

Açılan bütün PR'ler merge edilmez. Completion rate contribution kapasitesinin gerçek çıktıya dönüşme oranını gösterir. Düşük oran kötü contributor anlamına gelmeyebilir. Yavaş review veya belirsiz requirement da sebep olabilir. Metric yorumlanırken sistem davranışı incelenmelidir.

Mevsimsellik

Yaz ayları veya yıl sonu katkı düzenini değiştirebilir. Akademik contributor yoğun projelerde dönem takvimleri etkili olabilir. Tarihsel veride bu pattern görülebilir. Büyük release'i düşük kapasite dönemine koymamak akıllıca olabilir. Yine de esnek scope korunmalıdır.

Tatil ve Konferans Dönemleri

Topluluk etkinlikleri katkıyı hem artırabilir hem kısa süreli azaltabilir. Konferans öncesinde maintainer'lar hazırlık nedeniyle daha az review yapabilir. Tatil dönemlerinde response time uzayabilir. Release calendar bu dönemleri görünür hale getirmelidir. Kritik freeze tarihleri mümkünse yoğun tatillerle çakıştırılmamalıdır.

Güven Aralığıyla Kapasite Planlama

“Ayda tam 40 PR merge ederiz” demek yerine aralık kullanılabilir. Örneğin düşük senaryo 20, normal senaryo 30, yüksek senaryo 40 olabilir. Scope buna göre katmanlara ayrılır. Must-have işler düşük kapasite senaryosunda da tamamlanabilir olmalıdır. Böylece plan daha gerçekçi olur.

Bus Factor Açık Kaynak Ekip Planlamasını Nasıl Etkiler?

Bus factor belirli bilgi veya yetkinliğin kaç kişiye bağlı olduğunu anlamaya yardımcı olur. Kritik modülü yalnız bir maintainer biliyorsa plan büyük risk taşır. O kişi geçici olarak ayrıldığında review ve release durabilir. Cross-maintainership, pair review ve knowledge transfer bu riski azaltır. Ekip planında yeni feature kadar bilgi yedekleme çalışmaları da bulunmalıdır.

Bus Factor Nedir?

Bus factor projenin kritik bilgi veya işlevinin kaç kişiye bağımlı olduğunu anlatan pratik bir kavramdır. Değer düşükse birkaç kişinin ayrılması projeyi ciddi etkileyebilir. Yalnız kod sahipliği değil release ve security access de değerlendirilmelidir. Tek kişi artifact signing anahtarını kontrol ediyorsa operasyonel risk vardır. Bus factor düzenli review konusu olmalıdır.

Kritik Modüllerde Tek Maintainer Riski

Tek maintainer kritik modülün bütün review yükünü taşır. Hastalık veya yoğun iş dönemi release'i geciktirebilir. İkinci maintainer yetiştirmek gerekir. Documentation ve decision log bilgi transferini kolaylaştırır. Ownership dosyasında birden fazla owner bulunabilir.

Reviewer Yedekleme

Her component için primary ve backup reviewer belirlenebilir. Backup kişi düzenli review yapmazsa bilgisi hızla eskiyebilir. Bu nedenle belirli oranlarda review rotation uygulanabilir. Kritik PR'ler birlikte incelenebilir. Yedekleme yalnız isim listesi olmamalıdır.

Cross-Maintainership

Maintainer'ların birbirlerinin component'lerinde temel yetkinlik kazanması faydalıdır. Herkes bütün kodu bilmek zorunda değildir. Kritik operasyonları devralabilecek düzey yeterli olabilir. Ortak review ve incident çalışmaları bu bilgiyi artırır. Cross-maintainership release dayanıklılığını güçlendirir.

Pair Review

Pair review iki reviewer'ın aynı değişikliği birlikte değerlendirmesidir. Özellikle yeni reviewer yetiştirirken yararlıdır. Deneyimli kişi karar yaklaşımını paylaşabilir. Zamanla yeni reviewer bağımsız sorumluluk alır. Bu yöntem bus factor düşürme çalışmalarına katkı sağlar.

Knowledge Transfer

Knowledge transfer yalnız uzun doküman yazmak değildir. Pairing, walkthrough, ADR ve release shadowing birlikte kullanılabilir. Kritik runbook'lar gerçek kişiler tarafından denenmelidir. Bir görev yalnız dokümanı okuyarak başka kişi tarafından tamamlanabiliyorsa risk azalır. Transfer düzenli süreç olmalıdır.

Successor Maintainer Yetiştirme

Maintainer rolü sonsuza kadar aynı kişide kalmayabilir. Aktif contributor'lar zaman içinde reviewer ve committer seviyesine taşınabilir. Sorumluluk kademeli olarak artırılır. Governance modeli bu geçiş kriterlerini açıklamalıdır. Böylece proje insan değişimine karşı daha dayanıklı olur.

Contributor Onboarding Zaman Çizelgesine Nasıl Dahil Edilir?

Contributor onboarding release planından ayrı düşünülmemelidir. Yeni katkıcının projeyi anlaması, ilk issue'yu seçmesi ve PR review alması zaman alır. Bu süre doğru planlanmazsa yeni contributor kapasitesi olduğundan yüksek tahmin edilir. Time-to-first-PR gibi metrikler onboarding kalitesini gösterir. Yeni katılımcıların büyümesi uzun vadeli maintainer kapasitesini artırabilir.

Time-to-Understanding

Contributor projenin amacı, mimarisi ve contribution kurallarını anlamak için zamana ihtiyaç duyar. İyi README ve architecture docs bu süreyi azaltır. İlk gün büyük refactor beklenmemelidir. Mentor temel yönlendirme sağlayabilir. Kısa onboarding path katkıcının motivasyonunu artırır.

Time-to-First-Issue

Yeni kişi uygun ilk işi kolayca bulabilmelidir. Good first issue ve help wanted etiketleri yardımcı olur. Issue açıklaması yeterli bağlam taşımalıdır. Kabul kriteri net olmalıdır. İlk işi bulmak günler sürüyorsa onboarding sistemi iyileştirilmelidir.

Time-to-First-PR

İlk issue'dan ilk PR'a geçen süre contributor deneyiminin önemli göstergesidir. Çok karmaşık setup bu süreyi uzatabilir. Development environment dokümantasyonu güncel olmalıdır. Test komutları açıkça yazılmalıdır. Küçük başarı yeni katkının devam etme ihtimalini artırır.

First PR Review

İlk PR'ın uzun süre cevapsız kalması contributor kaybına yol açabilir. Review için mentor veya özel rotation kullanılabilir. Geri bildirim öğretici ve saygılı olmalıdır. İlk katkıda aşırı küçük stil ayrıntılarıyla süreci zorlaştırmamak gerekir. Ama kalite standardı da açıkça korunmalıdır.

Mentorluk

Mentor contributor'ın her işi yerine yapmamalıdır. Doğru kaynak ve düşünme yönünü göstermelidir. Aynı mentor çok fazla yeni kişiye atanırsa kapasite problemi oluşur. Mentor available etiketi kullanılabilir. Mentorluk katkının projeye dönüşme oranını yükseltir.

Contributor'dan Maintainer'a Gelişim

Uzun vadeli contributor'lar daha fazla sorumluluk almak isteyebilir. Review, triage ve küçük component ownership adımları geçişi sağlar. Governance kriterleri açık olmalıdır. Maintainer adayının yalnız kod kalitesine değil topluluk iletişimine de bakılmalıdır. Bu gelişim projenin sürdürülebilirliğini güçlendirir.

Yeni Katkıcılar İçin İş Havuzu Nasıl Oluşturulur?

Yeni contributor'lara uygun iş havuzu onboarding'in en pratik araçlarından biridir. Good first issue, documentation ve test görevleri giriş bariyerini azaltabilir. İşler gerçek değer taşımalı, yalnız “yeni başlayan işi” olarak uydurulmamalıdır. Complexity label ve mentor availability görünür olmalıdır. Böylece contributor kendi kapasitesine uygun işi seçebilir.

Good First Issue

Good first issue sınırlı scope ve açık kabul kriterine sahip olmalıdır. İlgili dosya veya başlangıç noktası belirtilebilir. Tam çözümün verilmesi gerekmez. Issue gerçek proje ihtiyacını karşılamalıdır. Eski veya artık geçersiz first issue'lar düzenli temizlenmelidir.

Help Wanted

Help wanted etiketi maintainer'ın dış katkıya açık olduğunu gösterebilir. Bu işler her zaman kolay olmak zorunda değildir. Bağlam ve beklenen sonuç iyi açıklanmalıdır. Contributor soru sorabileceği kanalı bilmelidir. Etiket contributor discovery sürecini kolaylaştırır.

Documentation Tasks

Dokümantasyon görevleri yeni contributor'ın projeyi öğrenmesini sağlar. Eksik örnek, typo veya kullanım rehberi iyileştirmesi olabilir. Doküman değişiklikleri de teknik review gerektirebilir. Özellikle API örnekleri test edilmelidir. Documentation katkısı ikinci sınıf katkı gibi görülmemelidir.

Test Tasks

Eksik test eklemek kod davranışını öğrenmek için iyi başlangıç olabilir. Test kapsamı ve beklenen davranış issue içinde açıklanmalıdır. Flaky test riskine dikkat edilmelidir. Contributor test infrastructure'ı tanıma fırsatı bulur. Sonraki feature katkıları için hazırlık sağlar.

Bug Fixes

Küçük ve yeniden üretilebilir bug'lar yeni contributor için uygundur. Reproduction steps net olmalıdır. Expected ve actual davranış yazılmalıdır. Test ekleme beklentisi belirtilmelidir. Gizli mimari bilgi gerektiren bug'lar first issue olarak seçilmemelidir.

Complexity Labels

Low, medium ve high gibi complexity etiketleri iş seçimini kolaylaştırabilir. Tahmin kesin süre anlamına gelmemelidir. Karmaşıklık teknik belirsizliği ve değişiklik alanını yansıtabilir. Yeni contributor düşük karmaşıklıkla başlayabilir. Etiketler tarihsel deneyime göre güncellenebilir.

Mentor-Available Etiketi

Mentor available etiketi contributor'ın yardım alabileceğini gösterir. Mentor gerçekten müsait olmalıdır. Etiket yıllarca açık bırakılmamalıdır. Mentor response expectation açıklanabilir. Bu küçük sinyal first PR başarı oranını yükseltebilir.

Açık Kaynak Roadmap'i Nasıl Oluşturulur?

Açık kaynak roadmap'i kesin teslim taahhüdü değil yön ve öncelik haritası olarak düşünülmelidir. Project vision, kullanıcı ihtiyaçları, contributor geri bildirimi, teknik borç ve güvenlik birlikte değerlendirilir. Ekosistem bağımlılıkları planı etkileyebilir. Roadmap açık kaynakta katılım çağrısı işlevi de görür. İyi roadmap kullanıcıların ve contributor'ların projenin nereye gittiğini anlamasını sağlar.

Project Vision

Vision projenin neden var olduğunu açıklar. Hangi problemi çözdüğü ve kimlere hizmet ettiği anlaşılmalıdır. Roadmap kararları bu vizyona göre filtrelenir. Her popüler feature talebi otomatik olarak roadmap'e girmez. Vision stratejik sınır sağlar.

Uzun Vadeli Hedefler

Uzun vadeli hedefler belirli teknik veya kullanıcı sonuçlarını tanımlayabilir. Kesin uzak tarih vermek yerine yön belirtmek daha güvenlidir. Örneğin plugin API stabilitesi veya deployment kolaylığı hedeflenebilir. Hedefler ölçülebilir çıktılarla desteklenebilir. Yıllık review sırasında güncellenebilir.

Kullanıcı İhtiyaçları

Roadmap yalnız maintainer isteklerinden oluşmamalıdır. Issue'lar, discussions ve kullanıcı geri bildirimi analiz edilmelidir. En çok ses çıkaran kullanıcı her zaman en büyük ihtiyeti temsil etmeyebilir. Kullanıcı etkisi ve kullanım yaygınlığı birlikte değerlendirilmelidir. Gerçek problem açıklaması feature talebinden daha değerlidir.

Contributor Geri Bildirimi

Contributor'lar kod tabanındaki sürtünmeleri yakından görür. Build süresi veya test altyapısı gibi sorunları roadmap'e taşıyabilir. Bu geri bildirim yalnız feature geliştirmeye odaklanmayı önler. Topluluk toplantıları veya discussions kullanılabilir. Karar sonucu açık biçimde paylaşılmalıdır.

Teknik Borç

Teknik borç görünmez bırakılırsa release hızı zamanla düşer. Refactor, test iyileştirmesi ve dependency update roadmap içinde yer almalıdır. Kullanıcı açısından yeni feature kadar görünür olmayabilir. Maintainer sürdürülebilirlik gerekçesini açıklamalıdır. Her release'te belirli kapasite teknik borca ayrılabilir.

Güvenlik

Security roadmap dependency hardening, signing veya vulnerability process iyileştirmelerini içerebilir. Hassas detayların tamamı public roadmap'te yer almak zorunda değildir. Ancak genel güvenlik hedefleri görünür olabilir. Kritik çalışma feature'ların önüne geçebilir. Risk tabanlı önceliklendirme yapılmalıdır.

Ekosistem Bağımlılıkları

Proje başka framework veya package'lara bağlı olabilir. Upstream major version planları kendi roadmap'inizi etkiler. Deprecation takvimleri izlenmelidir. Compatibility çalışmaları önceden planlanabilir. Böylece son dakika dependency migration'ı release'i geciktirmez.

Açık Kaynak Roadmap Türleri

Tek roadmap bütün proje ihtiyaçlarını karşılamak zorunda değildir. Feature, release, technology, security, community, documentation ve ecosystem roadmap'leri farklı amaçlara hizmet edebilir. Küçük projelerde bunlar tek görünümde birleştirilebilir. Büyük projelerde ayrı working group planları bulunabilir. Önemli olan bunların ana proje hedefleriyle bağlantısının kopmamasıdır.

Feature Roadmap

Feature roadmap kullanıcıya sunulacak işlevleri gösterir. Öncelik ve olası dönemler belirtilebilir. Kesin söz verilmemelidir. Feature request sayısından çok kullanıcı değeri değerlendirilmelidir. Scope değişiklikleri public biçimde güncellenebilir.

Release Roadmap

Release roadmap sürüm dönemlerini ve önemli milestone'ları gösterir. Feature freeze ve GA gibi aşamalar bulunabilir. Kullanıcılar upgrade planlarını buna göre hazırlayabilir. Tarihler confidence seviyesiyle paylaşılabilir. Yakın dönem daha net, uzak dönem daha esnek tutulur.

Technology Roadmap

Technology roadmap mimari dönüşüm ve altyapı hedeflerini kapsar. Runtime yükseltme veya build sistemi değişikliği örnek olabilir. Bu işler doğrudan kullanıcı feature'ı olmayabilir. Ancak bakım maliyetini ve güvenliği etkiler. Dependency planlarıyla bağlantı kurulmalıdır.

Security Roadmap

Security roadmap güvenlik olgunluğunu artıran çalışmaları gösterir. Artifact signing, SBOM veya dependency scanning gibi başlıklar bulunabilir. Hassas vulnerability ayrıntıları burada yer almaz. Roadmap güvenlik yatırımını görünür hale getirir. Sponsor desteği için de faydalı olabilir.

Community Roadmap

Community roadmap onboarding, mentoring ve etkinlik hedeflerini içerebilir. Contributor retention veya first PR deneyimi geliştirilebilir. Yeni working group açılması planlanabilir. Kod dışı katkılar görünür hale gelir. Topluluk sağlığı teknik roadmap kadar önemlidir.

Documentation Roadmap

Documentation roadmap büyük doküman iyileştirmelerini planlar. API reference, tutorials ve migration guide ayrı hedefler olabilir. Release schedule ile senkron çalışmalıdır. Doküman debt ayrıca takip edilebilir. Kullanıcı deneyimi için yüksek değer taşır.

Ecosystem Roadmap

Ecosystem roadmap plugin, integration ve downstream ilişkilerini ele alır. Breaking change etkileri önceden görülebilir. Partner repository'lerle koordinasyon yapılabilir. Compatibility matrix oluşturulabilir. Büyük major release'lerde özellikle faydalıdır.

Roadmap Ne Kadar İleriye Planlanmalı?

Açık kaynak roadmap'inde yakın dönem daha net, uzak gelecek daha esnek olmalıdır. Now, Next ve Later modeli kesin tarih baskısını azaltır. Üç aylık plan operation seviyesinde, altı aylık plan direction seviyesinde, on iki aylık plan ise stratejik görünüm seviyesinde kullanılabilir. Uzak geleceğe gün bazında tarih vermek gereksiz beklenti oluşturur. Confidence seviyesi açıkça belirtilmelidir.

Now

Now aktif development ve current milestone'u gösterir. Owner ve blocker bilgileri daha nettir. Kullanıcılar yakın release için gerçek beklenti oluşturabilir. Scope değişirse hızlı güncellenmelidir. Now alanı düzenli haftalık review görmelidir.

Next

Next sıradaki öncelikleri gösterir. Technical discovery tamamlanmamış olabilir. Exact delivery date vermek zorunlu değildir. Contributor ilgisi bu alandaki işleri hızlandırabilir. Öncelik değişirse gerekçe paylaşılabilir.

Later

Later uzun vadeli fikir ve yönleri içerir. Commitment olarak sunulmamalıdır. Research veya dependency belirsizliği yüksek olabilir. Kullanıcı feedback toplamak için yararlıdır. Zamanla Next veya archive durumuna geçebilir.

3 Aylık Planlama

Üç aylık dönem açık kaynak için makul operasyon penceresidir. Bir veya birkaç release cycle içerebilir. Maintainer capacity daha gerçekçi tahmin edilebilir. Büyük dependency değişimleri planlanabilir. Dönem sonunda retrospective yapılabilir.

6 Aylık Planlama

Altı ay orta vadeli yön sağlar. Feature set'in tamamını kesinleştirmek gerekmez. Major theme ve platform yatırımları gösterilebilir. Contributor working group'lar erken hazırlanabilir. Tarihler düşük confidence ile paylaşılabilir.

12 Aylık Stratejik Görünüm

On iki aylık plan vizyon ve büyük dönüşümler için yararlıdır. Kesin sprint veya issue listesi olmamalıdır. Ekosistem ve support policy gibi konular ele alınabilir. Sponsorlar için yön bilgisi sağlar. Yıl içinde birkaç kez güncellenmelidir.

Uzak Gelecek İçin Kesin Tarih Vermeme

Gönüllü kapasite ve dependency değişimi uzun vadeli tarihi belirsiz kılar. Kesin tarih gereksiz baskı yaratabilir. Kullanıcıya tahmini dönem ve confidence seviyesi verilebilir. Yaklaştıkça tarih netleştirilir. Roadmap taahhüt belgesi değildir.

Roadmap'i Topluluğa Açmak Neden Önemlidir?

Public roadmap topluluğun proje yönünü görmesini sağlar. Contributor hangi alanda katkısının daha değerli olacağını anlayabilir. Duplicate work azalır ve kullanıcı beklentisi daha sağlıklı yönetilir. Sponsor veya kurumsal kullanıcılar yaklaşan değişiklikleri erken görebilir. Şeffaf plan katkı güvenini güçlendirir.

Contributor Hizalanması

Contributor'lar aynı öncelikler üzerinde çalışabilir. Roadmap olmadan farklı kişiler benzer feature'ları paralel geliştirebilir. Theme ve milestone görünürlüğü koordinasyonu artırır. Açık issue listeleri giriş noktası sağlar. Maintainer'ın sürekli aynı açıklamayı yapma yükü azalır.

Şeffaf Önceliklendirme

Topluluk neden belirli işin önce yapıldığını anlayabilir. Security veya technical debt gibi görünmeyen işler açıklanabilir. Karar kriterleri public olabilir. Her talep kabul edilmese bile gerekçenin görünmesi güven yaratır. Öncelik değişiklikleri de kayıt altına alınmalıdır.

Yeni Katkıcı Çekmek

Roadmap contributor'lara gelecekteki çalışma alanlarını gösterir. İlgi duydukları component'i seçebilirler. Good first issue roadmap theme'leriyle bağlanabilir. Bu bağlantı katkının neden önemli olduğunu anlatır. Katkıcı yalnız küçük görev değil gerçek proje yönüne katkı sunduğunu hisseder.

Duplicate Work'ü Önlemek

Public plan benzer işlerin iki kez yapılmasını azaltır. Contributor yeni feature'a başlamadan mevcut milestone ve RFC'leri kontrol edebilir. Draft proposal görünür tutulabilir. Büyük çalışmalar için issue claim süreci kullanılabilir. Böylece gereksiz efor azalır.

Kullanıcı Beklentilerini Yönetmek

Kullanıcılar istenen feature'ın yakın dönemde olup olmadığını görebilir. Roadmap'in garanti değil plan olduğunu açıkça belirtmek gerekir. Tarih değişiklikleri sessizce yapılmamalıdır. Release cadence anlatılmalıdır. Şeffaflık support sorularını da azaltabilir.

Sponsor ve Kurumsal Kullanıcılara Görünürlük Sağlamak

Kurumsal kullanıcılar upgrade ve entegrasyon planlarını roadmap'e göre yapabilir. Sponsorlar hangi alanların kaynak ihtiyacı olduğunu görebilir. Bu bilgi funding kararlarını destekleyebilir. Ancak sponsor talepleri bütün topluluğun ihtiyacını otomatik olarak geçmemelidir. Governance bağımsız karar dengesini korumalıdır.

Roadmap'ten Release Planına Nasıl Geçilir?

Roadmap yönü gösterir, release plan ise yakın dönem uygulanabilir scope'u tanımlar. Roadmap theme epic'e, epic milestone'a, milestone issue ve PR'lara ayrılabilir. Her seviyede izlenebilirlik olması faydalıdır. Böylece bir issue'nun hangi release hedefini desteklediği anlaşılır. Açık kaynak projelerde release planı ve sürüm takvimi nasıl hazırlanır sorusunun pratik cevabı bu zinciri görünür hale getirmektir.

Roadmap Theme

Theme belirli stratejik amacı temsil eder. Performance, security veya developer experience örnek olabilir. Tek release'te tamamen bitmek zorunda değildir. Birden fazla epic theme'i destekleyebilir. Roadmap görünümünde kullanıcıya anlamlı üst seviye bağlam sağlar.

Epic

Epic büyük çalışma paketidir. Birkaç milestone'a yayılabilir. Alt issue'lar teknik veya dokümantasyon işleri içerebilir. Owner ve hedef outcome tanımlanmalıdır. Epic tamamlanma yüzdesi tek başına release readiness göstergesi değildir.

Milestone

Milestone belirli release veya dönem hedefini toplar. Target date ve scope bulunabilir. Blocker'lar görünür olur. Contributor hangi işlerin o sürüme hedeflendiğini anlayabilir. Scope gerektiğinde sonraki milestone'a taşınabilir.

Issue

Issue uygulanabilir iş birimidir. Bug, feature veya documentation olabilir. Acceptance criteria yazılmalıdır. Dependency ve priority etiketleri eklenebilir. Issue yeterince küçük olursa contributor katılımı kolaylaşır.

Pull Request

PR issue'nun kod veya doküman değişikliğine dönüşmesidir. İlgili issue referanslanmalıdır. Review ve test durumu release planına yansır. Büyük PR timeline riskini artırabilir. Merge edildiğinde milestone progress güncellenir.

Release

Release belirli değişiklik setinin kullanıcıya sunulmasıdır. Version, changelog ve artifact'lar hazırlanır. Go / no-go kriterleri sağlanmalıdır. Release notes kullanıcı etkisini açıklar. Sonrasında monitoring ve retrospective yapılır.

Roadmap–Milestone İzlenebilirliği

Her milestone hangi roadmap theme'ini desteklediğini göstermelidir. Böylece küçük teknik işlerin stratejik bağlamı kaybolmaz. Dashboard veya issue field kullanılabilir. Scope değiştiğinde theme etkisi görülebilir. Bu izlenebilirlik sponsor ve community iletişimini de kolaylaştırır.

Milestone Planlaması Nasıl Yapılır?

Milestone planı yalnız issue listesinden oluşmamalıdır. Release hedefi, scope, owner, target date, dependency, risk, health status ve exit criteria bulunmalıdır. Bu alanlar haftalık health check sırasında güncellenir. Scope büyüdükçe milestone'ın confidence seviyesi düşebilir. Gerektiğinde scope cut yapılarak tarih korunabilir.

Release Hedefi

Release hedefi sürümün neden yapıldığını açıklar. “On beş issue kapatmak” iyi hedef değildir. Kullanıcı veya teknik outcome ifade edilmelidir. Örneğin yeni plugin API stabilizasyonu hedef olabilir. Hedef scope kararlarında rehberlik eder.

Scope

Scope bu release'te planlanan işleri listeler. Must-have ve nice-to-have ayrımı yapılabilir. Feature freeze yaklaştıkça scope daraltılabilir. Gönüllü contributor işleri garanti edilmiş sayılmamalıdır. Scope değişiklikleri görünür olmalıdır.

Owner

Milestone owner bütün işleri yapan kişi değildir. Koordinasyon ve durum görünürlüğünden sorumludur. Blocker'ları takip eder. Scope riskini erken bildirir. Release Manager ile yakın çalışabilir.

Target Date

Target date planlama hedefidir. Confidence seviyesi ile birlikte paylaşılabilir. Fixed-date modelde kapsam esner. Fixed-scope modelde tarih esneyebilir. Date değişirse neden açıklanmalıdır.

Dependency

External veya internal dependency milestone'u etkileyebilir. Upstream release, başka repository veya design kararı buna örnektir. Dependency owner ve expected date kaydedilmelidir. Risk yükselirse alternatif plan hazırlanabilir. Haftalık health check'te durum tekrar değerlendirilmelidir.

Risk

Risk teknik belirsizlik, kapasite veya security etkisi olabilir. High, medium ve low gibi sınıflandırma kullanılabilir. Risk owner belirlenmelidir. Mitigation plan yazılabilir. Risk görünür olduğunda sürpriz gecikmeler azalır.

Health Status

Green, yellow ve red gibi health status kolay iletişim sağlar. Status objektif kriterlere dayanmalıdır. Çok fazla blocker veya review queue yellow olabilir. Critical bug red duruma taşıyabilir. Renk tek başına değil kısa açıklamayla kullanılmalıdır.

Exit Criteria

Milestone'ın tamamlanmış sayılması için açık kriterler gerekir. Critical bug olmaması, docs hazır olması veya test pass oranı örnek olabilir. Exit criteria son hafta icat edilmemelidir. Planlama başlangıcında yazılmalıdır. Go / no-go kararına doğrudan katkı sağlar.

Açık Kaynak Release Modelleri Nelerdir?

Açık kaynak projeler farklı release modelleri kullanabilir. Fixed-date, fixed-scope, timeboxed, rolling ve release train bunların başlıcalarıdır. Seçim maintainer kapasitesi, kullanıcı ihtiyacı ve değişiklik hızına göre yapılmalıdır. Tek model bütün projelere uygun değildir. En önemli nokta seçilen modelin topluluğa açık biçimde anlatılmasıdır.

Fixed-Date Release

Fixed-date modelde tarih korunur, kapsam esneyebilir. Belirli cadence isteyen projelerde kullanışlıdır. Feature hazır değilse sonraki sürüme taşınır. Kullanıcılar release tarihini daha öngörülebilir görür. Scope cut disiplini gerekir.

Fixed-Scope Release

Fixed-scope modelde belirli feature set tamamlanmadan release yapılmaz. Tarih esneyebilir. Büyük major sürümlerde görülebilir. Kritik feature sürekli gecikirse release de gecikir. Scope creep dikkatle yönetilmelidir.

Timeboxed Release

Belirli süre sonunda hazır işler release edilir. Sprint benzeri dönem kullanılabilir. Gönüllü katkılar hazır değilse bir sonraki kutuya taşınır. Cadence daha öngörülebilir olur. Testing window korunmalıdır.

Feature-Based Release

Belirli önemli feature tamamlandığında sürüm yayınlanır. Tek büyük özellik release'in ana amacı olabilir. Dependency belirsizliği tarih tahminini zorlaştırabilir. Kullanıcı beklentisi feature üzerinden yönetilir. Küçük düzeltmeler ayrı patch release alabilir.

Rolling Release

Rolling modelde sürekli güncellemeler yayınlanır. Büyük sürüm sınırları daha az belirgin olabilir. Kullanıcılar daha sık değişiklik alır. Test ve compatibility discipline önemlidir. Downstream projelerin update maliyeti hesaba katılmalıdır.

Release Train

Release train belirli aralıklarla düzenli sürüm çıkarır. Hazır feature trene biner, hazır olmayan sonraki treni bekler. Bu model fixed-date yaklaşımına yakındır. Scope baskısını azaltabilir. Contributor'lar bir sonraki pencerenin varlığını bilir.

Continuous Delivery

Continuous delivery her değişikliğin release edilebilir durumda tutulmasını hedefler. Otomatik test ve deployment altyapısı güçlü olmalıdır. Her merge doğrudan public release olmak zorunda değildir. Feature flags kullanılabilir. Human approval riskli aşamalarda korunabilir.

Long-Term Support Release

LTS sürümler daha uzun destek dönemi sunar. Security ve critical bug fix'ler belirli süre devam eder. Maintainer kapasitesi açısından ek branch yükü yaratır. Support policy açık olmalıdır. Her proje LTS modeli taşımak zorunda değildir.

Fixed-Date mi Fixed-Scope mu?

Bu seçim proje kültürünü ve release predictability seviyesini doğrudan etkiler. Gönüllü ekiplerde fixed-date ve esnek scope çoğu zaman daha sürdürülebilir olabilir. Çünkü contributor availability tam kontrol edilemez. Fixed-scope ise kritik platform dönüşümlerinde anlamlı olabilir. Her iki modelde de scope cut veya date adjustment mekanizması önceden tanımlanmalıdır.

Sabit Tarih–Esnek Kapsam

Tarih değişmez fakat hazır olmayan feature çıkarılır. Release cadence korunur. Contributor üzerinde son dakika baskısı azalır. Must-have ve optional scope ayrımı gerekir. Kullanıcı release tarihine daha fazla güvenebilir.

Sabit Kapsam–Esnek Tarih

Belirli işler tamamlanmadan release yapılmaz. Büyük migration veya major compatibility hedeflerinde kullanılabilir. Tarih tahmini belirsiz kalabilir. Scope creep özellikle tehlikelidir. Kullanıcı iletişimi confidence seviyesine göre yapılmalıdır.

Gönüllü Ekiplerde Hangisi Daha Uygun?

Çoğu gönüllü projede sabit tarih ve esnek kapsam daha insancıl olabilir. İnsanlar kişisel hayatlarına göre katkı verir. Feature yetişmediğinde suçluluk yaratmamak gerekir. Sonraki release train doğal çıkış sağlar. Yine de her projenin kullanım modeli farklıdır.

Scope Cut Mekanizması

Feature freeze öncesinde tamamlanmayan işler sonraki sürüme taşınabilir. Cut kriterleri önceden belirlenmelidir. Bir feature büyük ölçüde tamamlanmış olsa bile stabil değilse taşınabilir. Maintainer ve release manager kararı birlikte verebilir. Karar topluluğa açıkça duyurulmalıdır.

Release Predictability

Predictability kullanıcıların upgrade planlamasını kolaylaştırır. Sabit cadence bu konuda avantaj sağlayabilir. Ancak sürekli date kaçırılıyorsa confidence düşer. Planlanan ve gerçek tarih düzenli ölçülmelidir. Predictability hedefi insanları zorlamadan süreç iyileştirmeye hizmet etmelidir.

Release Cadence Nasıl Belirlenir?

Release cadence proje değişiklik hızı ve kullanıcı beklentisine göre seçilmelidir. Haftalık release bazı library'ler için uygun olabilirken büyük platformlar için aşırı olabilir. Test süresi, downstream impact ve maintainer kapasitesi temel kriterlerdir. Çok sık release yapmak her zaman daha hızlı ürün anlamına gelmez. Cadence sürdürülebilir olduğunda topluluk uzun vadede daha sağlıklı çalışır.

Haftalık

Haftalık cadence küçük patch ve hızlı değişen library'lerde kullanılabilir. Automation güçlü olmalıdır. Release overhead düşük tutulmalıdır. Kullanıcıların upgrade yükü değerlendirilmelidir. Critical bug dışında her hafta release zorunluluğu gereksiz baskı yaratmamalıdır.

Aylık

Aylık release birçok proje için dengeli model olabilir. Development ve stabilization için yeterli pencere sağlar. Kullanıcı değişiklikleri düzenli alır. Changelog daha yönetilebilir kalır. Contributor'lar hedef tarihleri kolayca görebilir.

6–8 Haftalık

Altı veya sekiz haftalık cadence daha büyük feature set'leri için uygundur. Feature freeze ve RC aşaması rahat planlanabilir. Maintainer'lar review için daha geniş zaman bulur. Kullanıcılar düzenli fakat çok sık olmayan sürümler alır. Büyük ekosistemlerde bu model sık görülür.

Çeyreklik

Çeyreklik release daha fazla integration süresi sunar. Büyük platform veya enterprise kullanıcı kitlesi için uygun olabilir. Scope büyümesine dikkat edilmelidir. Patch release'ler arada devam edebilir. Roadmap ile quarter planlama kolay eşleşir.

Altı Aylık

Altı aylık cadence büyük değişiklik paketleri için kullanılabilir. Kullanıcı hazırlığı daha uzun olabilir. Release başına risk ve scope artabilir. RC süreci daha önemli hale gelir. Maintainer burnout riski final haftalarda yükselmemelidir.

Yıllık Major Release

Yıllık major release breaking change'leri bir araya getirebilir. Kullanıcı migration süresi önceden planlanır. Minor ve patch release'ler yıl içinde devam edebilir. Büyük version jump marketing hedefi değil teknik gerekçeye dayanmalıdır. Compatibility policy açık olmalıdır.

Cadence Seçim Kriterleri

Cadence seçiminde tek kriter “daha hızlı olmak” değildir. Maintainer kapasitesi, kullanıcı ihtiyacı, değişiklik hızı, test süresi ve downstream etki birlikte değerlendirilir. Her release aynı operasyon yükünü getirir. Çok yavaş cadence de kullanıcıların fix beklemesine yol açabilir. Veriyle birkaç cycle izlenerek uygun aralık bulunabilir.

Maintainer Kapasitesi

Maintainer'ların review ve release için gerçek zamanı olmalıdır. Sık cadence sürekli release hazırlığına dönüşebilir. Feature development için alan kalmaz. Burnout belirtileri takip edilmelidir. Kapasite düşükse cadence uzatılabilir veya automation geliştirilebilir.

Kullanıcı İhtiyacı

Kullanıcıların fix ve feature bekleme toleransı farklıdır. Developer tool kullanıcıları daha hızlı update isteyebilir. Enterprise sistemler daha yavaş ve stabil sürüm tercih edebilir. Support kanallarındaki geri bildirim analiz edilmelidir. Cadence kullanıcı davranışıyla uyumlu olmalıdır.

Değişiklik Hızı

Aktif development oranı release sıklığını etkiler. Ayda çok az değişiklik varsa haftalık sürüm anlamsız olabilir. Çok hızlı değişen projede yıllık release çok yavaş kalabilir. Commit sayısı yerine merge edilen anlamlı değişiklikler değerlendirilmelidir. Trend zaman içinde izlenebilir.

Test Süresi

Full test suite birkaç gün sürüyorsa haftalık cadence maliyetli olabilir. Parallelization veya test optimization yapılabilir. Stabilization window test süresine göre belirlenmelidir. Manuel test ihtiyacı ayrıca eklenir. Release takvimi gerçek QA süresini hesaba katmalıdır.

Downstream Etki

Library release'i yüzlerce downstream projeyi etkileyebilir. Çok sık breaking change ekosistemi yorar. Compatibility policy ve deprecation window gerekir. Release notes migration bilgisi sağlamalıdır. Downstream feedback cadence kararında kullanılabilir.

Daha Sık Release Her Zaman Daha İyi midir?

Daha sık release kısa feedback döngüsü sağlayabilir fakat her proje için otomatik avantaj değildir. Release overhead, testing, maintainer yorgunluğu ve downstream upgrade maliyeti artabilir. Contributor'lar sürekli freeze ve release hazırlığı arasında feature geliştirmeye odaklanamayabilir. Sürdürülebilir hız en yüksek release sayısından daha değerlidir. Cadence ekip sağlığı ve kullanıcı deneyimiyle birlikte değerlendirilmelidir.

Release Overhead

Her release version bump, changelog, build, test ve publish işi getirir. Automation yükü azaltabilir. Yine de review ve approval zamanı gerekir. Çok küçük değişiklikler için sürekli release yapmak maliyet yaratabilir. Overhead metriği cycle review'da incelenebilir.

Testing Yükü

Her release regression testing gerektirir. Suite pahalıysa sık release compute ve insan maliyetini artırır. Test reliability kritik hale gelir. Flaky testler daha sık problem çıkarır. Cadence test kapasitesiyle uyumlu olmalıdır.

Maintainer Burnout

Sürekli release deadline'ı maintainer üzerinde baskı yaratabilir. Gönüllü projelerde bu özellikle tehlikelidir. Release rotation ve cooldown period yardımcı olur. Scope daraltma kültürü oluşturulmalıdır. İnsan sağlığı takvimden önce gelir.

Downstream Upgrade Maliyeti

Her release downstream kullanıcı için upgrade işi doğurabilir. Otomatik dependency update bile test gerektirir. Breaking change'ler daha yüksek maliyetlidir. Version support policy kullanıcıyı rahatlatabilir. Release sıklığı ekosistemin kapasitesini aşmamalıdır.

Contributor Odaklanması

Sürekli freeze dönemleri contributor'ın uzun feature üzerinde çalışmasını zorlaştırabilir. Next branch veya feature flag kullanılabilir. Release train yaklaşımı hazır olmayan işi sonraki trene taşır. Böylece contributor acele etmek zorunda kalmaz. Plan odaklanmayı desteklemelidir.

Hız ve Sürdürülebilirlik Dengesi

İyi cadence kullanıcıya yeterince hızlı değer sunarken ekibi tüketmez. Bu denge tek seferde bulunmayabilir. Release retrospective verisi kullanılabilir. Overhead, predictability ve burnout sinyalleri birlikte incelenir. Gerektiğinde cadence değiştirilir.

Semantic Versioning ile Release Planlaması

Semantic Versioning sürüm değişikliğinin kullanıcıya etkisini daha anlaşılır hale getirebilir. Major, minor ve patch ayrımı API compatibility beklentisi oluşturur. Bununla birlikte yalnız version numarası kötü release communication'ı çözmez. Breaking change ve migration açık biçimde dokümante edilmelidir. Pre-release sürümleri topluluk testini destekleyebilir.

Major Version

Major version backward compatibility bozan değişiklikleri işaretlemek için kullanılır. Migration guide hazırlanmalıdır. Deprecation süresi mümkün olduğunda önceden verilmelidir. Downstream ekosistem testleri yapılmalıdır. Major release daha uzun planlama gerektirebilir.

Breaking Changes

Breaking change kullanıcı kodunu değiştirmeyi gerektirebilir. Release notes içinde görünür biçimde belirtilmelidir. Alternatif API veya migration adımı sağlanmalıdır. Birden fazla breaking change mümkünse aynı major release'te toplanabilir. Kullanıcıya hazırlık süresi verilmelidir.

Minor Version

Minor version backward-compatible yeni özellikleri ifade eder. Existing kullanıcıların kodu çalışmaya devam etmelidir. Feature documentation release öncesi hazır olmalıdır. Deprecation duyuruları da minor sürümlerde başlayabilir. Compatibility testleri yine gereklidir.

Backward-Compatible Features

Yeni feature mevcut davranışı bozmamalıdır. Default değer değişikliği bile beklenmeyen etki yaratabilir. Test suite eski kullanım örneklerini korumalıdır. API contract açık olmalıdır. Yeni özellik optional biçimde sunulabilir.

Patch Version

Patch release backward-compatible bug fix'ler için kullanılır. Critical security patch de bu formatta yayınlanabilir. Scope küçük tutulmalıdır. Yeni riskli feature eklenmemelidir. Patch cadence daha sık olabilir.

Bug Fixes

Bug fix mevcut davranışın hatasını düzeltir. Regression testi eklemek önemlidir. Fix başka kullanıcı akışını bozmamalıdır. Release notes etkilenen alanı açıklayabilir. Critical olmayan fix'ler sonraki patch'e taşınabilir.

Pre-Release Versions

Pre-release kullanıcıların final sürümden önce test yapmasını sağlar. Alpha, beta ve RC farklı olgunluk seviyelerini gösterebilir. Proje bu isimlerin ne anlama geldiğini tanımlamalıdır. Production kullanım tavsiyesi açıkça belirtilmelidir. Feedback issue template ile toplanabilir.

Alpha

Alpha erken test sürümü olabilir. API değişebilir ve hata oranı yüksek olabilir. Deneysel kullanıcılar hedeflenir. Documentation eksik olabilir. Stability expectation açıkça belirtilmelidir.

Beta

Beta feature set büyük ölçüde tamamlanmış olabilir. Daha geniş topluluk testine açılır. API değişiklikleri azalmalıdır. Bug raporu ve compatibility feedback toplanır. Release candidate öncesi sorunlar çözülür.

Release Candidate

RC final sürüme yakın adaydır. Yeni feature kabulü durmalıdır. Yalnız blocker ve kritik regression fix'leri girebilir. Kullanıcılar upgrade ve packaging testleri yapabilir. Yeni blocker çıkmazsa GA'ya ilerlenir.

Açık Kaynak Release Zaman Çizelgesi Nasıl Oluşturulur?

Release timeline planning start ile başlar ve post-release monitoring ile devam eder. Scope commitment, development, freeze, RC, documentation ve final testing ayrı aşamalar olabilir. Her aşamanın giriş ve çıkış kriteri bulunmalıdır. Böylece son hafta yapılması gereken işler önceden görünür hale gelir. Açık Kaynak Projelerde Ekip Planlaması ve Dağıtım Zaman Çizelgeleri yaklaşımında timeline bir takvim değil operasyon akışıdır.

Planning Start

Release hedefi ve capacity değerlendirilir. Roadmap'ten aday işler çıkarılır. Dependency ve riskler incelenir. Release Manager atanabilir. İlk scope henüz commitment değildir.

Scope Commitment

Yakın release için gerçekçi işler seçilir. Must-have ve optional ayrımı yapılabilir. Contributor availability hesaba katılır. Scope değişim policy'si açıklanır. Sonraki aşamada gereksiz yeni iş eklenmemelidir.

Development

Issue ve PR çalışmaları aktif ilerler. Review queue düzenli takip edilir. Dependency blocker'ları erken çözülür. Testler her merge ile çalışır. Feature progress milestone'a yansır.

Feature Freeze

Yeni feature kabulü durur veya güçlü biçimde sınırlandırılır. Amaç release'i stabil hale getirmektir. Hazır olmayan işler sonraki sürüme taşınır. Exception process kritik durumlar için kullanılabilir. Freeze tarihi önceden duyurulmalıdır.

Code Freeze

Code freeze döneminde yalnız kritik fix'ler kabul edilebilir. Merge yetkisi daraltılabilir. Regression riski yüksek değişiklikler ertelenir. Release branch protection güçlendirilebilir. Bu aşama final test için stabil kod tabanı sağlar.

Release Candidate

RC artifact'ları final release'e yakın biçimde üretilir. Community testing başlar. Packaging ve upgrade senaryoları denenir. Kritik hata bulunursa yeni RC çıkarılır. Final approval bu veriye dayanır.

Documentation Freeze

Dokümantasyon ana feature set ile uyumlu hale getirilir. Son dakikada yeni büyük bölüm eklenmez. Typos ve kritik açıklama düzeltmeleri devam edebilir. Migration guide tamamlanır. Release notes final hale gelir.

Final Testing

Unit, integration ve end-to-end testler tamamlanır. Critical platform matrix kontrol edilir. Security scans tekrar çalıştırılabilir. Upgrade ve rollback senaryoları denenir. Sonuçlar go / no-go toplantısına taşınır.

Go / No-Go

Release kriterleri toplu değerlendirilir. Critical bug veya security blocker varsa no-go kararı alınabilir. Karar tek kişinin sezgisine bağlı olmamalıdır. Maintainer approval ve release manager değerlendirmesi birleştirilebilir. No-go başarısızlık değil kalite kararıdır.

General Availability

Final tag ve artifact'lar yayınlanır. Package registry ve container image hazırlanabilir. Announcement paylaşılır. Changelog ve migration guide erişilebilir olmalıdır. Checksums veya signatures gerekiyorsa doğrulanır.

Post-Release Monitoring

Issue, crash ve security feedback yakından izlenir. İlk günler hızlı response penceresi oluşturulabilir. Critical regression varsa hotfix planlanır. Telemetry mevcutsa privacy kuralları içinde değerlendirilir. Retrospective için notlar toplanır.

12 Haftalık Örnek Açık Kaynak Release Takvimi

On iki haftalık örnek takvim orta ölçekli bir proje için kullanılabilir. İlk iki hafta roadmap ve scope, sonraki dört hafta development, ardından integration ve stabilization gelir. Feature freeze dokuzuncu haftada yapılabilir. Onuncu hafta RC ve on birinci hafta stabilizasyon için ayrılır. On ikinci hafta release yapılır ve hemen ardından retrospective ile süreç gözden geçirilir.

1–2. Hafta — Roadmap ve Scope

Release hedefi belirlenir ve candidate issue'lar seçilir. Dependency ve maintainer kapasitesi incelenir. Büyük feature'lar owner alır. Risk listesi oluşturulur. Scope commitment ikinci haftanın sonunda yapılabilir.

3–6. Hafta — Development

Feature ve bug fix çalışmaları aktif ilerler. Reviewer rotation uygulanır. Haftalık milestone health check yapılır. Blocked işler erken görünür hale getirilir. Documentation draft paralel başlayabilir.

7–8. Hafta — Integration

Cross-component integration öncelik kazanır. Büyük PR'lerin merge'i tamamlanır. Dependency testleri çalıştırılır. Feature eksikleri görünür hale gelir. Scope cut ihtiyacı değerlendirilir.

9. Hafta — Feature Freeze

Yeni feature kabulü durur. Hazır olmayan işler sonraki milestone'a taşınır. Regression bug'ları öncelik kazanır. Documentation feature set'e göre finalleştirilir. RC için branch hazırlanır.

10. Hafta — Release Candidate

RC1 artifact'ları yayınlanır. Community testing çağrısı yapılır. Packaging ve upgrade senaryoları kontrol edilir. Bulunan blocker'lar hızlı biçimde işlenir. Gerekirse RC2 hazırlanır.

11. Hafta — Stabilization

Yeni feature yoktur. Critical ve high-priority regression'lar çözülür. Final documentation kontrol edilir. Security scan tamamlanır. Go / no-go kriterleri değerlendirilir.

12. Hafta — Release

Final version ve tag hazırlanır. Artifact signing ve publish işlemleri yapılır. Release notes paylaşılır. Community announcement yayınlanır. İlk günlerde monitoring yoğunlaştırılır.

Release Sonrası Retrospective

Planlanan ve gerçek tarih karşılaştırılır. Carry-over issue oranı değerlendirilir. Review bottleneck ve flaky test sorunları incelenir. Burnout sinyalleri konuşulur. Sonraki release için somut iyileştirme aksiyonları seçilir.

Feature Freeze Nedir?

Feature freeze release'e yeni özellik eklemenin durdurulduğu dönemdir. Amaç mevcut kodu stabilize etmektir. Kritik fix ve release blocker çalışmaları devam eder. Hazır olmayan feature sonraki release'e taşınmalıdır. Freeze'in anlamı ve exception kriterleri önceden yazılmalıdır.

Feature Freeze Tarihi

Freeze tarihi release takviminde erken duyurulur. Contributor'lar planlarını buna göre yapabilir. Tarih sürekli değişirse değerini kaybeder. Fixed-date modelde güçlü scope cut noktasıdır. Yaklaşırken hatırlatma yapılabilir.

Freeze Sonrası Kabul Edilebilecek Değişiklikler

Bug fix, documentation ve düşük riskli düzeltmeler kabul edilebilir. Yeni büyük feature normalde alınmamalıdır. Güvenlik çalışmaları istisna olabilir. Her projenin kriteri farklı olabilir. Policy açıkça dokümante edilmelidir.

Exception Process

Bazen kritik feature freeze sonrası tamamlanabilir. Exception gerekçesi ve risk değerlendirmesi gerekir. Release Manager ve ilgili maintainer onay verebilir. Her iş exception olursa freeze anlamsız hale gelir. Bu nedenle süreç sınırlı kullanılmalıdır.

Release Blocker'lar

Blocker final sürümün güvenli veya kullanılabilir olmasını engeller. Security flaw veya data loss riski örnek olabilir. Freeze döneminde bu işler en yüksek önceliği alır. Owner açıkça belirlenir. Çözülmezse no-go kararı verilebilir.

Feature'ı Bir Sonraki Release'e Taşımak

Feature yetişmediğinde contributor üzerinde son dakika baskısı kurmak gerekmez. Issue sonraki milestone'a taşınabilir. Partial code feature flag arkasında tutulabilir veya merge edilmez. Kullanıcı beklentisi güncellenir. Bu yaklaşım sürdürülebilir cadence sağlar.

Code Freeze ve Stabilizasyon Süreci

Code freeze feature freeze'den daha sıkı dönemdir. Amaç final release öncesi kod değişikliğini minimuma indirmektir. Yalnız kritik bug ve regression fix'leri kabul edilebilir. Branch protection ve merge approval güçlendirilebilir. Stabilizasyon penceresi testing ekibine sabit taban sağlar.

Bug Fix Only Dönemi

Yeni işlev eklenmez. Mevcut hatalar çözülür. Her fix yeni regression riski açısından değerlendirilir. Test eklenmesi beklenir. Düşük öncelikli bug sonraki patch'e bırakılabilir.

Critical Fix

Critical fix release'i engelleyen sorunu çözer. Review hızlandırılabilir fakat kalite kontrolü kaldırılmamalıdır. En az iki reviewer gerekebilir. Targeted regression test çalıştırılır. Fix sonrası yeni RC çıkarılabilir.

Regression Testing

Regression testing daha önce çalışan davranışların bozulmadığını kontrol eder. Otomatik suite temel araçtır. Kritik kullanıcı akışları manuel de test edilebilir. Test kapsamındaki boşluklar retrospective'e eklenir. Flaky test sonuçları ayrı ele alınmalıdır.

Branch Protection

Release branch için doğrudan push kapatılabilir. Required review ve CI şartı getirilebilir. Yetki dar tutulur. Acil fix bile kayıtlı PR üzerinden gidebilir. Audit trail korunur.

Merge Yetkileri

Freeze döneminde merge yetkisi belirli maintainers ile sınırlanabilir. Her değişiklik release riskine göre incelenir. Bypass yetkisi yalnız acil durumda kullanılır. Merge sonrası test zorunlu olur. Yetki policy'si önceden belgelenmelidir.

Riskli Değişiklikleri Ertelemek

Release öncesi büyük refactor genellikle kötü fikirdir. Kullanıcıya doğrudan fayda sağlamayan riskli değişiklik sonraki cycle'a taşınabilir. Stabilite öncelik kazanır. Maintainer “şimdi değil” diyebilmelidir. Bu karar teknik kalitenin parçasıdır.

Release Candidate Süreci Nasıl Yönetilir?

Release Candidate final sürüme yakın artifact'ın gerçek kullanıcılar ve contributor'lar tarafından test edilmesini sağlar. RC1 sonrası bulunan kritik sorunlar düzeltilir. Gerekirse RC2 veya sonraki adaylar çıkarılır. Her RC aynı build ve packaging sürecini final release gibi kullanmalıdır. Böylece GA günü sürpriz azalır.

RC1

RC1 ilk final adayıdır. Feature set artık değişmemelidir. Package ve binary'ler gerçek release formatında üretilir. Topluluğa test talimatları verilir. Feedback penceresi açıkça belirtilir.

Community Testing

Farklı işletim sistemi ve kullanım senaryoları topluluk tarafından test edilebilir. Maintainer ekibinin kapsayamadığı kombinasyonlar bulunabilir. Test template paylaşmak sonuç kalitesini artırır. Kullanıcı hangi version'ı test ettiğini belirtmelidir. Kritik feedback hızlı triage edilmelidir.

Bug Reporting

RC bug'ları özel label ile takip edilebilir. Reproduction steps zorunlu olabilir. Severity hızlı belirlenmelidir. Duplicate raporlar birleştirilir. Release blocker olanlar milestone'da görünür tutulur.

RC2 ve Sonraki Adaylar

RC1 sonrası önemli fix yapılırsa yeni aday çıkarılabilir. Her aday changelog farkı taşımalıdır. Testlerin tamamı yeniden koşulabilir. Sonsuz RC zinciri underlying quality sorununa işaret edebilir. Root cause değerlendirilmelidir.

Release Readiness

Readiness yalnız testlerin yeşil olması değildir. Documentation, package, security ve migration hazırlığı da tamamlanmalıdır. Blocker sayısı sıfıra inmeli veya kabul kriterine uymalıdır. Maintainer approval alınır. Confidence toplulukla paylaşılabilir.

Final Approval

Final approval release manager ve gerekli maintainers tarafından verilebilir. High-risk component owner onayı gerekebilir. No-go seçeneği gerçek olmalıdır. Approval kaydı release issue içinde tutulabilir. Sonrasında immutable publish süreci başlar.

Go / No-Go Kararı İçin Release Kriterleri

Go / no-go kararı sezgiye değil önceden belirlenmiş kriterlere dayanmalıdır. Critical bug sayısı, test sonucu, security finding, documentation ve package readiness birlikte değerlendirilir. Upgrade ve migration testleri major sürümlerde özellikle önemlidir. Maintainer approval teknik sahipliği doğrular. Kriterler release'in başında tanımlandığında son dakika tartışmaları azalır.

Critical Bug Sayısı

Critical bug için kabul edilen eşik çoğu projede sıfır olabilir. High severity bug'lar ayrıca değerlendirilir. Severity tanımı açık olmalıdır. Blocker issue owner almalıdır. Çözülemiyorsa release ertelenebilir.

Test Başarı Oranı

Required test suite tamamen geçmelidir. Flaky testler ayrı kategoride tutulmalıdır. Test coverage tek başına readiness değildir. Kritik platform matrix sonuçları incelenir. Manuel test sonucu gerekiyorsa kaydedilir.

Security Findings

Critical security finding açık kalmamalıdır. High risk issue release policy'sine göre değerlendirilir. Scanner false positive olabilir, manuel review gerekir. Embargoed vulnerability özel süreç izler. Security Team final görüş verebilir.

Documentation Readiness

Yeni feature kullanımı belgelenmiş olmalıdır. Breaking change migration guide gerektirir. Release notes final olmalıdır. Outdated örnekler temizlenir. Kullanıcının upgrade sonrası ne yapacağını anlayabilmesi gerekir.

Package Readiness

Registry package'ları doğru metadata ve version taşımalıdır. Dependency bilgisi kontrol edilir. Container image gerekiyorsa hazırlanır. Checksums ve signatures doğrulanabilir olmalıdır. Publish dry-run yapılabilir.

Upgrade / Migration Testleri

Önceki desteklenen version'dan upgrade senaryosu denenmelidir. Data migration varsa rollback planı düşünülmelidir. Breaking changes gerçek örneklerle test edilir. Downstream compatibility sample kullanılabilir. Major release için kritik kriterdir.

Maintainer Approval

İlgili component maintainers release'e hazır olduğunu doğrular. Sessizlik otomatik onay sayılmayabilir. Lazy consensus policy varsa süre tanımlanmalıdır. Critical owner erişilemiyorsa escalation uygulanır. Approval kayıt altına alınır.

Release Blocker Nedir?

Release blocker sürümün güvenli veya temel kullanım için uygun olmadığını gösteren sorundur. Her bug blocker değildir. Security açığı, data loss riski veya kritik regression örnek olabilir. Blocker tanımı önceden belirlenirse tartışma azalır. Düşük öncelikli sorunlar sonraki patch release'e taşınabilir.

Security Blocker

Exploit edilebilir kritik vulnerability release'i durdurabilir. Fix private branch'te hazırlanabilir. Advisory zamanlaması koordine edilir. Security Team onayı gerekir. Release tarihinden önce güvenlik gelir.

Data Loss Riski

Kullanıcı verisinin kaybına yol açan hata ciddi blocker'dır. Migration veya storage değişiklikleri özellikle test edilmelidir. Reproduction netleştirilir. Fix sonrası targeted test eklenir. Risk çözülmeden GA yapılmamalıdır.

Critical Regression

Önceki sürümde çalışan temel feature yeni sürümde bozulmuşsa blocker olabilir. Kullanıcı etkisi yüksekse release ertelenir. Regression test eklenmelidir. Root cause açıklanır. Fix yeni RC ile doğrulanır.

API Compatibility

Beklenmeyen breaking API değişikliği kullanıcı entegrasyonunu bozabilir. SemVer contract ile çelişebilir. Ya değişiklik geri alınır ya major release planı yapılır. Downstream sample testleri yardımcı olur. Release notes gizli kırılmayı telafi etmez.

Packaging Problemi

Package registry'de yanlış artifact yayınlanması release'i kullanılamaz hale getirebilir. Missing dependency veya invalid signature ciddi sorundur. Dry-run ve staging registry kullanılabilir. Packaging pipeline test edilmelidir. Problem final release öncesi çözülmelidir.

Blocker Olmayan Hataları Sonraki Patch'e Taşımak

Her bug için release'i geciktirmek sürdürülebilir değildir. Düşük impact issue sonraki patch'e taşınabilir. Kullanıcıya known issues bölümü sunulabilir. Priority ve workaround değerlendirilir. Bu disiplin scope kontrolünü güçlendirir.

Pull Request Akışı Release Timeline'ı Nasıl Etkiler?

Release gecikmelerinin önemli bölümü development hızından değil PR akışından kaynaklanır. Review queue, change request döngüsü ve stale PR'ler timeline'ı uzatabilir. Çok büyük PR'ler reviewer kapasitesini tüketir. Bu nedenle PR lead time release health metric olarak izlenmelidir. Contributor sayısını artırmadan önce review kapasitesi değerlendirilmelidir.

PR Queue

Açık review bekleyen PR sayısı kuyruk sağlığını gösterir. Kuyruk sürekli büyüyorsa reviewer kapasitesi yetersiz olabilir. Priority label kullanılabilir. Release target PR'ler öne alınabilir. Eski PR'ler düzenli triage edilmelidir.

Review Lead Time

PR açılmasından ilk anlamlı review'a kadar geçen süre ölçülebilir. Uzun süre contributor motivasyonunu düşürür. Component bazında farklılık analiz edilebilir. SLE belirlemek faydalı olabilir. Ama gönüllü reviewer'a katı SLA dayatılmamalıdır.

Merge Time

Review tamamlandıktan merge'e kadar geçen süre de önemlidir. CI bekleme veya branch conflict gecikme yaratabilir. Merge queue automation yardımcı olur. Release branch policy süreyi etkiler. Metric bottleneck kaynağını bulmaya yarar.

Change Request Döngüsü

Reviewer yorumları contributor tarafından düzeltildikçe döngü oluşur. Belirsiz requirement çok tur yaratabilir. İlk review mümkün olduğunca toplu ve açık olmalıdır. Küçük nit'ler kritik geri bildirimden ayrılabilir. Mentorluk tonu contributor retention için önemlidir.

Reviewer Bottleneck

Birkaç reviewer bütün repository'yi kontrol ediyorsa kuyruk büyür. Component ownership bu yükü dağıtabilir. Contributor'lar reviewer olarak yetiştirilebilir. Review rotation kullanılabilir. Bottleneck release planında açık risk olarak tutulmalıdır.

Stale Pull Requests

Uzun süre güncellenmeyen PR'ler backlog'u şişirir. Otomatik stale label kullanılabilir. Contributor'a nazik reminder verilir. Gerekirse PR kapatılıp daha sonra yeniden açılabilir. Eski PR'lerde branch conflict ve requirement değişimi artar.

PR Size

Küçük PR'ler genellikle daha hızlı review edilir. Büyük refactor daha fazla context gerektirir. Feature işi mantıklı parçalara bölünebilir. Ancak yapay biçimde aşırı küçük PR üretmek de review overhead yaratır. Amaç anlaşılabilir change set'tir.

Maintainer ve Reviewer Darboğazı Nasıl Yönetilir?

Maintainer bottleneck açık kaynak projelerde en yaygın büyüme sorunlarından biridir. Contributor sayısı arttıkça review talebi de artar. Review rotation, component ownership ve reviewer pool yükü dağıtabilir. Uzun vadede contributor'ları reviewer seviyesine taşımak gerekir. Sadece daha fazla issue açmak bu problemi çözmez.

Review Capacity

Haftalık review kapasitesi tarihsel veriden tahmin edilebilir. Open PR sayısıyla karşılaştırılır. Kapasite düşerse new feature intake azaltılabilir. Release-critical PR'ler öncelik kazanır. Review işi gerçek roadmap kapasitesi olarak kabul edilmelidir.

Review Rotation

Maintainer'lar haftalık veya günlük rotation kullanabilir. Belirli kişi o dönemde review önceliği taşır. Diğer maintainer development'a odaklanabilir. Rotation burnout'u azaltabilir. Küçük ekiplerde daha esnek uygulanmalıdır.

Component Ownership

PR'ler ilgili component reviewer'ına yönlendirilir. Merkezi kuyruğun yükü azalır. Ownership açık olmalıdır. Component owner izindeyse backup kişi devreye girer. Bus factor düzenli kontrol edilir.

CODEOWNERS

Path bazlı otomatik reviewer ataması yapılabilir. Kritik alanlarda iki owner tanımlanabilir. Ownership dosyası güncel tutulmalıdır. Eski takım isimleri review'u geciktirebilir. Otomasyon insan yönetişimini destekler.

Reviewer Pool

Belirli component için birden fazla reviewer bulunabilir. PR yükü uygun kişiye dağılır. Uzmanlık seviyesi etiketlenebilir. New reviewer ilk dönemde pair review yapabilir. Pool zaman içinde contributor'larla büyütülmelidir.

Contributor'ları Reviewer Olarak Yetiştirmek

Düzenli kaliteli katkı sunan contributor'lara review sorumluluğu verilebilir. Önce küçük PR'lerde başlatılabilir. Maintainer feedback sağlar. Governance promotion kriterlerini açıklar. Bu yöntem review kapasitesini sürdürülebilir biçimde artırır.

PR Review SLE

Service Level Expectation katı SLA yerine hedef response süresi belirleyebilir. Örneğin ilk review için birkaç iş günü hedeflenebilir. Gönüllü projelerde esnek olmalıdır. Community page beklentiyi açıklar. Metric suçlamak için değil sistem iyileştirmek için kullanılır.

Issue Triage Release Planlamasına Nasıl Bağlanır?

Issue triage backlog ile release planı arasında köprü kurar. Bug, feature, security, documentation ve technical debt talepleri sınıflandırılır. Priority ve target release bilgisi gerektiğinde eklenir. Needs triage kuyruğu düzenli temizlenmelidir. Aksi halde roadmap gerçek proje ihtiyaçlarını yansıtmaz.

Bug

Bug mevcut davranışın beklenenden sapmasıdır. Severity ve reproduction bilgisi gerekir. Release target etkiye göre belirlenir. Critical bug mevcut release'e alınabilir. Düşük priority bug backlog'da kalabilir.

Feature Request

Feature request kullanıcı ihtiyacını açıklamalıdır. Çözüm tasarımı tek seçenek olarak dayatılmamalıdır. Roadmap uyumu değerlendirilir. Contributor ilgisi destekleyici sinyal olabilir. Her request milestone almak zorunda değildir.

Security

Security issue public tracker yerine private channel gerektirebilir. Severity hızla belirlenir. Normal release'ten bağımsız patch planlanabilir. Advisory ve CVE süreci koordine edilir. Security işi en yüksek öncelik kazanabilir.

Documentation

Dokümantasyon issue'ları release milestone'a bağlanabilir. Yeni feature docs olmadan tamamlanmış sayılmayabilir. Broken example yüksek kullanıcı etkisi yaratabilir. Documentation Team triage sürecine dahil edilmelidir. Bu işler son haftaya bırakılmamalıdır.

Technical Debt

Technical debt issue'ları görünür backlog'da tutulmalıdır. Kullanıcı feature'ı kadar oy almayabilir. Maintainer risk ve bakım maliyetini değerlendirmelidir. Her release belirli debt budget ayırabilir. Uzun süre ertelenen borç review hızını düşürebilir.

Priority

Priority kullanıcı etkisi, güvenlik ve stratejik uyuma göre belirlenebilir. P0 veya P1 gibi sistem kullanılabilir. Her issue'nun yüksek priority olması sistemi anlamsızlaştırır. Priority düzenli gözden geçirilir. Release planning sırasında yeniden değerlendirilebilir.

Release Target

Her issue'ya release target vermek gerekmez. Gerçek commitment alan işler milestone'a eklenir. Candidate ve committed ayrımı yapılabilir. Scope cut durumunda target değişir. Kullanıcıya bunun plan olduğunu anlatmak önemlidir.

Needs Triage

Yeni issue ilk olarak needs triage durumuna girebilir. Belirli periyotta maintainers inceler. Duplicate veya invalid talepler kapatılır. Doğru label ve component atanır. Kuyruk büyürse triage rotation kullanılabilir.

Açık Kaynak Projelerde Önceliklendirme

Önceliklendirme yalnız en fazla oy alan feature'ı yapmak değildir. Kullanıcı etkisi, security, ecosystem impact, contributor ilgisi, effort, dependency ve stratejik uyum birlikte değerlendirilmelidir. Community voting yararlı sinyal sağlar fakat sessiz kullanıcıların ihtiyaçlarını göstermeyebilir. Maintainer sürdürülebilirlik sorumluluğunu korumalıdır. Karar gerekçesi mümkün olduğunca şeffaf paylaşılmalıdır.

Kullanıcı Etkisi

Kaç kullanıcının etkilendiği ve problemin ne kadar ciddi olduğu incelenir. Bir küçük bug milyonlarca kullanıcıyı etkileyebilir. Support issue ve telemetry veri sağlayabilir. Sadece social media görünürlüğüne bakılmamalıdır. Etki priority için güçlü kriterdir.

Security Impact

Security issue düşük kullanıcı sayısına rağmen yüksek priority taşıyabilir. Exploitability ve severity değerlendirilir. Private coordination gerekebilir. Normal roadmap işi ertelenebilir. Güvenlik önceliği açık policy ile desteklenmelidir.

Ekosistem Etkisi

Bir API değişikliği yüzlerce downstream projeyi etkileyebilir. Bu nedenle küçük code change büyük ekosistem riski taşıyabilir. Compatibility ve migration maliyeti değerlendirilir. Ecosystem maintainer'larından feedback alınabilir. Priority yalnız internal effort'a göre verilmemelidir.

Contributor İlgisi

Contributor'ın belirli işi yapmak istemesi değerli kapasite sinyalidir. Roadmap'te orta priority iş community katkısıyla hızlı tamamlanabilir. Yine de maintainer review kapasitesi olmalıdır. Contributor ilgisi security veya user impact kriterlerini tamamen geçmemelidir. Denge kurulmalıdır.

Effort

Effort yaklaşık büyüklük göstergesidir. Küçük yüksek etkili işler öne alınabilir. Büyük feature parçalara bölünebilir. Volunteer projede saat tahmini fazla kesin olmamalıdır. Complexity band yeterli olabilir.

Dependency

Başka işlerin önünü açan issue yüksek leverage sağlayabilir. Dependency graph görünür olmalıdır. Blocked işler zaman kaybı yaratır. Upstream bekleniyorsa alternatif plan düşünülür. Priority bağımlılık bağlamıyla değerlendirilir.

Strategic Alignment

İş proje vizyonunu destekliyor mu kontrol edilir. Popüler ama core amaçtan uzak talepler reddedilebilir. Stratejik uyum roadmap bütünlüğünü korur. Karar kullanıcıya açıklanabilir. Her fırsatı takip etmek odak kaybına yol açar.

Community Voting'in Sınırları

Voting hangi taleplerin görünür olduğunu gösterir. Ancak büyük kurumsal kullanıcılar oy vermeyebilir. Güvenlik ve teknik borç düşük oy alabilir. Maintainer karar sorumluluğunu korumalıdır. Voting bir veri noktasıdır, tek karar mekanizması değildir.

Asenkron Ekip Planlaması Nasıl Yapılır?

Açık kaynak projeler farklı zaman dilimlerinde çalışan insanlardan oluşabilir. Bu nedenle issue-first communication ve yazılı karar kaydı önemlidir. RFC, ADR, discussion forum ve public meeting notes asenkron katılımı destekler. Toplantıda alınan karar yalnız katılanların bilgisinde kalmamalıdır. Time-zone bağımsız çalışma contributor erişimini genişletir.

Issue-First Communication

Önemli teknik konuşmalar issue veya discussion içinde kayıt altına alınabilir. Chat hızlı koordinasyon için kullanılabilir. Fakat karar chat geçmişinde kaybolmamalıdır. Issue summary son durumu açıklamalıdır. Yeni contributor bağlamı daha kolay yakalar.

RFC

RFC büyük değişiklikler için öneri dokümanıdır. Problem, seçenekler ve trade-off'lar açıklanır. Community belirli süre yorum yapabilir. Karar sonucu kaydedilir. Implementation ancak gerekli onay sonrası başlar.

ADR

Architecture Decision Record teknik kararın gerekçesini saklar. Alternatifler ve sonuç açıklanabilir. Kısa ve odaklı olmalıdır. Yeni maintainer geçmiş kararları anlayabilir. ADR yaşayan karar arşivi oluşturur.

Discussion Forums

Discussions açık uçlu fikir ve kullanıcı geri bildirimi için kullanılabilir. Issue tracker'ın iş kuyruğu olmaktan çıkmasını önler. Olgunlaşan fikir RFC veya issue'ya taşınabilir. Moderation gerekir. Karar sonucu bağlantılarla birleştirilmelidir.

Public Meeting Notes

Toplantı notları katılamayan contributor'ların bilgiye erişmesini sağlar. Kararlar ve action item'lar açıkça yazılmalıdır. Sadece konuşma transcript'i yeterli değildir. Owner ve tarih eklenebilir. Notes ilgili issue'lara bağlanır.

Decision Log

Decision log önemli kararların kısa indeksini tutar. Tarih, karar ve ilgili RFC linki bulunabilir. Tekrar eden tartışmaları azaltır. Yeni contributor onboarding için yararlıdır. Proje büyüdükçe daha değerli hale gelir.

Time-Zone Bağımsız Çalışma

Karar için herkesin aynı saat diliminde bulunması gerekmemelidir. Comment period yeterli süre tanımalıdır. Handoff notları kullanılabilir. Rotating meetings gerektiğinde senkron görüşmeleri daha adil hale getirir. Async-first kültür global katılımı güçlendirir.

RFC Süreçleri Release Takvimine Nasıl Dahil Edilir?

Büyük değişikliklerin RFC süresi release takviminde gerçek iş olarak planlanmalıdır. Draft, community review, comment period, karar ve implementation birbirinden zaman alır. RFC bitmeden development commitment vermek risklidir. Son tarih belirlemek tartışmanın sonsuza uzamasını önleyebilir. Feature freeze'den yeterince önce karar tamamlanmalıdır.

RFC Draft

Problem ve önerilen çözüm hazırlanır. Alternatifler değerlendirilir. Open questions açıkça yazılır. Draft owner belirlenir. İlk sürüm mükemmel olmak zorunda değildir.

Community Review

Contributor ve kullanıcılar geri bildirim verebilir. İlgili component maintainers özellikle çağrılır. Review süresi yeterli olmalıdır. Büyük değişiklik hafta sonu içinde kapatılmamalıdır. Feedback summary hazırlanabilir.

Comment Period

Belirli başlangıç ve bitiş tarihi tartışmaya sınır koyar. Global time zone'lar düşünülmelidir. Tatil dönemleri hesaba katılır. Kritik yeni bilgi gelirse süre uzatılabilir. Lazy consensus uygulanabilir.

Decision

Proposal kabul, ret veya revizyon kararı alabilir. Gerekçe yazılı tutulmalıdır. Her yorumun tamamen çözülmesi gerekmeyebilir. Dissenting view kaydedilebilir. Karar implementation issue'larına bağlanır.

Implementation

Kabul edilen RFC issue ve milestone'lara ayrılır. Owner'lar belirlenir. Dependency ve test planı eklenir. Scope release timeline'a uygun hale getirilir. Büyük iş birkaç release'e bölünebilir.

RFC İçin Son Tarih Belirlemek

Release'e girecek RFC için decision deadline belirlenebilir. Bu tarih feature freeze'den önce olmalıdır. Sonrasında kabul edilen öneri sonraki release'e kalabilir. Böylece son dakika mimari değişiklikleri azalır. Deadline gönüllü review'u zorlamayacak kadar geniş tutulmalıdır.

Küresel Açık Kaynak Ekiplerinde Zaman Dilimi Planlaması

Küresel ekiplerde tek toplantı saati herkese adil değildir. Async-first model, rotating meetings ve handoff yaklaşımı daha kapsayıcıdır. Follow-the-sun bazı operasyonlarda yararlı olabilir. Tatil ve konferans takvimleri release planında dikkate alınmalıdır. Contributor'ın gece toplantısına düzenli katılması beklenmemelidir.

Async-First

Kararlar önce yazılı kanalda paylaşılır. Toplantı destekleyici araç olur. Discussion ve issue summary bağlamı korur. İnsanlar kendi saatlerinde katkı yapabilir. Bu model global contributor sayısını artırabilir.

Rotating Meeting Times

Düzenli toplantı farklı haftalarda farklı saatlerde yapılabilir. Aynı bölgenin sürekli fedakârlık yapması önlenir. Notlar her durumda paylaşılır. Katılım zorunlu olmamalıdır. Kritik karar için asenkron onay penceresi korunur.

Handoff

Bir ekip gün sonunda durum notu bırakabilir. Başka time zone kişi devam edebilir. Blocker ve next action açık yazılmalıdır. Ownership karışmamalıdır. Özellikle incident veya release week için yararlıdır.

Follow-the-Sun

Farklı bölgeler işi sırayla devralabilir. CI incident veya security response için faydalıdır. Yeterli context transferi gerekir. Küçük gönüllü projelerde formal model gereksiz olabilir. Kapasiteye göre uygulanmalıdır.

Tatil Takvimi

Global tatiller planlamada görünür olmalıdır. Aynı hafta birkaç maintainer unavailable olabilir. Critical freeze tarihi bu dönemlere denk gelmemelidir. Public calendar kullanılabilir. Contributor'ın kişisel tatilini açıklaması zorunlu olmamalıdır.

Konferans ve Community Event Dönemleri

Büyük etkinlikler maintainer availability'yi etkileyebilir. Aynı zamanda contribution artışı da yaratabilir. Release'i konferans gününe koymak riskli olabilir. Announcement için etkinlik avantajı varsa ekstra yedekleme yapılmalıdır. Takvim topluluk ritmine göre planlanmalıdır.

Multi-Repository Projelerde Release Koordinasyonu

Birden fazla repository kullanan projelerde release tek repo takviminden daha zor hale gelir. Dependency graph ve shared milestone koordinasyonun temelidir. Component versioning ve release order önceden belirlenmelidir. Cross-repository issue'lar merkezi görünümde takip edilebilir. Integration testing son aşamada değil development boyunca yapılmalıdır.

Repository Dependency Graph

Hangi repository'nin hangisine bağlı olduğu görünür olmalıdır. Version constraint'ler kaydedilebilir. Upstream gecikmesi downstream release'i etkiler. Graph automation ile üretilebilir. Critical path planlamada kullanılır.

Shared Milestone

Aynı release theme'i birden fazla repository issue'sunu içerebilir. Shared milestone ortak target date sağlar. Her repo kendi local workflow'unu sürdürebilir. Merkezi dashboard health durumunu gösterir. Owner bilgisi repo bazında tutulur.

Component Versioning

Her component bağımsız version taşıyabilir. Bu esneklik release sıklığını artırabilir. Compatibility matrix gerektirir. Bir component upgrade diğerini zorunlu kılabilir. Documentation supported combinations'ı göstermelidir.

Release Order

Upstream library önce yayınlanıp downstream app sonra güncellenebilir. Order yanlışsa dependency resolution sorunu çıkabilir. Dry-run kullanılabilir. Package registry propagation süresi hesaba katılır. Release runbook sırayı açıkça belirtmelidir.

Cross-Repository Issues

Bir feature birkaç repository'de değişiklik gerektirebilir. Umbrella issue alt işleri bağlayabilir. Progress tek yerden izlenir. Bir repo tamamlanmadan diğeri merge edilmeyebilir. Coordination owner belirlenmelidir.

Integration Testing

Repository'ler ayrı ayrı yeşil olsa bile birlikte çalışmayabilir. Cross-repo test environment gerekir. Candidate versions birlikte test edilir. Contract test kullanılabilir. Integration sonucu go / no-go kriterine girebilir.

Umbrella Release

Birden fazla component tek ekosistem sürümü altında duyurulabilir. Her component kendi version'ını koruyabilir. Release notes ortak değişiklikleri açıklar. Kullanıcı hangi parçaları yükseltmesi gerektiğini öğrenir. Coordination maliyeti yüksek olabilir.

Monorepo ve Polyrepo Release Planlaması

Monorepo ve polyrepo farklı release avantajları ve maliyetleri taşır. Monorepo integration görünürlüğünü artırabilir ancak büyük CI yükü oluşturabilir. Polyrepo bağımsız versioning sağlar fakat coordination maliyeti yükselir. Seçim proje mimarisi ve ownership yapısına göre yapılmalıdır. Release modeli repository modasını takip etmek yerine gerçek ihtiyaçtan çıkmalıdır.

Monorepo Avantajları

Cross-component değişiklik tek PR'da yapılabilir. Integration testing daha kolay kurulabilir. Shared tooling merkezi yönetilir. Refactor atomic olabilir. Ownership yine component bazında ayrılmalıdır.

Monorepo Release Riskleri

Repository büyüdükçe CI süresi artabilir. Tek değişiklik bütün test suite'i tetikleyebilir. Bağımsız version ihtiyacı karmaşık hale gelebilir. Merge conflict sayısı artabilir. Release tooling iyi tasarlanmalıdır.

Polyrepo Avantajları

Component'ler bağımsız gelişebilir. CI ve release cycle ayrı olabilir. Ownership daha doğal ayrılır. Küçük repository contributor için anlaşılır olabilir. Deployment bağımsızlığı sağlar.

Polyrepo Koordinasyon Maliyeti

Cross-repo feature birden fazla PR gerektirir. Dependency order dikkat ister. Shared milestone veya umbrella issue gerekir. Release dashboard olmadan durum görünürlüğü zorlaşır. Automation bu maliyeti azaltabilir.

Independent Versioning

Her component ihtiyaç oldukça sürüm çıkarır. Kullanıcı yalnız kullandığı paketi yükseltebilir. Compatibility matrix önem kazanır. Changelog component bazında tutulur. Release cadence farklılaşabilir.

Synchronized Versioning

Bütün component'ler aynı version numarasını kullanabilir. Kullanıcı için paket seti daha anlaşılır olabilir. Küçük değişiklik bütün paketlerde version bump gerektirebilir. Release coordination daha merkezi olur. Ekosistem modeline göre karar verilmelidir.

Upstream ve Downstream Bağımlılıklarının Yönetimi

Açık kaynak proje kendi repository'sinden ibaret değildir. Upstream dependency ve downstream consumer ilişkileri release riskini etkiler. API compatibility ve deprecation window bu nedenle önemlidir. Migration guide kullanıcıya geçiş yolu sağlar. Büyük release öncesinde ekosistem testleri yapmak sürprizleri azaltır.

Upstream Dependency

Projenin kullandığı dış paket veya runtime upstream dependency'dir. Yeni major version compatibility çalışması gerektirebilir. Security patch hızlı upgrade gerektirebilir. Dependency roadmap izlenmelidir. Version pin policy açık olmalıdır.

Downstream Consumer

Projenizi kullanan uygulama veya library downstream consumer'dır. Breaking change onların kodunu etkileyebilir. Early RC paylaşmak feedback sağlar. Compatibility test suite oluşturulabilir. Release notes downstream perspective içermelidir.

API Compatibility

Public API contract açık olmalıdır. Minor release beklenmeyen kırılma yaratmamalıdır. Contract tests yardımcı olur. Internal API ile public API ayrımı dokümante edilmelidir. Deprecation süreci kullanıcıya zaman verir.

Deprecation Window

Eski API hemen kaldırılmak yerine belirli süre deprecated kalabilir. Warning kullanıcıya migration ihtiyacını gösterir. Removal target major version ile bağlanabilir. Çok uzun deprecation maintenance yükü yaratır. Policy dengeli olmalıdır.

Migration Guide

Breaking change için adım adım geçiş rehberi hazırlanmalıdır. Eski ve yeni kullanım örnekleri gösterilebilir. Otomatik migration tool varsa anlatılır. Common errors eklenebilir. Rehber release'den önce hazır olmalıdır.

Release Öncesi Ekosistem Testleri

Önemli downstream projeler RC ile test edilebilir. Compatibility kırılması erken yakalanır. Test otomatik nightly job olabilir. Dış maintainer feedback'i toplanır. Major release confidence artar.

CI/CD Pipeline Release Timeline'ını Nasıl Etkiler?

CI/CD pipeline release hızının görünmeyen altyapısıdır. Build, unit test, integration, security scan ve artifact publishing süreleri timeline'a doğrudan yansır. Pipeline güvenilir değilse maintainer manuel workaround üretir. Bu da release engineering yükünü artırır. Automation yalnız hız değil tekrar üretilebilirlik sağlamalıdır.

Build Time

Uzun build süresi PR feedback döngüsünü yavaşlatır. Cache ve parallelization kullanılabilir. Build süresi zaman içinde izlenmelidir. Ani artış regression göstergesi olabilir. Release window gerçek build süresini hesaba katmalıdır.

Unit Tests

Unit tests küçük davranışları hızlı doğrular. PR seviyesinde çalıştırılır. Stabil ve hızlı olmaları önemlidir. Çok yavaş unit suite development akışını bozar. Flaky test kabul edilmemelidir.

Integration Tests

Component'lerin birlikte çalışmasını kontrol eder. Daha pahalı olabilir. Merge öncesi veya scheduled çalıştırılabilir. Release candidate için tamamı zorunlu olabilir. Failure root cause kolay bulunabilir olmalıdır.

End-to-End Tests

E2E test gerçek kullanıcı akışını doğrular. Süre ve altyapı maliyeti yüksektir. Kritik senaryolar seçilmelidir. Her küçük PR'da tüm suite gerekmeyebilir. Release gate için final run yapılabilir.

Security Scans

Dependency ve code scanning pipeline'a eklenebilir. False positive triage süreci olmalıdır. Critical finding merge veya release'i engelleyebilir. Scan tool output tek başına karar değildir. Security Team değerlendirmesi gerekir.

Packaging

Final artifact üretimi automated olmalıdır. Local developer makinesine bağlı olmamalıdır. Reproducible build hedeflenebilir. Package metadata test edilir. RC ve final aynı pipeline'ı kullanmalıdır.

Artifact Publishing

Registry publish kontrollü yetki gerektirir. Dry-run veya staging registry kullanılabilir. Immutable version policy tercih edilebilir. Signing ve checksum adımları otomasyona bağlanabilir. Human approval final publish öncesinde kalabilir.

Flaky Testler Release Gecikmelerine Nasıl Yol Açar?

Flaky test aynı kodda bazen geçip bazen başarısız olan testtir. Bu durum gerçek failure ile false failure arasındaki güveni azaltır. Maintainer tekrar çalıştırmaya zaman harcar. Release günü flaky test çok daha büyük stres yaratır. Flaky backlog ayrı teknik borç olarak yönetilmelidir.

Test Güvenilirliği

Test sonucuna güvenilemiyorsa CI değeri düşer. İnsanlar kırmızı sonucu görmezden gelmeye başlayabilir. Bu ciddi kalite riskidir. Reliability metriği takip edilebilir. Flaky test hızla owner almalıdır.

False Failure

Kod doğru olduğu halde test başarısız olabilir. Contributor gereksiz debug yapar. Review ve merge gecikir. Re-run alışkanlığı oluşur. Root cause çözülmelidir.

Retry Maliyeti

Her retry compute ve zaman harcar. Büyük suite'de saatler kaybedilebilir. Contributor feedback süresi uzar. Otomatik sınırsız retry problemi gizler. Retry sayısı metric olarak izlenebilir.

Flaky Test Backlog

Flaky testler özel label ile takip edilebilir. Severity ve frequency kaydedilir. Her release belirli sayıda düzeltme hedeflenebilir. Kritik testler öncelik kazanır. Backlog görünmez bırakılmamalıdır.

Release Blocker Olarak Flaky Test

Kritik security veya migration testi flaky ise release readiness bilinemez. Bu durumda testin kendisi blocker olabilir. Ya stabil hale getirilir ya güvenilir alternatif doğrulama kullanılır. Testi görmezden gelmek doğru değildir. Go / no-go kararında açıkça konuşulmalıdır.

Güvenlik Güncellemeleri İçin Ayrı Release Takvimi

Security patch normal release cadence'i beklemek zorunda değildir. Critical vulnerability out-of-band release gerektirebilir. Embargoed fix private coordination ile hazırlanır. Advisory ve CVE zamanlaması dikkatle yönetilmelidir. Security runbook normal release dokümanından ayrı bulunabilir.

Normal Security Patch

Düşük veya orta riskli vulnerability planlı patch'e girebilir. Kullanıcı etkisi değerlendirilir. Changelog güvenlik düzeltmesini açıklar. Upgrade tavsiyesi verilebilir. Normal cadence içinde yayınlanabilir.

Critical Vulnerability

Critical açık mümkün olan en kısa sürede ele alınır. Scope diğer işlerden bağımsızdır. Private fix branch kullanılabilir. Security review zorunludur. Out-of-band release yapılabilir.

Embargoed Fix

Exploit ayrıntısı fix hazır olana kadar sınırlı paylaşılabilir. İlgili maintainers private channel kullanır. Leak riskini azaltmak gerekir. Embargo tarihi koordineli disclosure ile bağlanır. Public issue erken açılmamalıdır.

Private Coordination

Security contact ve güvenli iletişim yöntemi bulunmalıdır. Gerekli kişiler minimum tutulur. Patch ve advisory birlikte hazırlanır. Downstream vendor'larla koordinasyon gerekebilir. Access log tutulabilir.

Advisory

Advisory vulnerability etkisini ve çözümünü açıklar. Etkilenen version'lar belirtilir. Upgrade veya workaround sunulur. Gereksiz exploit detayı risk yaratmamalıdır. Yayın patch ile senkron yapılır.

CVE

Uygun vulnerability için CVE süreci işletilebilir. Kimlik ve severity bilgisi advisory'ye eklenebilir. Süreç ilgili yetkili sistemlerle yürütülür. CVE her güvenlik bug'ı için zorunlu değildir. Security policy bunu açıklayabilir.

Out-of-Band Release

Normal takvim dışında acil sürümdür. Release automation hazır olmalıdır. Küçük scope tercih edilir. Kullanıcıya aciliyet açıkça anlatılır. Sonrasında retrospective yapılır.

Release Notes ve Changelog Süreci

Release notes kullanıcıya ne değiştiğini ve ne yapması gerektiğini anlatır. Changelog development boyunca hazırlanırsa son hafta yükü azalır. Breaking change ve deprecation görünür olmalıdır. Contributor credits topluluk motivasyonunu destekler. Migration notes major sürümlerde ayrı önem taşır.

Changelog Ne Zaman Hazırlanmalı?

PR merge sırasında changelog entry eklenebilir. Son haftada yüzlerce commit okumak gerekmez. Label tabanlı automation kullanılabilir. Maintainer final wording'i düzenler. Kullanıcıya göre kategoriler oluşturulur.

Otomatik Changelog

PR label ve title'lardan taslak üretilebilir. Tam otomatik metin her zaman yeterli değildir. Internal refactor kullanıcı için anlamlı olmayabilir. Human edit gerekli olabilir. Breaking change kesinlikle öne çıkarılmalıdır.

Breaking Changes

Breaking change ayrı bölümde bulunmalıdır. Etkilenen kullanıcı grubu açıklanır. Migration örneği sağlanır. Version policy ile uyumlu olmalıdır. Gizli kırılma release güvenini zedeler.

Deprecations

Deprecated API ve planlanan removal version yazılmalıdır. Alternatif çözüm belirtilir. Kullanıcının geçiş için zamanı olur. Warning davranışı docs ile uyumlu olmalıdır. Deprecation geçmişi takip edilebilir.

Contributor Credits

Katkı sunan kişilere teşekkür etmek topluluk kültürünü güçlendirir. Otomatik contributor listesi oluşturulabilir. Sadece kod katkısı değil docs ve testing katkısı da değerlidir. Kullanıcı adı tercihlerine saygı gösterilmelidir. Credits abartılı rekabet aracına dönüşmemelidir.

Migration Notes

Major upgrade adımları kısa release note içine sığmayabilir. Ayrı migration guide linklenebilir. Breaking config ve API değişimleri açıklanır. Before ve after örnekleri verilebilir. Common issue bölümü kullanıcı desteğini azaltır.

Release Artifact'larının Dağıtımı

Release artifact yalnız source tag değildir. Package, container, binary, checksum, signature ve SBOM gibi çıktılar bulunabilir. Hangi artifact'ın resmî olduğu açıkça belirtilmelidir. Dağıtım pipeline tekrar üretilebilir olmalıdır. Artifact integrity kullanıcı güvenliği açısından kritik olabilir.

Git Tag

Final source state version tag ile işaretlenebilir. Signed tag kullanılabilir. Tag immutable tutulmalıdır. Yanlış tag silip yeniden oluşturmak dikkatle yönetilmelidir. Release notes tag ile bağlanır.

GitHub / GitLab Release

Repository barındırma platformundaki release sayfası kullanıcıya version, notlar ve asset'ler sunabilir. Kaynak tag ile bağlantılı olmalıdır. Bu başlıkta kullanılan platform örnekleri proje araçlarıdır ve release akışını anlatmak için değerlendirilmelidir. Ana artifact kaynağı açıkça belirtilmelidir. Otomasyon human approval ile desteklenebilir.

Package Registry

Language ecosystem registry'sine package publish edilebilir. Version metadata doğru olmalıdır. Publish token güvenli saklanmalıdır. Registry propagation test edilir. Yanlış sürüm yayımlanırsa yank policy bilinmelidir.

Container Registry

Container image tag ve digest ile yayınlanabilir. Latest tag tek kaynak olmamalıdır. Immutable version tag kullanmak daha güvenlidir. Image scanning yapılabilir. Multi-architecture build gerekiyorsa test edilmelidir.

Binary Distribution

Platforma özel binary'ler hazırlanabilir. Build environment tekrar üretilebilir olmalıdır. Supported OS ve architecture açıklanır. Kullanıcı yanlış dosyayı indirmemelidir. Checksums release page'de bulunabilir.

Checksums

Checksum kullanıcıya dosya bütünlüğünü doğrulama imkânı verir. Güvenli hash algoritması kullanılmalıdır. Checksum dosyası artifact'larla birlikte yayınlanır. Automation ile üretilebilir. Kullanıcı dokümantasyonu doğrulama komutunu gösterebilir.

Artifact Signing

Signing artifact'ın beklenen yayın kaynağından geldiğini doğrulamaya yardımcı olur. Key management kritik konudur. Tek maintainer kişisel key'ine bağımlılık risklidir. Rotation ve revocation policy bulunmalıdır. Signing otomasyonu güvenli approval kullanmalıdır.

SBOM

Software Bill of Materials kullanılan dependency bileşenlerini listeler. Security ve compliance ekiplerine görünürlük sağlar. Build sırasında otomatik üretilebilir. Format standardı proje ihtiyacına göre seçilir. Release artifact ile eşleştiği doğrulanmalıdır.

Release Otomasyonu Ne Kadar İleri Götürülmeli?

Release otomasyonu tekrar eden ve hata riski yüksek işleri azaltmalıdır. Version bump, tagging, changelog, build, test, signing ve publishing otomatik olabilir. Bununla birlikte kritik publish adımında human approval gate değerli olabilir. Otomasyonun amacı insan kontrolünü tamamen kaldırmak değildir. Güvenli ve tekrar üretilebilir release süreci oluşturmaktır.

Version Bump

Version dosyaları otomatik güncellenebilir. SemVer kuralı pipeline'a bağlanabilir. PR label hangi bump gerektiğini belirleyebilir. Human review yanlış major veya minor seçimini yakalar. Tek source of truth kullanılmalıdır.

Tagging

Tag otomatik release workflow tarafından oluşturulabilir. CI başarılı olmadan tag yapılmamalıdır. Signed tag tercih edilebilir. Manual local tagging azaltılmalıdır. Audit log korunur.

Changelog

PR metadata taslak changelog oluşturabilir. Release Manager metni düzenler. Internal değişiklikler filtrelenir. Breaking change öne çıkarılır. Automation son editoryal kontrolü ortadan kaldırmaz.

Build

Build pipeline temiz environment içinde çalışmalıdır. Developer laptop'una bağlı olmamalıdır. Reproducibility hedeflenebilir. Build log saklanır. RC ve final aynı iş akışını kullanır.

Testing

Required test suite otomatik çalışır. Failure publish'i durdurur. Manual override çok sınırlı olmalıdır. Flaky test politikası tanımlanır. Final test sonucu release record'a bağlanır.

Signing

Signing key güvenli secret store içinde tutulabilir. Human approval sonrası erişim verilebilir. Key material log'a yazılmamalıdır. Rotation planı bulunmalıdır. Signature verification release testine eklenebilir.

Publishing

Registry publish pipeline tarafından yapılabilir. Idempotency ve retry davranışı dikkatle tasarlanmalıdır. Yanlış version tekrar publish edilemeyebilir. Staging dry-run yararlıdır. Final düğmeye insan onayı eklenebilir.

Announcement

Release announcement otomatik taslak oluşturabilir. Community Manager veya Release Manager final metni kontrol eder. Breaking change ve security bilgisi doğru olmalıdır. Farklı kanallarda tutarlı mesaj paylaşılır. Release notlarına bağlantı verilir.

Human Approval Gate

Human gate kritik son adımda otomasyonu durdurur. Yetkili kişi readiness kriterlerini kontrol eder. Approval kayıt altına alınır. Tek kişinin erişimine bağlı kalmamak için yedek bulunur. Gate otomasyonun güvenlik katmanıdır.

Hatalı Release Durumunda Ne Yapılmalı?

Her release kusursuz olmayabilir. Önemli olan hata olduğunda önceden belirlenmiş response modeline sahip olmaktır. Hotfix, patch, rollback veya yanked release seçenekleri duruma göre kullanılabilir. Incident communication kullanıcıya açık ve sakin bilgi vermelidir. Sonrasında root cause analysis ile süreçteki eksik kapı bulunmalıdır.

Hotfix

Hotfix production etkisi yüksek problemi hızlı çözer. Scope mümkün olduğunca küçük tutulur. Review ve test kaldırılmaz. Ayrı branch kullanılabilir. Sonrasında normal branch'e backport veya forward merge yapılır.

Patch Release

Bug fix yeni patch version olarak yayınlanabilir. Changelog sorunu açıklar. Kullanıcı upgrade etmeye teşvik edilir. Regression test eklenir. Release automation normal süreçle kullanılmalıdır.

Rollback

Deployment geri alınabiliyorsa hızlı güvenlik sağlar. Package registry release'lerinde rollback farklı davranabilir. Önceki stable version açıkça belirtilmelidir. Data migration varsa geri dönüş risklidir. Rollback planı release öncesi düşünülmelidir.

Yanked Release

Bazı package ekosistemlerinde problemli version yanked olarak işaretlenebilir. Kullanıcıların yeni kurulumda seçmesi engellenebilir. Mevcut kullanıcıya açıklama yapılmalıdır. Yeni fix version yayınlanır. Yank tamamen silmekten farklı olabilir.

Deprecation

Yanlış veya riskli sürüm hızlı biçimde deprecated ilan edilebilir. Kullanıcıya replacement version sunulur. Support policy güncellenir. Announcement net olmalıdır. Dependency resolver davranışı değerlendirilir.

Incident Communication

Kullanıcı sorunun ne olduğunu ve ne yapması gerektiğini bilmelidir. Belirsizliği gizlememek gerekir. İlk mesaj kısa olabilir ve güncelleme zamanı verilebilir. Root cause tamamlanmadan spekülasyon yapılmamalıdır. Final postmortem açık paylaşılabilir.

Root Cause Analysis

RCA yalnız kimin hata yaptığını bulmak için kullanılmamalıdır. Hangi süreç veya kontrol eksik kaldı sorulmalıdır. Test, review veya release gate geliştirilir. Aksiyon owner ve tarih alır. Sonraki release'te gerçekten uygulandığı kontrol edilir.

Release Sonrası Süreç

Release yayınlandığında proje işi bitmez. Telemetry, issue, crash, security ve documentation feedback takip edilmelidir. İlk birkaç gün normalden daha hızlı response gerekebilir. Release retrospective süreç kalitesini değerlendirir. Sonraki roadmap yeni öğrenimlerle güncellenir.

Telemetry ve Kullanıcı Geri Bildirimi

Telemetry varsa privacy kurallarına uygun kullanılmalıdır. Adoption ve error pattern görülebilir. Kullanıcı feedback forum ve issue'lardan gelir. Tek veri kaynağına güvenilmemelidir. Yeni release'in gerçek etkisi böyle anlaşılır.

Issue Monitoring

Yeni açılan issue'lar release label ile takip edilebilir. Regression pattern hızlı bulunur. Duplicate raporlar birleştirilir. Severity triage edilir. Critical issue hotfix sürecini tetikleyebilir.

Crash / Error Monitoring

Uygun projelerde crash veya error rate izlenebilir. Yeni version ile artış karşılaştırılır. Privacy ve opt-in şartları dikkate alınır. Error fingerprint root cause bulmayı kolaylaştırır. Trend release health'e geri beslenir.

Security Monitoring

Yeni release sonrası vulnerability raporları takip edilir. Dependency advisory'leri izlenir. Exploit sinyali varsa hızlı response gerekir. Security contact aktif kalmalıdır. Patch planı normal cadence'i beklemeyebilir.

Documentation Feedback

Kullanıcılar hangi migration adımında zorlandığını söyleyebilir. Broken link veya eksik örnek hızlı düzeltilebilir. Docs patch release beklemek zorunda olmayabilir. Feedback next release planning'e girdi sağlar. Documentation başarısı support load ile ölçülebilir.

Release Retrospective

Ne iyi gitti, ne gecikti ve ne değiştirilmeli soruları sorulur. Blame yerine sistem iyileştirme hedeflenir. Scope carry-over ve review lead time incelenebilir. Contributor yorgunluğu konuşulur. Birkaç somut aksiyon seçilir.

Release Sonrası Dinlenme Dönemi Gerekli mi?

Yoğun release haftası contributor ve maintainer yorgunluğu yaratabilir. Özellikle gönüllü projelerde hemen yeni deadline başlatmak sürdürülebilir değildir. Cooldown period veya meeting-free week kullanılabilir. Bu dönem yalnız dinlenme değil küçük maintenance ve retrospective için de değerlidir. Sürdürülebilir cadence uzun vadeli proje sağlığını destekler.

Contributor Burnout

Contributor gönüllü zamanını sürekli deadline için kullanırsa projeden uzaklaşabilir. Baskı yerine esnek scope kullanılmalıdır. Katkıların takdir edilmesi önemlidir. Dinlenme dönemi katkıcıyı korur. İnsanları output metriği gibi görmekten kaçınılmalıdır.

Maintainer Burnout

Maintainer review, triage ve release işlerini aynı anda taşır. Uzun süreli yoğunluk ciddi yorgunluk yaratabilir. Rotation ve delegation uygulanmalıdır. Vacation gerçekten erişilemez olabilmelidir. Bus factor yüksek değilse bu daha kolaydır.

Release Engineering Yorgunluğu

Release engineer final günlerde uzun saatler çalışabilir. Automation ve rehearsal bu yükü azaltır. Tek kişiye bağlı pipeline risklidir. Release sonrası on-call yükü paylaşılmalıdır. Cooldown planı özellikle bu ekip için önemlidir.

Cooldown Period

Bir veya birkaç gün yeni büyük feature merge edilmeyebilir. Issue cleanup ve docs fix yapılabilir. İnsanlar ara verebilir. Critical hotfix dışında düşük tempo korunur. Süre proje cadence'ine göre seçilir.

Meeting-Free Week

Bazı ekipler release sonrası toplantısız hafta uygulayabilir. Async discussion devam edebilir. Maintainer'lar backlog düzenleyebilir veya dinlenebilir. Zorunlu incident toplantıları istisna olabilir. Bu uygulama ekip sağlığını destekleyebilir.

Sürdürülebilir Cadence

Cadence aynı kaliteyi aylarca sürdürebilecek hızda olmalıdır. Tek bir hızlı release başarı ölçütü değildir. Burnout veya yüksek carry-over cadence'in fazla hızlı olduğunu gösterebilir. Metric ve insan geri bildirimi birlikte kullanılmalıdır. Gerektiğinde takvim yavaşlatılabilir.

Açık Kaynak Ekip Performansı Nasıl Ölçülür?

Açık kaynak performansını commit veya satır sayısına indirgemek doğru değildir. Contributor satisfaction, retention, active contributors, review lead time ve release predictability daha anlamlı bilgi verir. PR merge rate ve issue resolution time akış sağlığını gösterebilir. Release frequency bağlam içinde değerlendirilmelidir. Amaç insanları sıralamak değil sistemin nerede zorlandığını anlamaktır.

Contributor Satisfaction

Anket veya topluluk feedback'i contributor deneyimini gösterebilir. Review tonu, onboarding ve karar şeffaflığı sorulabilir. Yalnız aktif maintainer'ların görüşü yeterli değildir. Ayrılan contributor'lardan da öğrenilebilir. Sonuç somut aksiyona dönüşmelidir.

Contributor Retention

İlk katkı sonrası tekrar dönen contributor oranı izlenebilir. Düşük retention onboarding veya review problemi gösterebilir. Her contributor'ın sürekli kalması beklenmez. Trend uzun vadede anlamlıdır. Mentoring yatırımıyla karşılaştırılabilir.

Active Contributors

Aktif contributor sayısı community health hakkında fikir verir. Katkı türü yalnız kod olmamalıdır. Docs ve issue triage dahil edilebilir. Tek seferlik katkı ile düzenli katkı ayrılabilir. Büyüme kapasite planına yansıtılmalıdır.

Review Lead Time

İlk review'a kadar geçen süre contributor deneyimini etkiler. Component bazında izlenebilir. Artış reviewer bottleneck gösterebilir. Hedef SLE kullanılabilir. Metric insanları baskılamak için kullanılmamalıdır.

PR Merge Rate

Açılan PR'lerin ne kadarı merge oluyor görülebilir. Düşük oran requirement veya onboarding problemi gösterebilir. High rate her zaman kalite anlamına gelmez. PR complexity dikkate alınmalıdır. Trend daha değerlidir.

Issue Resolution Time

Issue açılışından kapanışına süre ölçülebilir. Bug severity ve issue türüne göre segmentlenmelidir. Feature request yıllarca açık kalabilir. Tek ortalama yanıltıcı olabilir. Critical bug resolution ayrıca takip edilmelidir.

Release Frequency

Ne sıklıkta release yapıldığı delivery ritmini gösterir. Daha yüksek sayı otomatik başarı değildir. User need ve overhead ile birlikte yorumlanır. Patch ve major release ayrılmalıdır. Cadence stability ayrıca ölçülmelidir.

Release Predictability

Planlanan tarih ve gerçek tarih farkı incelenir. Scope carry-over da eklenir. Tahminler sürekli kaçıyorsa planlama modeli iyileştirilmelidir. Fixed-date modelde scope uyumu daha önemlidir. Predictability kullanıcı güvenini destekler.

Release Planlamasında Kullanılabilecek Akış Metrikleri

Flow metrics açık kaynakta kişi-saat tahmininden daha gerçekçi olabilir. Issue lead time, PR lead time, review time, merge time ve blocked time sistemin nerede yavaşladığını gösterir. Deployment frequency ve release cycle time genel delivery ritmini anlatır. Work item age eski işlerin görünürlüğünü artırır. Metrikler tek başına değil trend ve bağlamla yorumlanmalıdır.

Issue Lead Time

Issue'nun aktif çalışmaya başlamasından tamamlanmasına kadar geçen süre ölçülebilir. Triage bekleme ayrı tutulabilir. Issue type'a göre segment yapılmalıdır. Büyük feature doğal olarak daha uzun sürer. Trend bottleneck gösterir.

PR Lead Time

PR açılışından merge'e kadar geçen toplam süredir. Review ve CI bekleme dahil olabilir. Büyük artış release riskine dönüşür. Component bazında karşılaştırılabilir. Contributor availability etkisi unutulmamalıdır.

Review Time

İlk review ve toplam review döngüsü ayrı ölçülebilir. Reviewer kapasitesi hakkında fikir verir. Karmaşık PR daha uzun sürebilir. Median değer ortalamadan daha anlamlı olabilir. SLE trendi izlenebilir.

Merge Time

Approval sonrası merge'e geçen süre pipeline sorununu gösterebilir. CI queue veya branch conflict etkili olabilir. Merge automation bu süreyi azaltabilir. Release branch policy ayrıca incelenir. Metric operasyonel bottleneck bulur.

Deployment Frequency

Software artifact'ın kullanıcıya ne sıklıkta ulaştığını gösterir. Library ve uygulama projelerinde anlamı farklı olabilir. Frequent deployment release frequency ile aynı olmayabilir. Context tanımlanmalıdır. Outcome ile birlikte yorumlanmalıdır.

Release Cycle Time

Planning start ile GA arasındaki toplam süredir. Cycle aşamalara ayrılabilir. Development mı stabilization mı uzun görülebilir. Önceki release'lerle karşılaştırma yapılır. İyileştirme yatırımı etkisi ölçülebilir.

Blocked Time

İşin dependency veya karar beklediği süreyi gösterir. Yüksek blocked time koordinasyon problemini işaret eder. Block reason label kullanılabilir. Upstream dependency ayrı segmentlenebilir. Haftalık health check'te incelenir.

Work Item Age

Aktif işin ne kadar süredir açık olduğunu gösterir. Çok eski PR veya issue risk sinyali olabilir. WIP limitleri düşünülebilir. Age arttıkça context kaybı ve conflict ihtimali büyür. Eski işler düzenli review edilmelidir.

Release Predictability Nasıl Ölçülür?

Predictability yalnız takvimde zamanında çıkmak değildir. Planlanan scope'un ne kadarının tamamlandığı ve carry-over oranı da önemlidir. Release blocker sayısı ve milestone confidence erken uyarı sağlar. Cadence stability kullanıcı planlamasını kolaylaştırır. Bu metrikler yöneticilerin contributor üzerinde baskı kurması için değil sistemin tahmin kalitesini artırması için kullanılmalıdır.

Planlanan Tarih vs. Gerçek Tarih

Target date ile GA tarihi karşılaştırılır. Fark gün veya yüzde olarak ölçülebilir. Fixed-scope projede gecikme daha normal olabilir. Neden kategorileri tutulmalıdır. Tek release yerine birkaç cycle trendi önemlidir.

Planlanan Scope vs. Gerçekleşen Scope

Commit edilen issue'ların ne kadarı release'e girdi ölçülebilir. Optional iş ayrı tutulmalıdır. Scope cut fixed-date modelin doğal parçasıdır. Sürekli çok düşük gerçekleşme overplanning göstergesidir. Capacity model güncellenmelidir.

Scope Carry-Over Rate

Bir release'ten sonraki release'e taşınan iş oranıdır. Yüksek carry-over fazla scope veya bottleneck gösterebilir. Contributor availability etkisi de olabilir. Issue type bazında analiz yapılabilir. Aynı iş birkaç release taşınıyorsa yeniden değerlendirilmelidir.

Release Blocker Sayısı

Freeze sonrası çıkan blocker sayısı quality planning hakkında fikir verir. Çok fazla blocker integration'ın geç başladığını gösterebilir. Severity dağılımı incelenir. Root cause retrospective'te ele alınır. Amaç sıfır bug değil erken keşiftir.

Milestone Confidence

Maintainer'lar green, yellow veya red confidence verebilir. Bu nitel sinyal erken uyarı sağlar. Açık blocker ve capacity verisiyle desteklenir. Haftalık health check'te güncellenir. Sponsor veya kullanıcı iletişiminde kullanılabilir.

Cadence Stability

Release aralıklarının ne kadar tutarlı olduğu ölçülür. Sürekli büyük dalgalanma operasyon sorununa işaret edebilir. Security out-of-band release'ler ayrı tutulmalıdır. Cadence değişimi bilinçli kararsa problem değildir. Değişiklik community'ye açıklanmalıdır.

Açık Kaynak Projelerde Velocity Kullanılmalı mı?

Velocity bazı kapalı ekiplerde sprint kapasitesi için kullanılabilir ancak açık kaynakta dikkat gerektirir. Contributor sayısı, commit veya LOC gibi metrikleri performans ölçüsüne çevirmek yanıltıcıdır. PR sayısı da kalite ve karmaşıklığı göstermez. Flow ve outcome metrikleri daha anlamlıdır. İnsanları yarışa sokan sayı sistemlerinden kaçınmak gerekir.

Contributor Sayısını Velocity ile Karıştırmamak

Yüz contributor olması yüz kişinin sürekli çalıştığı anlamına gelmez. Katkı frekansı farklıdır. Bazıları yalnız docs veya issue desteği sunar. Aktif kapasite ayrı ölçülmelidir. Contributor count community reach metriğidir.

Commit Sayısı Neden Yeterli Değildir?

Bir kişi değişikliği tek commit, başka biri yirmi commit yapabilir. Commit sayısı değer veya kalite ölçmez. Squash policy metriği tamamen değiştirir. İnsanları daha çok commit atmaya teşvik etmek anlamsızdır. Outcome'a bakmak gerekir.

LOC Neden Performans Ölçüsü Değildir?

İyi refactor binlerce satırı silebilir. Çok kod daha çok değer anlamına gelmez. Generated code LOC sayısını şişirebilir. Contributor performansını LOC ile ölçmek yanlış davranış teşvik eder. Bakım kolaylığı daha değerlidir.

PR Sayısı Neden Yanıltıcı Olabilir?

On küçük PR bir büyük PR'den daha fazla sayı üretir. Complexity ve impact farklıdır. Quality review sayısı etkiler. Contributor'ı daha fazla PR açmaya yönlendirmek parçalanmış iş yaratabilir. Metric bağlamla kullanılmalıdır.

Flow ve Outcome Metriklerine Odaklanmak

Lead time ve blocked time sistem sağlığını gösterir. Kullanıcı etkisi outcome tarafını tamamlar. Contributor satisfaction insan boyutunu ekler. Release predictability operasyonel güven verir. Birlikte daha sağlıklı resim oluşur.

Yapay Zekâ Destekli Katkılar Ekip Planlamasını Nasıl Değiştirir?

AI destekli coding araçları PR üretim hızını artırabilir. Ancak reviewer kapasitesi aynı hızda artmayabilir. Düşük kaliteli veya bağlamı anlamayan PR'ler review yükünü daha da büyütebilir. Bu nedenle AI contribution policy ve human review gate gereklidir. Review timeline artık yalnız contributor sayısına değil üretilen değişiklik hacmine göre planlanmalıdır.

AI ile Artan PR Hacmi

Contributor daha hızlı kod üretebilir. Bu durum PR sayısını artırabilir. Review queue büyürse net delivery hızı düşebilir. Proje contribution guidelines kalite beklentisini açıklamalıdır. Küçük ve test edilmiş PR tercih edilmelidir.

Reviewer Kapasitesi

AI kod üretse de maintainer bağlamı kontrol etmek zorundadır. Security ve architecture review insan sorumluluğunda kalır. Review capacity ayrı planlanmalıdır. Gerekirse PR intake sınırlanabilir. Quality gate automation yardımcı olur.

Düşük Kaliteli PR Riski

AI syntax olarak doğru fakat proje mimarisine uymayan değişiklik üretebilir. Gereksiz refactor veya uydurma API kullanılabilir. Contributor kendi PR'ını anlamalıdır. “AI üretti, bilmiyorum” kabul edilebilir ownership modeli değildir. Test ve açıklama beklenmelidir.

Automated Triage

AI issue classification veya duplicate suggestion için kullanılabilir. Final priority kararı maintainer tarafından doğrulanabilir. Security issue yanlış public label almamalıdır. Confidence düşükse human triage'a yönlendirilir. Automation backlog yönetimini hızlandırabilir.

AI Contribution Policy

Proje AI kullanımına ilişkin açık politika yazabilir. Contributor'ın ürettiği kodu anlaması ve lisans uyumunu sağlaması beklenebilir. Hassas issue verisinin dış araçlara girilmemesi gerekebilir. Disclosure ihtiyacı proje kararına göre belirlenir. Policy araç karşıtı değil sorumluluk odaklı olmalıdır.

Human Review Gate

AI-generated change doğrudan merge edilmemelidir. İnsan reviewer test ve davranışı kontrol eder. Critical component iki onay gerektirebilir. Automation risk scoring sağlayabilir. Final ownership insan maintainer'da kalır.

Review Timeline'ının Yeniden Planlanması

PR hacmi artıyorsa release scope aynı kalmamalıdır. Reviewer load metric izlenir. Freeze öncesi daha uzun review buffer gerekebilir. Contributor'lar küçük PR'a yönlendirilir. AI hızının review kapasitesini geçmesi planlamada hesaba katılmalıdır.

Açık Kaynak Proje Yönetim Araçları Nasıl Konumlandırılmalı?

Proje yönetim araçları sürecin kendisi değildir. Public roadmap, issue board, discussion ve CI dashboard doğru bilgi akışını destekler. Araç sayısı arttıkça aynı veriyi birkaç yerde tutmak sorun yaratır. Tek source of truth belirlenmelidir. Araç seçimi contributor deneyimini kolaylaştırmalıdır.

GitHub Projects

Repository tabanlı projelerde issue ve PR görünümü oluşturabilir. Milestone ve custom field kullanılabilir. Public roadmap sunulabilir. Board tek gerçeklik kaynağı olacaksa güncel tutulmalıdır. Otomasyon status geçişlerini kolaylaştırabilir.

GitLab Issues ve Milestones

Issue ve milestone tabanlı planlama yapılabilir. CI/CD pipeline ile aynı platformda görünürlük sağlanabilir. Label ve board kullanımı standardize edilmelidir. Araç seçimi proje governance'ını belirlememelidir. Süreç platformdan taşınabilir olmalıdır.

Kanban Board

Backlog, in progress, review ve done gibi akış görünümü sağlar. WIP bottleneck kolay görülür. Review sütunu özellikle önemlidir. Çok fazla column sistemi zorlaştırabilir. Board gerçek iş akışını yansıtmalıdır.

Public Roadmap

Topluluk yakın ve orta vadeli yönü görebilir. Exact commitment yerine confidence kullanılabilir. Theme ve milestone ilişkisi gösterilir. Güncel olmayan roadmap güven kaybettirir. Belirli periyotta review edilmelidir.

Discussions

Açık uçlu fikir ve kullanıcı soruları için uygun alan olabilir. Her discussion issue'ya dönüşmek zorunda değildir. Olgunlaşan öneri RFC sürecine taşınabilir. Moderation policy uygulanır. Karar sonucu linklenir.

RFC Repository

Büyük tasarım önerileri version control altında tutulabilir. Review comment geçmişi korunur. Accepted ve rejected status görülebilir. Decision log ile bağlanır. Implementation issue'ları referans verir.

CI/CD Dashboard

Build ve test health görünür olur. Flaky test trendleri takip edilebilir. Release branch status kolay anlaşılır. Security scan sonuçları appropriate access ile gösterilebilir. Dashboard alarm üretmeli fakat gürültü oluşturmamalıdır.

Release Dashboard

Milestone health, blocker, open PR ve artifact readiness tek yerde toplanabilir. Release Manager haftalık review yapar. Manual spreadsheet yerine otomatik veri çekilebilir. Decision için kısa summary sunulur. Community-facing ve internal risk bilgisi farklı olabilir.

Açık Kaynak Projelerde Planlama Anti-Pattern'leri

Açık kaynak projelerde bazı planlama davranışları kısa vadede düzenli görünse de uzun vadede topluluğa zarar verir. Gönüllülere sabit deadline dayatmak, roadmap'i garanti listesi gibi sunmak ve review süresini yok saymak bunların başında gelir. Release'in tek kişiye bağlı olması ciddi operasyon riskidir. Çok büyük scope sürekli carry-over yaratır. Contributor burnout ise takvim metriklerinden daha önemli bir alarmdır.

Gönüllülere Sabit Teslim Tarihi Dayatmak

Gönüllü contributor'ın kişisel zamanı proje kontrolünde değildir. Deadline baskısı katkıyı azaltabilir. Hedef dönem ve milestone daha uygun olabilir. Kritik iş tam zamanlı maintainer tarafından sahiplenilebilir. Gönüllülük korunmalıdır.

Her Issue'ya Tarih Vermek

Backlog'daki her item'ın delivery tarihi olması gerekmez. Bu gereksiz tahmin yükü yaratır. Yalnız committed milestone işler target date alabilir. Candidate iş tarih yerine priority taşıyabilir. Plan daha sade olur.

Roadmap'i Taahhüt Listesi Gibi Sunmak

Roadmap değişebilir. Kullanıcıya garanti gibi sunulursa her değişiklik hayal kırıklığı yaratır. Confidence ve planning horizon açıklanmalıdır. Now daha net, Later daha esnek tutulur. Şeffaf değişiklik yönetimi gerekir.

Maintainer Kapasitesini Yok Saymak

Feature sayısı artarken maintainer review kapasitesi aynı kalabilir. Roadmap teorik olarak dolu ama gerçekte ilerlemez. Review ve triage işi capacity modeline eklenmelidir. Burnout sinyalleri izlenir. Gerekirse scope küçültülür.

Review Süresini Planlamamak

Development tamamlandı diye feature release'e hazır değildir. Review, change request ve CI süresi gerekir. Freeze öncesi buffer bırakılmalıdır. Büyük PR'ler erkenden açılmalıdır. Review timeline release planının parçasıdır.

Release'i Tek Kişiye Bağlamak

Tek kişinin signing key veya publish token kontrolü ciddi risk yaratır. Yedek release manager gerekir. Runbook başka biri tarafından test edilmelidir. Access yönetimi kurumsal hesaba taşınabilir. Bus factor artırılmalıdır.

Çok Büyük Scope Oluşturmak

Büyük scope sürekli gecikme yaratır. Must-have ve optional ayrımı yapılmalıdır. Release train modeli hazır olmayan işi sonraki cycle'a taşır. Scope cut başarısızlık değildir. Predictability güçlenir.

Her Feature İçin Release'i Geciktirmek

Bir feature hazır değil diye tüm kullanıcıların bug fix beklemesi gerekmez. Fixed-date modelde feature taşınabilir. Patch release ayrıca çıkabilir. Priority değerlendirilir. Release cadence feature perfection'a bağlanmamalıdır.

Contributor Burnout'u Görmezden Gelmek

Katkıcı sayısı yüksek görünürken insanlar yorgun olabilir. Response kalitesi düşer. Maintainer izin kullanamıyorsa sistem sağlıklı değildir. Cooldown ve rotation uygulanmalıdır. Community health düzenli konuşulmalıdır.

Açık Kaynak Release'lerinin Gecikmesinin Başlıca Nedenleri

Release gecikmeleri çoğu zaman tek büyük sorundan değil birkaç küçük darboğazın birleşiminden çıkar. Scope creep, review kuyruğu, flaky tests ve dependency delay sık nedenlerdir. Güvenlik işi plan dışı öncelik yaratabilir. Documentation eksikliği final hafta ortaya çıkabilir. Release automation eksikliği de manuel hataları ve süreyi artırır.

Scope Creep

Release başladıktan sonra sürekli yeni feature eklenmesi scope creep yaratır. Timeline tahmini geçersiz hale gelir. Change control gerekir. Yeni iş sonraki milestone'a alınabilir. Release hedefi korunmalıdır.

Maintainer Bottleneck

Birkaç maintainer bütün karar ve review'u taşıyorsa gecikme oluşur. Component ownership uygulanabilir. Yeni reviewer yetiştirilir. Meeting yükü azaltılabilir. Maintainer capacity planlamanın merkezine alınır.

Review Kuyruğu

PR'ler günlerce review bekleyebilir. Contributor fix süresi de uzar. Release-critical iş önceliklendirilir. Review rotation kullanılabilir. Queue metric health check'te görünür olmalıdır.

Flaky Tests

CI sonucu güvenilmez hale gelir. Release candidate sürekli tekrar test edilir. İnsan zamanı boşa gider. Flaky backlog bakım işi olarak planlanmalıdır. Critical flaky test blocker sayılabilir.

Unplanned Security Work

Security incident normal roadmap'i değiştirebilir. Buffer capacity bulunması yararlıdır. Critical fix feature'ın önüne geçer. Release calendar gerektiğinde güncellenir. Kullanıcı güvenliği önceliklidir.

Dependency Delay

Upstream release gecikirse sizin feature da bloklanabilir. Alternative dependency veya feature flag düşünülebilir. Dependency owner iletişim kurar. Critical path görünür tutulur. Scope gerektiğinde taşınır.

Eksik Dokümantasyon

Feature kodu tamamlanmış olsa da kullanıcı nasıl kullanacağını bilmiyorsa release eksiktir. Docs development ile paralel yazılmalıdır. Migration guide erken başlamalıdır. Documentation readiness kriter olmalıdır. Son hafta yükü azalır.

Volunteer Availability

Contributor kişisel nedenlerle unavailable olabilir. Bu normaldir. Kritik yol tek gönüllüye bağlı olmamalıdır. Scope taşınabilir. Proje gönüllü yaşamına uyum sağlamalıdır.

Release Automation Eksikliği

Manual version, build ve publish adımları hata riskini artırır. Runbook uzun ve kişiye bağlı olur. Automation tekrar üretilebilirlik sağlar. Önce en riskli adımlar otomatikleştirilebilir. Human approval korunabilir.

90 Günlük Açık Kaynak Proje Planlama ve Release Yol Haritası

Doksan günlük model yeni veya yeniden organize edilen proje için pratik başlangıç sunar. İlk otuz gün governance, roller ve roadmap netleştirilir. Sonraki otuz gün development ve contribution akışı oluşturulur. 61 ile 75. gün arasında stabilization yapılır. Son on beş gün RC, go / no-go, publishing ve retrospective için ayrılır.

İlk 30 Gün — Yönetişim ve Roadmap

İlk ay proje yapısının temeli hazırlanır. Roller, contributor capacity, priorities ve milestone sistemi açıklanır. Maintainer ownership görünür hale gelir. Public roadmap yayınlanabilir. Review ve decision süreçleri dokümante edilir.

Roller

Project Lead, maintainer, reviewer ve release manager sorumlulukları yazılır. Tek kişi birden fazla rol taşıyabilir. Yetki sınırları açık olmalıdır. Backup sorumlular belirlenir. Governance dokümanı repository'de bulunabilir.

Contributor Capacity

Tarihsel contribution verisi incelenir. Reviewer capacity ayrıca ölçülür. Volunteer kapasite aralıkla tahmin edilir. Mentoring ihtiyacı belirlenir. İlk release scope buna göre seçilir.

Priorities

Kullanıcı etkisi, security ve strategic alignment kriterleri yazılır. Backlog triage yapılır. Eski issue'lar temizlenir. Must-have işler belirlenir. Community'ye karar mantığı açıklanır.

Milestones

İlk release milestone oluşturulur. Target date ve exit criteria yazılır. Dependency ve riskler eklenir. Owner belirlenir. Health status düzenli takip edilir.

31–60 Gün — Development ve Contribution

İkinci ay aktif development ve contribution akışına odaklanır. Issue'lar küçültülür, PR'ler review edilir ve integration testleri çalıştırılır. Yeni contributor onboarding desteklenir. Review queue haftalık izlenir. Release scope gerektiğinde erkenden daraltılır.

Issues

Issue'lar kabul kriteriyle hazırlanır. Good first issue havuzu oluşturulur. Priority ve milestone doğru kullanılır. Needs triage kuyruğu temizlenir. Dependency bağlantıları eklenir.

Pull Requests

Küçük ve odaklı PR teşvik edilir. Issue referansı bulunur. Tests beklenir. Review request doğru owner'a gider. Stale PR yönetimi yapılır.

Reviews

Review rotation uygulanabilir. İlk response süresi izlenir. Kritik PR'ler öne alınır. Yeni reviewer'lar pair review yapar. Bottleneck erken raporlanır.

Integration

Cross-component testler development boyunca yapılır. Multi-repo dependency'ler kontrol edilir. RC öncesi büyük sürpriz bırakılmaz. Performance ve security testleri erken başlayabilir. Integration riskleri health status'a yansır.

61–75 Gün — Stabilization

Bu dönemde yeni feature intake azaltılır. Feature freeze, test ve documentation çalışmaları öne çıkar. Release blocker'lar çözülür. Code freeze yaklaşırken riskli değişiklikler ertelenir. RC için gerçek production artifact pipeline hazırlanır.

Feature Freeze

Yeni feature kabulü durur. Tamamlanmayan işler sonraki milestone'a taşınır. Exception sınırlı tutulur. Contributor'lara durum açıkça bildirilir. Stabilite öncelik kazanır.

Testing

Regression ve integration suite tamamlanır. Flaky testler çözülür veya risk değerlendirilir. Platform matrix kontrol edilir. Security scan çalıştırılır. Critical failures blocker olur.

Documentation

Yeni feature docs tamamlanır. Migration guide hazırlanır. Broken examples test edilir. Release notes taslağı oluşturulur. Documentation freeze tarihi belirlenir.

76–90 Gün — Release

Son bölüm RC, go / no-go ve publishing sürecidir. Community testing yapılır. Blocker varsa final tarih yeniden değerlendirilir. Artifact ve documentation birlikte yayınlanır. Retrospective ile doksan günlük cycle tamamlanır.

RC

RC1 final pipeline ile üretilir. Community testing açılır. Bug raporları hızlı triage edilir. Gerekirse RC2 çıkarılır. Final approval için readiness verisi hazırlanır.

Go / No-Go

Critical bug, security ve documentation kriterleri kontrol edilir. Package readiness doğrulanır. Maintainer approval alınır. Gerekirse no-go kararı verilir. Tarih baskısı kalite kriterini geçmemelidir.

Publishing

Tag, package ve artifact'lar yayınlanır. Checksums ve signatures paylaşılır. Changelog final olur. Announcement hazırlanır. Post-release monitoring başlar.

Retrospective

Planlanan ve gerçek sonuç karşılaştırılır. Carry-over, review delay ve blocker analiz edilir. Contributor feedback alınır. İki veya üç improvement action seçilir. Sonraki roadmap bu öğrenimlerle güncellenir.

Haftalık Açık Kaynak Release Health Check

Haftalık health check uzun status toplantısı olmak zorunda değildir. Milestone'daki açık iş, review bekleyen PR, blocked item ve maintainer load hızlıca değerlendirilir. Dependency riski ve release blocker ayrıca kontrol edilir. Scope daraltma ihtiyacı erken konuşulur. Release tarihinin güvenilirliği her hafta güncellenebilir.

Milestone'da Kaç Açık İş Var?

Açık issue sayısı tek başına yeterli değildir. Must-have ve optional işler ayrılmalıdır. Eski ve büyük işler işaretlenir. Completion trend takip edilir. Sayı beklenenden yüksekse scope cut düşünülebilir.

Kaç PR Review Bekliyor?

Open review queue release health için güçlü sinyaldir. Critical PR'ler ayrı gösterilir. İlk review bekleme süresi ölçülür. Reviewer load dengelenir. Gerekirse rotation değiştirilir.

Hangi İşler Blocked?

Blocked issue ve nedenleri listelenir. Dependency, karar veya capacity kategorileri kullanılabilir. Owner ve next action açık olmalıdır. Uzun blocked time escalation gerektirebilir. Release scope etkisi değerlendirilir.

Hangi Maintainer Aşırı Yüklü?

Review ve issue yükü kişi bazında görülebilir. Ama metric performans yarışı için kullanılmamalıdır. Aşırı yük varsa başka owner eklenir. Meeting veya düşük priority iş azaltılabilir. Burnout önleme önemli amaçtır.

Hangi Dependency Risk Altında?

Upstream veya cross-repo dependency durumu kontrol edilir. Target date değişmiş olabilir. Alternative plan değerlendirilir. Dependency owner feedback verir. High risk release health'i yellow yapabilir.

Release Blocker Var mı?

Security, regression veya packaging blocker listelenir. Owner ve expected resolution yazılır. Blocker sayısı trendlenebilir. Çözülmezse no-go ihtimali erken açıklanır. Son gün sürprizi azaltılır.

Scope Daraltılmalı mı?

Velocity beklenenden düşükse optional feature taşınabilir. Scope cut açıkça konuşulmalıdır. Must-have hedef korunur. Contributor üzerinde overtime baskısı yapılmamalıdır. Fixed-date modelin temel disiplini budur.

Release Tarihi Hâlâ Güvenilir mi?

Milestone confidence değerlendirilir. Tarih değişecekse erken söylemek daha iyidir. Fixed-date modelde önce scope cut düşünülür. Critical blocker varsa date değişebilir. Community'ye kısa güncelleme verilir.

Açık Kaynak Ekip ve Release Planlama Kontrol Listesi

Kontrol listesi governance'dan retrospective'e kadar temel alanları kapsamalıdır. Maintainer ve contributor capacity ayrı değerlendirilmelidir. Roadmap, milestone, issue triage ve PR akışı aynı sistem içinde görünür olmalıdır. CI/CD, security ve documentation release readiness'in gerçek parçalarıdır. Metrikler ve retrospective sistemin zamanla iyileşmesini sağlar.

Governance

Karar modeli ve yetki sınırları yazılı mı kontrol edilir. Maintainer promotion ve escalation süreçleri açık olmalıdır. Code of conduct bulunabilir. Working group yapısı açıklanır. Governance yaşayan doküman olarak güncellenir.

Maintainers

Her kritik component owner'a sahip mi kontrol edilir. Backup maintainer bulunmalıdır. Review yükü dengeli olmalıdır. Release access tek kişiye bağlı olmamalıdır. Burnout sinyalleri konuşulmalıdır.

Contributor Capacity

Aktif contributor ve tarihsel katkı seviyesi incelenir. Volunteer kapasite garanti sayılmaz. Onboarding ve mentoring kapasitesi eklenir. Critical path full-time sahiplik alabilir. Confidence aralığı kullanılır.

Roadmap

Vision ve major theme'ler görünür olmalıdır. Now, Next ve Later ayrımı yapılabilir. Topluluk feedback'i dahil edilir. Uzak tarih kesin söz gibi sunulmaz. Roadmap düzenli güncellenir.

Milestones

Release hedefi, owner ve target date bulunmalıdır. Scope ve dependency açık olmalıdır. Risk ve health status takip edilir. Exit criteria yazılır. Carry-over ölçülür.

Issue Triage

Needs triage kuyruğu düzenli temizlenmelidir. Priority sistemi tutarlı olmalıdır. Bug ve security doğru sınıflandırılır. Duplicate issue'lar birleştirilir. Contributor-ready işler görünür tutulur.

Pull Requests

PR size ve review time izlenir. Stale PR'ler temizlenir. Required tests çalışır. Issue bağlantısı bulunur. Release-critical PR'ler doğru milestone'a eklenir.

Reviewer Capacity

Review queue kapasiteyle karşılaştırılır. Component ownership kullanılır. Reviewer rotation düşünülebilir. Yeni reviewer yetiştirilir. SLE trendi izlenir.

CI/CD

Build ve test süreleri görünür olmalıdır. Flaky test oranı izlenir. Packaging automation test edilir. Release pipeline tekrar üretilebilir olmalıdır. Human approval kritik publish adımında korunabilir.

Security

Private vulnerability channel bulunmalıdır. Security contact güncel olmalıdır. Out-of-band release runbook hazırlanır. Dependency scans çalışır. Signing ve access policy kontrol edilir.

Documentation

Feature docs development ile paralel ilerlemelidir. Migration guide gereken sürümlerde hazırlanır. Release notes taslağı erken oluşturulur. Broken examples test edilir. Documentation readiness kriter olarak kullanılabilir.

Release Criteria

Critical bug ve security threshold tanımlanır. Test ve package readiness ölçülür. Upgrade testleri yapılır. Maintainer approval gerekir. Go / no-go kriterleri baştan yazılır.

Metrics

PR lead time, review time ve blocked time izlenebilir. Contributor satisfaction ve retention eklenebilir. Commit ve LOC performans metriği yapılmamalıdır. Release predictability ölçülür. Trendler retrospective'te kullanılır.

Retrospective

Her release sonrası kısa değerlendirme yapılır. Scope carry-over ve bottleneck'ler konuşulur. İnsan yorgunluğu da değerlendirilir. Birkaç somut aksiyon seçilir. Sonraki cycle'da gerçekten uygulanıp uygulanmadığı kontrol edilir.

Sıkça Sorulan Sorular

Açık kaynak ekip ve release planlamasında en çok sorulan konular görev dağılımı, gönüllü contributor deadline'ları, roadmap ve milestone ilişkisi etrafında toplanır. Sağlıklı model kesin kişi-saat tahminlerinden çok görünür sahiplik ve akış metriklerine dayanır. Açık kaynak yazılım proje yönetimi ve release planlama danışmanlığı arayan ekiplerin yalnız board kurulumu değil governance, reviewer capacity ve release engineering tarafını da değerlendirmesi gerekir. Release cadence projenin kapasitesine ve kullanıcı ihtiyacına göre seçilmelidir. Aşağıdaki cevaplar temel karar noktalarını özetler.

Açık kaynak projelerde ekip planlaması nasıl yapılır?

Önce roller, component ownership ve maintainer kapasitesi belirlenir. Volunteer capacity kesin sayı yerine tarihsel aralıkla değerlendirilir. Roadmap Now, Next ve Later gibi katmanlara ayrılabilir. Milestone yakın release için gerçek scope'u taşır. Review ve release engineering kapasitesi development kadar planlanmalıdır.

Açık kaynak projelerde görevler nasıl dağıtılır?

Görevler emir modeliyle değil sahiplik, ilgi ve yetkinlik üzerinden dağıtılmalıdır. Maintainer'lar kritik component'leri yönetir. Contributor'lar açık issue havuzundan iş seçebilir. Reviewer ve release yetkileri güven arttıkça kademeli genişletilir. Governance dokümanı karar sınırlarını açıklar.

Gönüllü geliştiriciler için deadline belirlenir mi?

Katı bireysel deadline çoğu gönüllü proje için uygun değildir. Milestone veya hedef release belirtilebilir. Contributor yetiştiremezse iş sonraki sürüme taşınabilir. Critical timeline gerektiren iş tam zamanlı owner tarafından sahiplenilmelidir. Gönüllü katkı zorunlu çalışan planı gibi yönetilmemelidir.

Maintainer ve contributor arasındaki fark nedir?

Contributor projeye katkı sunan kişidir. Maintainer ise belirli alanın sürdürülebilirliği, review'u ve teknik kararları için daha yüksek sorumluluk taşır. Maintainer merge veya release yetkisine sahip olabilir. Contributor zaman içinde reviewer ve maintainer seviyesine ilerleyebilir. Promotion kriterleri governance içinde açıklanabilir.

Açık kaynak roadmap'i nasıl hazırlanır?

Project vision ve kullanıcı ihtiyaçlarıyla başlanır. Teknik borç, security ve ecosystem dependency'ler eklenir. Yakın dönem daha net, uzak dönem daha esnek tutulur. Community feedback planlamaya dahil edilir. Roadmap taahhüt listesi gibi sunulmamalıdır.

Milestone ile roadmap arasındaki fark nedir?

Roadmap projenin yönünü ve büyük hedeflerini gösterir. Milestone ise belirli release veya zaman penceresindeki uygulanabilir işleri toplar. Roadmap theme birkaç milestone'a yayılabilir. Milestone issue ve PR'lara daha yakındır. İki seviye arasında izlenebilirlik bulunması faydalıdır.

Release cadence nedir?

Release cadence sürümlerin hangi ritimde yayınlandığını ifade eder. Haftalık, aylık veya çeyreklik olabilir. Projenin maintainer kapasitesi ve test maliyeti seçimi etkiler. Kullanıcı upgrade beklentisi de değerlendirilir. Sürdürülebilir cadence en hızlı cadence'den daha değerlidir.

Açık kaynak projeler ne sıklıkta release yapmalıdır?

Tek doğru sıklık yoktur. Hızlı değişen küçük library aylık veya daha sık release yapabilir. Büyük platform daha uzun stabilization süresi isteyebilir. Release overhead ve downstream impact hesaba katılmalıdır. Birkaç cycle metriği izlenerek uygun aralık bulunabilir.

Fixed-date ve fixed-scope release arasındaki fark nedir?

Fixed-date modelde tarih sabittir ve scope gerektiğinde daralır. Fixed-scope modelde kapsam sabittir fakat tarih değişebilir. Gönüllü ekiplerde fixed-date çoğu zaman daha esnek davranır. Büyük major dönüşümlerde fixed-scope kullanılabilir. Her iki modelde değişiklik policy'si önceden tanımlanmalıdır.

Feature freeze nedir?

Feature freeze yeni özellik kabulünün durdurulduğu stabilizasyon dönemidir. Bug fix ve blocker çalışmaları devam edebilir. Hazır olmayan feature sonraki release'e taşınır. Exception process sınırlı kullanılmalıdır. Tarih release calendar'da önceden duyurulmalıdır.

Code freeze nedir?

Code freeze feature freeze'den daha sıkı aşamadır. Yalnız kritik değişiklikler merge edilir. Branch protection güçlendirilebilir. Amaç final test için kod tabanını stabil tutmaktır. Riskli refactor sonraki cycle'a bırakılır.

Release candidate nedir?

Release candidate final sürüme çok yakın test sürümüdür. RC1 community testing için yayınlanabilir. Kritik bug bulunursa RC2 hazırlanır. Feature set artık değişmemelidir. Final readiness bu adaylar üzerinden doğrulanır.

Semantic Versioning nasıl kullanılır?

Major breaking change, minor backward-compatible feature ve patch bug fix için kullanılabilir. Public API contract açık olmalıdır. Pre-release için alpha, beta ve RC ekleri kullanılabilir. Version numarası kullanıcı communication'ın yerine geçmez. Breaking changes migration guide ile desteklenmelidir.

Pull request review süresi nasıl kısaltılır?

PR'leri küçük ve odaklı tutmak ilk adımdır. Component ownership doğru reviewer'a yönlendirme sağlar. Review rotation ve reviewer pool kapasiteyi dağıtır. Açık acceptance criteria change request sayısını azaltabilir. Yeni reviewer yetiştirmek uzun vadeli çözüm sağlar.

Maintainer darboğazı nasıl önlenir?

Component ownership ve backup maintainer kullanılabilir. Contributor'lar reviewer seviyesine geliştirilebilir. Review ve triage işi gerçek kapasite olarak planlanmalıdır. Release tek kişinin erişimine bağlı olmamalıdır. Knowledge transfer ve cross-maintainership uygulanmalıdır.

Açık kaynak proje başarısı hangi metriklerle ölçülür?

Contributor satisfaction, retention ve active contributor sayısı community health gösterir. PR lead time ve review time akışı anlatır. Release predictability kullanıcı güvenini destekler. Issue resolution ve blocker trendleri teknik süreç hakkında bilgi verir. Commit veya LOC sayısını insan performansı metriği yapmak doğru değildir.

Ek Sık Sorulan Sorular

Açık kaynak proje ve yazılım danışmanlığı yakınımda gibi aramalar yapan ekiplerin yalnız proje yönetim aracına değil yönetişim ve release discipline seviyesine de bakması yararlıdır. Açık kaynak yazılım proje yönetimi ve release planlama danışmanlığı, maintainer capacity, contributor onboarding, PR flow, CI/CD ve güvenlik release süreçlerini birlikte değerlendirmelidir. Topluluk iletişimi de teknik takvim kadar önemlidir. Özellikle geliştirici ve paydaş arasındaki geri bildirim döngülerinin açık olması roadmap kararlarını iyileştirir. Aşağıdaki beş soru, kurumsal veya topluluk tabanlı bir projede başlangıç için temel kararları toplar.

Açık kaynak projelerde ekip planlaması nasıl yapılır ve görev dağılımı nasıl belirlenir?

Önce Project Lead, maintainer, reviewer, contributor ve release manager rolleri görünür hale getirilmelidir. Component ownership ve karar yetkileri governance dokümanında açıklanabilir. Volunteer contributor'lara klasik çalışan gibi sabit iş yükü verilmemelidir. Kritik release işleri öngörülebilir kapasitesi bulunan maintainers tarafından sahiplenilmelidir. Geliştirici ve paydaş iletişimini güçlendiren yöntemler için https://www.diyarbakiryazilim.com.tr/posts/gelistirici-ve-paydas-arasinda-etkili-geri-bildirim-donguleri içeriği de tamamlayıcı bir kaynak olabilir.

Açık kaynak yazılım projelerinde sürüm ve dağıtım zaman çizelgesi nasıl oluşturulur?

Planning start, scope commitment, development, feature freeze, RC, final testing ve GA aşamaları ayrı planlanmalıdır. Release modelinin fixed-date mi fixed-scope mu olduğu baştan açıklanmalıdır. Review, documentation ve packaging süreleri development tahminine ayrıca eklenmelidir. Go / no-go kriterleri release'in başında tanımlanır ve kritik blocker varsa tarih baskısı nedeniyle esnetilmez. Bu yaklaşım açık kaynak projelerde release planı ve sürüm takvimi nasıl hazırlanır sorusunu uygulanabilir bir akışa dönüştürür.

Gönüllü katkıcılar ile çekirdek geliştirici ekibi arasındaki iş yükü ve sorumluluklar nasıl yönetilir?

Gönüllü katkı planın garanti kapasitesi olarak kabul edilmemelidir. Core team kritik path, güvenlik ve release engineering sorumluluklarını güvenilir biçimde sahiplenebilir. Contributor'lar feature, bug, test ve documentation alanlarında açık issue havuzundan katkı sunabilir. Düzenli contributor'lar review ve maintainership sorumluluğuna kademeli biçimde hazırlanmalıdır. Böylece proje hem topluluk katılımını korur hem de release takvimini yalnız gönüllü availability'ye bağlamaz.

Release roadmap, milestone ve issue takibi açık kaynak projelerde nasıl koordine edilir?

Roadmap üst seviye theme ve yönü göstermelidir. Her theme epic veya milestone'larla ilişkilendirilebilir ve milestone içindeki uygulanabilir işler issue seviyesine kadar izlenebilir. Pull request ilgili issue'ya bağlandığında geliştirme akışı release planıyla birleşir. Weekly health check açık işler, blocked items, reviewer queue ve milestone confidence durumunu gösterir. Diyarbakır Yazılım Topluluğu kapsamındaki proje çalışmalarını https://www.diyarbakiryazilim.com.tr/projects üzerinden inceleyebilirsiniz.

Açık kaynak proje yönetimi ve sürüm planlama desteğini yakınımda nerede bulabilirim?

Açık kaynak proje ve yazılım danışmanlığı yakınımda şeklinde destek ararken yalnız takvim hazırlayan bir yapı yerine governance, contributor onboarding, review capacity, CI/CD ve release engineering süreçlerini birlikte değerlendiren yaklaşımı tercih etmek yararlıdır. Diyarbakır Yazılım Topluluğu hakkında bilgi almak için https://www.diyarbakiryazilim.com.tr/about adresini ziyaret edebilirsiniz. Topluluk projelerini incelemek için https://www.diyarbakiryazilim.com.tr/projects adresi kullanılabilir. Teknik ekip ve paydaş iletişimi için https://www.diyarbakiryazilim.com.tr/posts/gelistirici-ve-paydas-arasinda-etkili-geri-bildirim-donguleri içeriği de yararlı bir devam noktasıdır. Desteğin size yalnız araç kurulumu değil sürdürülebilir ekip ve release modeli kazandırmasına dikkat edin.

Sonuç

Açık Kaynak Projelerde Ekip Planlaması ve Dağıtım Zaman Çizelgeleri, yalnız release tarihlerini takvime eklemekten çok daha geniş bir yönetim disiplinidir. Sağlıklı bir proje maintainer kapasitesini, volunteer contribution belirsizliğini, reviewer darboğazını, milestone'ları, dependency risklerini ve CI/CD gerçeklerini aynı plan içinde ele alır. Fixed-date veya fixed-scope modeli seçerken kullanıcı beklentisi kadar contributor sürdürülebilirliği de düşünülmelidir. Roadmap şeffaf, görev sahipliği anlaşılır, release kriterleri ölçülebilir ve retrospective düzenli olduğunda proje büyürken operasyon kalitesi korunabilir. Açık kaynak yazılım, ekip planlama, proje geliştirme ve topluluk çalışmalarına katılmak veya destek almak için https://www.diyarbakiryazilim.com.tr üzerinden Diyarbakır Yazılım Topluluğu'na ulaşabilirsiniz.

share
share:

İletişim

Birlikte inşa edelim

İşbirliklerine, ilginç sorunlara ve kod, tasarım ile diğer konular hakkında sohbetlere açığız.

bize ulaş→

Bizi başka yerlerde bulun

GitHub
@diyarbakir-yazilim
Twitter
@diyaryazilim
LinkedIn
diyarbakir-yazilim-toplulugu
Instagram
@diyarbakiryazilim
YouTube
@diyarbakiryazilim
Slack
diyarbakiryazilim
WhatsApp
Topluluğa Katıl
Email
info@diyarbakiryazilim.org
Sevgiyle ve kodla inşa ediliyor

© 2026 Diyarbakır Yazılım Topluluğu — Tüm hakları saklıdır.