Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
47 posts found
BDD in .NET: Binding Gherkin Scenarios to the Bookstore API with Reqnroll 3
Project Management PART 08

BDD in .NET: Binding Gherkin Scenarios to the Bookstore API with Reqnroll 3

SpecFlow reached end of life on December 31, 2024; the current way to run Gherkin scenarios in .NET is Reqnroll 3, with the Reqnroll.xunit.v3 package for xUnit v3. We bind Bookstore's institutional order scenarios to the API on .NET 10: project setup, step definitions, context injection, WebApplicationFactory, a diagnostic hook for failures, living documentation with the HTML formatter and filtering by tag, plus a pitfall observed under Turkish culture.

14 Nov 2026 15 min 8
Executable Specifications with Gherkin: Given-When-Then, Rule, Scenario Outline and Writing Declarative Scenarios
Project Management PART 07

Executable Specifications with Gherkin: Given-When-Then, Rule, Scenario Outline and Writing Declarative Scenarios

Gherkin turns the rules and examples found in Example Mapping into a specification that stakeholders can read and a test runner can execute; a good scenario describes the business rule, not the UI. Using Bookstore's institutional order rules, we cover Feature, Rule, Background, Scenario Outline, Examples and data tables, declarative versus imperative scenarios, the Turkish keyword decision and Gherkin anti-patterns.

14 Nov 2026 13 min 8
Non-Functional Requirements: The ISO/IEC 25010:2023 Quality Model, Making Them Measurable and Where to Record Them
Project Management PART 06

Non-Functional Requirements: The ISO/IEC 25010:2023 Quality Model, Making Them Measurable and Where to Record Them

A non-functional requirement states what quality a behaviour must have, and it only works when written with its environment, measure and owner. We cover the nine characteristics of ISO/IEC 25010:2023 and what changed since 2011, turning "make it fast" into a scenario built from data and measurement, accessibility (WCAG 2.2), KVKK, audit and security requirements for institutional orders, and where to record them: acceptance criteria, the Definition of Done, ADRs or fitness functions.

14 Nov 2026 11 min 3
Acceptance Criteria and Example Mapping: Clarifying Rules with Examples
Project Management PART 05

Acceptance Criteria and Example Mapping: Clarifying Rules with Examples

Acceptance criteria are a story's conditions of acceptance, and they work best when every rule has concrete examples under it. Using Bookstore's institutional discount and partial shipment cards, we cover rule-based and scenario-based criteria, how they differ from the Definition of Done and Definition of Ready, a four-colour Example Mapping session, and deciding at the end whether a story is ready, should be split or needs investigation.

14 Nov 2026 12 min 4
Story Mapping and Splitting Stories: Walking Skeleton, Vertical Slices and Choosing the First Release
Project Management PART 04

Story Mapping and Splitting Stories: Walking Skeleton, Vertical Slices and Choosing the First Release

A story map arranges stories left to right by the user's flow and top to bottom by priority, exposing the gaps a flat backlog hides and anchoring the first release on an end-to-end walking skeleton. We draw Bookstore's institutional order map, choose the skeleton and release slices, split large stories by rules, data, exceptions, workflow steps, manual-first and spikes, and explain why splitting by layer is a bad idea.

14 Nov 2026 10 min 4
From Use Cases to User Stories: The 3Cs, INVEST and When Use Cases Are Still Better
Project Management PART 03

From Use Cases to User Stories: The 3Cs, INVEST and When Use Cases Are Still Better

A use case is the map showing the whole and its branches, while a user story is a unit of delivery from that map that gives value on its own; not every alternative flow has to become a story. We split Bookstore's institutional order use case into seven stories and acceptance conditions, covering Jeffries' card-conversation-confirmation trio, the limits of the "As a / I want / so that" template, the INVEST check, epics versus stories versus tasks, and when use cases are still better.

14 Nov 2026 11 min 3
Requirements Elicitation: Uncovering the Real Need with Interviews, Observation, Workshops and Prototypes
Project Management PART 02

Requirements Elicitation: Uncovering the Real Need with Interviews, Observation, Workshops and Prototypes

Elicitation is not gathering requirements that already exist; it is uncovering unspoken needs with interviews, observation, document analysis, workshops and prototypes, then confirming them with stakeholders. For Bookstore's bulk orders from schools and libraries we build a stakeholder map, run a "tell me about the last time" interview, observe customer service, surface conflicts in a workshop, test a one-day Angular prototype, and produce a glossary and an open questions list.

14 Nov 2026 12 min 2
What Is a Requirement and Why Is It Misunderstood? Types, Qualities of a Good Requirement and Separating Problem from Solution
Project Management PART 01

What Is a Requirement and Why Is It Misunderstood? Types, Qualities of a Good Requirement and Separating Problem from Solution

A requirement is not a screen but a statement of a need together with its constraints and conditions. Using Bookstore's bulk ordering feature for schools and libraries, we cover business, stakeholder, functional, non-functional, constraint and transition levels, the qualities of a good requirement in ISO/IEC/IEEE 29148, hunting vague words, and finding the problem behind a solution sentence like "an Excel upload screen".

14 Nov 2026 12 min 4
From Discovery to Delivery: One-Pagers, PRDs and Turning Decisions into Backlog Items
Project Management PART 09

From Discovery to Delivery: One-Pagers, PRDs and Turning Decisions into Backlog Items

A good one-pager or PRD answers two questions: why are we doing this, and how will we know we succeeded? We write the one-page document for Bookstore's cart abandonment work with problem, target outcome, success metric, non-goal, risk and open question sections, turn the decision into backlog items split into end-to-end slices, and cover the questions a developer should ask in a PRD review.

8 Nov 2026 8 min 26
Deciding with Experiments: A/B Tests, Feature Flags and Statistical Pitfalls
Project Management PART 08

Deciding with Experiments: A/B Tests, Feature Flags and Statistical Pitfalls

An A/B test is trustworthy when its sample is computed before the experiment and you wait for it. We test Bookstore's shipping cost hypothesis with a Microsoft.FeatureManagement variant flag and see in C# output that it needs 3,954 carts per arm, how the SRM check works, the confidence interval of a 2.24-point lift, and how peeking daily raises false positives in no-effect A/A tests from 5% to 32%.

8 Nov 2026 13 min 31
Measuring Product Metrics in Code: Event Tracking and Cohort Analysis with Angular and ASP.NET Core
Project Management PART 07

Measuring Product Metrics in Code: Event Tracking and Cohort Analysis with Angular and ASP.NET Core

Product metrics start with an event taxonomy that lives in code: object_action names, an allowed property list and a schema version. We write a consent-aware AnalyticsService in Angular and an event table with an ASP.NET Core Minimal API and EF Core, compute a weekly retention cohort and an ordered activation funnel in SQL Server with real query output, and cover KVKK/GDPR concerns and a ready-made tool versus your own table.

8 Nov 2026 14 min 31
Product Metrics: North Star, HEART and AARRR
Project Management PART 06

Product Metrics: North Star, HEART and AARRR

A good product metric drives decisions: the North Star summarizes delivered value in one number, input metrics are levers teams can move weekly, guardrails catch the side effects of optimization. We build a metric tree for Bookstore, measure guest checkout with HEART and Goals-Signals-Metrics and the customer lifecycle with AARRR, and discuss leading versus lagging and vanity metrics.

8 Nov 2026 8 min 29
Blog Map