Create CLEAN Code

Programming by Intention

In my blog post The Single Level of Responsibility Principle, I talked about the virtues of separating out perspectives in code so that any entity is only dealing with a single perspective. In this post, I’d like to tell you about the practice I use that helps me separate out perspectives in code without even …

Read More
Build in Small Batches

Story Splitting Techniques in a Nutshell

There are many techniques for splitting stories depending upon the situation you’re in. The goal is to break down work into the smallest increments that still provides some value, but the value can simply be a step in the right direction—as long as it produces visible results. Most big stories are compound stories, meaning they’re …

Read More
Build in Small Batches

Splitting Stories

A number of Agile methodologies rely on artificial time boxes such as sprints or iterations. The purpose of these time boxes is to get you good at breaking down work so you’re only building a small piece of functionality at a time. One of the critical skills in Agile development is being able to split …

Read More
Announcements

Technically Speaking Podcast

Here’s a link to the Technically Speaking Podcast I did at Agile 2016: https://soundcloud.com/teamdaugherty/david-bernstein. In addition to talking about my conference session, my book, and the state of Agile, we also discussed my previous career as a filmmaker and the youth environmental video I made in the 1990s called Connect: A New Ecological Paradigm. This …

Read More
Create CLEAN Code

The Single Level of Abstraction Principle

It’s virtuous to separate out different perspectives in code because it helps make code more testable, extendable, and understandable. We want to use entities at the same level of perspective so that code is easier to read and understand code. The same thing is true within entities where we want to do tasks at the …

Read More
Integrate Continuously

Automate Deployment

Different people have different ideas of what it means to be Agile. For some, Agile means doing standup meetings and two-week iterations. For others,it means doing all the practices from Scrum, Lean, and Extreme Programming. For me, what it means to be Agile comes right out of the Agile Manifesto, which says: “Our highest priority …

Read More