Categories
Extreme Programming Fit for Purpose Programming

Pragmatic Kotlin DI: Reduce Framework Cathedral

Complex JVM systems rarely become painful because “dependency injection exists.” They become painful because dependency wiring becomes invisible, magical, or scattered everywhere. Services instantiate repositories directly. Routes know too much. Tests need half the application running. A simple change in billing, pricing, or customer policy triggers a chain reaction through controllers, adapters, and infrastructure code. […]

Categories
Extreme Programming Fit for Purpose Kanban Programming

Manage Start Date to Deliver Better

Most teams ask, “When do you want it?” and then reverse-engineer hope. That is how commitments become roulette. The passage from This Is Lean reminds us that customer demand must be decomposed operationally: what we need, when we need it, and how much we need to deliver on time. In software, this means understanding dependencies, […]

Categories
Extreme Programming Programming

Use Property-Based Testing to Find the Bugs

Complex JVM applications rarely fail because of the “happy path” we remembered to test. They fail in the weird combinations: empty lists, duplicated IDs, invalid ranges, timezone edges, rounding errors, unexpected Unicode, concurrent retries, and business rules colliding in ways no one wrote in a Jira ticket. Traditional example-based tests are useful, but they depend […]