Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
47 yazı bulundu
.NET'te BDD: Reqnroll 3 ile Gherkin Senaryolarını Bookstore API'sine Bağlamak
Proje Yönetimi SERİ 08

.NET'te BDD: Reqnroll 3 ile Gherkin Senaryolarını Bookstore API'sine Bağlamak

SpecFlow 31 Aralık 2024'te sona erdi; .NET'te Gherkin senaryolarını çalıştırmanın güncel yolu Reqnroll 3 ve xUnit v3 için Reqnroll.xunit.v3 paketidir. Bookstore'un kurumsal sipariş senaryolarını .NET 10'da proje kurulumu, step definition'lar, context injection, WebApplicationFactory, hata anında teşhis yapan hook, HTML formatter ile living documentation ve tag ile filtreleme üzerinden API'ye bağlıyor; Türkçe kültürde gözlenen bir tuzağı da gösteriyoruz.

14 Kas 2026 15 dk 8
Gherkin ile Executable Specification: Given-When-Then, Rule, Scenario Outline ve Declarative Senaryo Yazmak
Proje Yönetimi SERİ 07

Gherkin ile Executable Specification: Given-When-Then, Rule, Scenario Outline ve Declarative Senaryo Yazmak

Gherkin, Example Mapping'de bulunan kural ve örnekleri hem stakeholder'ın okuyabileceği hem de test runner'ın çalıştırabileceği bir spesifikasyona çevirir; iyi senaryo arayüzü değil, iş kuralını anlatır. Bookstore'un kurumsal sipariş kurallarıyla Feature, Rule, Background, Scenario Outline, Examples ve data table'ı, declarative ile imperative senaryo farkını, Türkçe keyword kararını ve Gherkin anti-pattern'lerini anlatıyoruz.

14 Kas 2026 13 dk 8
Non-functional Requirement'lar: ISO/IEC 25010:2023 Quality Model'i, Ölçülebilir Hale Getirmek ve Nereye Yazılır?
Proje Yönetimi SERİ 06

Non-functional Requirement'lar: ISO/IEC 25010:2023 Quality Model'i, Ölçülebilir Hale Getirmek ve Nereye Yazılır?

Non-functional requirement, davranışın hangi kalitede olacağını söyler ve ancak ortamı, ölçüsü ve sahibiyle yazıldığında işe yarar. ISO/IEC 25010:2023'ün dokuz karakteristiğini ve 2011'den farklarını, "hızlı olsun"u veriden ve ölçümden kurulan bir quality attribute senaryosuna çevirmeyi, toplu siparişte erişilebilirlik (WCAG 2.2), KVKK, audit ve güvenlik requirement'larını ve bunların acceptance criteria, Definition of Done, ADR ve fitness function arasında nereye yazılacağını anlatıyoruz.

14 Kas 2026 11 dk 3
Acceptance Criteria ve Example Mapping: Kuralları Örneklerle Netleştirmek
Proje Yönetimi SERİ 05

Acceptance Criteria ve Example Mapping: Kuralları Örneklerle Netleştirmek

Acceptance criteria bir story'nin kabul koşullarıdır ve en iyi hâli, her kuralın altında somut örneklerin durduğu hâlidir. Bookstore'un kurumsal indirim ve kısmi sevkiyat kartları üzerinden kural ve senaryo tabanlı criteria'yı, Definition of Done ve Definition of Ready farkını, dört renk kartlı Example Mapping oturumunu ve oturum sonunda story'nin hazır mı, bölünmeli mi, araştırılmalı mı olduğuna karar vermeyi anlatıyoruz.

14 Kas 2026 12 dk 4
Story Mapping ve Story Bölme: Walking Skeleton, Dikey Dilimler ve İlk Release'i Seçmek
Proje Yönetimi SERİ 04

Story Mapping ve Story Bölme: Walking Skeleton, Dikey Dilimler ve İlk Release'i Seçmek

Story map, story'leri kullanıcının akışına göre soldan sağa, önceliğe göre yukarıdan aşağıya dizerek düz backlog'un gizlediği eksikleri gösterir ve ilk release'i uçtan uca çalışan bir walking skeleton üzerine kurdurur. Bookstore'un kurumsal sipariş map'ini çiziyor, iskeleti ve release dilimlerini seçiyor, büyük story'leri kural, veri, istisna, akış, önce manuel ve spike eksenlerinde bölüyor ve katman katman bölmenin neden kötü olduğunu anlatıyoruz.

14 Kas 2026 10 dk 4
Use Case'ten User Story'ye: 3C, INVEST ve Hangi Durumda Use Case Hâlâ Daha İyi?
Proje Yönetimi SERİ 03

Use Case'ten User Story'ye: 3C, INVEST ve Hangi Durumda Use Case Hâlâ Daha İyi?

Use case bütünü ve dallarını gösteren haritadır, user story ise o haritadan çıkan, tek başına değer veren teslimat birimidir; her alternatif akış story olmak zorunda değildir. Bookstore'un kurumsal sipariş use case'ini yedi story'ye ve kabul koşullarına bölüyor, Jeffries'in card-conversation-confirmation üçlüsünü, "As a / I want / so that" kalıbının sınırlarını, INVEST kontrolünü, epic-story-task ayrımını ve use case'in hâlâ daha iyi olduğu durumları anlatıyoruz.

14 Kas 2026 11 dk 3
Requirement Elicitation: Görüşme, Gözlem, Workshop ve Prototiple Gerçek İhtiyacı Çıkarmak
Proje Yönetimi SERİ 02

Requirement Elicitation: Görüşme, Gözlem, Workshop ve Prototiple Gerçek İhtiyacı Çıkarmak

Elicitation, hazır duran requirement'ları toplamak değil; görüşme, gözlem, doküman analizi, workshop ve prototiple söylenmeyen ihtiyaçları ortaya çıkarıp stakeholder'la teyit etmektir. Bookstore'un okul ve kütüphane toplu siparişi için stakeholder haritasını, "bana son seferi anlatın" görüşmesini, müşteri hizmetlerinde gözlemi, çelişkileri gösteren workshop'u, bir günlük Angular prototipini ve çıktı olarak glossary ile açık soru listesini anlatıyoruz.

14 Kas 2026 12 dk 2
Requirement Nedir ve Neden Yanlış Anlaşılır? Türler, İyi Requirement'ın Özellikleri ve Problem ile Çözümü Ayırmak
Proje Yönetimi SERİ 01

Requirement Nedir ve Neden Yanlış Anlaşılır? Türler, İyi Requirement'ın Özellikleri ve Problem ile Çözümü Ayırmak

Requirement bir ekran değil, bir ihtiyacı ona bağlı kısıt ve koşullarla birlikte ifade eden bir cümledir. Bookstore'un okul ve kütüphane toplu sipariş özelliği üzerinden business, stakeholder, functional, non-functional, constraint ve transition seviyelerini, ISO/IEC/IEEE 29148'deki iyi requirement niteliklerini, belirsiz kelime avını ve "Excel'den yükleme ekranı" gibi bir çözüm cümlesinin arkasındaki problemi bulmayı anlatıyoruz.

14 Kas 2026 12 dk 4
Discovery'den Delivery'ye: One-Pager, PRD ve Kararın Backlog'a Dönüşmesi
Proje Yönetimi SERİ 09

Discovery'den Delivery'ye: One-Pager, PRD ve Kararın Backlog'a Dönüşmesi

İyi bir one-pager ya da PRD iki soruya cevap verir: neden yapıyoruz ve başarılı olduğumuzu nasıl anlayacağız. Bookstore'un sepet terk çalışmasının tek sayfalık dokümanını problem, hedef outcome, success metric, non-goal, risk ve açık soru bölümleriyle yazıyor; kararı uçtan uca dilimlere bölünmüş backlog item'larına çeviriyor ve geliştiricinin PRD review'da sorması gereken soruları konuşuyoruz.

8 Kas 2026 8 dk 26
Deneyle Karar Vermek: A/B Test, Feature Flag ve İstatistiksel Tuzaklar
Proje Yönetimi SERİ 08

Deneyle Karar Vermek: A/B Test, Feature Flag ve İstatistiksel Tuzaklar

Bir A/B testi, örneklemi deneyden önce hesaplanıp sonuna kadar beklendiğinde güvenilirdir. Bookstore'un kargo ücreti hipotezini Microsoft.FeatureManagement variant flag'iyle test ediyor; kol başına 3.954 sepet gerektiğini, SRM kontrolünü, 2,24 puanlık farkın güven aralığını ve her gün bakıp erken durmanın etkisiz A/A deneylerinde yanlış pozitif oranını %5'ten %32'ye çıkardığını C# çıktısıyla görüyoruz.

8 Kas 2026 13 dk 31
Product Metric'lerini Kodda Ölçmek: Angular ve ASP.NET Core ile Event Tracking ve Cohort Analizi
Proje Yönetimi SERİ 07

Product Metric'lerini Kodda Ölçmek: Angular ve ASP.NET Core ile Event Tracking ve Cohort Analizi

Product metric'leri, kodda yaşayan bir event taxonomy ile başlar: object_action adları, izinli property listesi ve şema sürümü. Angular'da consent'e saygılı bir AnalyticsService, ASP.NET Core Minimal API ve EF Core ile bir event tablosu yazıyor; SQL Server'da haftalık retention cohort'unu ve sıralı activation funnel'ını gerçek sorgu çıktısıyla hesaplıyor, KVKK/GDPR açısından dikkat edilecekleri ve hazır araç ile kendi tablon arasındaki farkı konuşuyoruz.

8 Kas 2026 14 dk 31
Product Metric'leri: North Star, HEART ve AARRR
Proje Yönetimi SERİ 06

Product Metric'leri: North Star, HEART ve AARRR

İyi bir product metric'i karar verdirir: North Star müşteriye sağlanan value'yu tek sayıda özetler, input metric'leri ekiplerin haftalık hareket ettirebileceği kaldıraçlardır, guardrail'ler optimizasyonun yan etkisini yakalar. Bookstore için bir metric ağacı kuruyor; HEART ve Goals-Signals-Metrics ile guest checkout'u, AARRR ile müşteri yaşam döngüsünü ölçüyor, leading/lagging ve vanity metric farkını konuşuyoruz.

8 Kas 2026 8 dk 29
Blog Haritası