agile


Developers Are Human

Over 30 years ago, a CS professor of mine dropped a piece of wisdom as an aside in class. Dr. Soroka told us that every time he fixed something in a program, he got a little jolt of happiness. A little high. And he’d noticed something curious: the size of the high was not proportional […]


From the Scariest Problem to a Row of Simple Changes

Years ago we built a dating app called Zazazu. At its heart was an in-app economy more complicated than anything a dating app had tried before. The original model was simple: a straightforward 1-1 currency per transaction. Then the business evolved, the way businesses do, and the founders needed something entirely different: free-to-play, a multi-tiered […]


MVP: Misunderstood Vision for Product

Somewhere along the way, “minimum viable product” stopped being a meaningful concept and drifted into product lore. It’s a term everyone knows and yet almost no one can define the same way. Saeed Khan went so far as to argue the term (and other Product terms) has lost so much shared meaning it’s worth retiring. […]


Mess Is a Signal, Not a Disqualifier

An engineer on our team once pulled me aside about a client we’d been working with for a few weeks. He wasn’t angry. He was bewildered. He’d never seen a codebase in this kind of state — and being a thoughtful engineer, he was trying to make sense of it. He asked, quietly, “how does […]


Start With the Smallest Increment That Can Work

David Packard — co-founder of Hewlett-Packard — once recounted advice he’d received from an old engineer: “More businesses die of indigestion than starvation.” I’ve watched that play out in software for almost 30 years. Not just with companies, but with projects. The instinct when something is important is to throw resources at it. Staff up. […]


Big A Agile Is Broken

If you asked most people at a large company “how do you know you’re practicing Agile?” you’d get answers about Jira configurations, sprint ceremonies, planning poker, swimlanes, and certifications. Very few would say “because we care most about continuously shipping good software with improvements.” Very few would talk about how they empower and trust their […]


The Line Between “What” and “How”

Introduction A pervasive problem in software development is finding the line between what is a sufficiently detailed description of a product requirement and describing the "implementation details" of that requirement. Put simply; it is a problem of finding the line between what and how. A product requirement should contain everything about the "what" (and leave […]


BDD Toolbox: Happy Path/Sad Path

BDD Toolbox is an ongoing set of posts to give you tools to aid in the process of doing Behavior Driven Development well. Today we’ll take a look at Happy Path/Sad Path – a tool to ensure you’ve captured success and failure cases for all of your scenarios. Happy Path/Sad Path is a way of […]