Finding the Right Metaphors

March 22, 2017 0 comments

In his book, Domain Driven Design, Eric Evans said that there really is no such thing as complexity, complexity happens when we diverge from our models, when we use metaphors inconsistently, and I tend to agree. Very involved systems can be easy to understand as long as they adhere to an appropriate set of metaphors. […]

CONTINUE READING THIS POST →

Perspectives

March 15, 2017 0 comments

Our job as developers is less about being clever or finding efficient algorithms and more about simply perceiving the problem and representing it as accurately as possible. This is an exciting shift in software development because it means our goal is really about understanding. Once we understand a problem everything else can fall into place […]

CONTINUE READING THIS POST →

Avoiding Integration Hell

March 8, 2017 0 comments

Perhaps the most important yet easiest to implement of all the software development practices in Agile is continuous integration. Continuous integration is simply creating an infrastructure where the code that is being built can be integrated into the project immediately. One of the biggest challenges when writing software is the dependency relationship between the code […]

CONTINUE READING THIS POST →

The Importance of Technical Practices

March 1, 2017 0 comments

Software development has undergone many revolutions over the last few decades and the way we build software today is fundamentally different than the way we did just a few years ago. Our industry is maturing and we are beginning to pay attention to the quality of our work. No longer is just fulfilling the specification […]

CONTINUE READING THIS POST →

Two Big Things

February 22, 2017 0 comments

I’d like to say that there are two big things we must achieve in software development. We must build the right thing and we must build the thing right. Building the right thing starts with what the customer wants so they can gain value from our work. The way we build the right thing for […]

CONTINUE READING THIS POST →

Success to Standish is Failure in Agile

February 15, 2017 0 comments

The Standish Group’s CHAOS Report is the largest and longest running research study in the software industry. Standish looks at approximately 34,000 software projects in a range of areas. It includes shrink-wrap applications, operating systems, custom apps, etc. They picked a range of diverse projects to look at. Every ten years the study drops about […]

CONTINUE READING THIS POST →

Propagate Knowledge

February 8, 2017 0 comments

There is a huge amount of professional wisdom in software development. These are things that we have never bothered to write down but are standards nonetheless. This general knowledge is communicated through individual interactions as well as the code we write, so it’s really important that we have high quality interactions within the team and […]

CONTINUE READING THIS POST →

Developer on Fire Podcast

February 6, 2017 2 comments
Thumbnail image for Developer on Fire Podcast

I had a very interesting conversation with Dave Rael (@raelyard) on the #DeveloperOnFire #Podcast about what excites me as a developer. Listen to it here: http://developeronfire.com/podcast/episode-206-david-bernstein-beyond-legacy-code

CONTINUE READING THIS POST →

Swarm on Showstoppers

February 1, 2017 0 comments

Swarming is a practice where the entire team works together temporarily to solve a problem. Swarming is most useful for certain kinds of problems, problems that impact the entire team. If no one can do anything until the problem is resolved then it may make sense, and improve morale, if everyone on the team has […]

CONTINUE READING THIS POST →

Podcast on The Agile Uprising

January 30, 2017 0 comments
Thumbnail image for Podcast on The Agile Uprising

I had a great conversation with Ryan Lockard (@AgilePHL) and James Gifford (@scrummando) on the @AgileUprising podcast. Listen here: https://coalition.agileuprising.com/t/podcast-released-beyond-legacy-code-with-david-bernstein/627

CONTINUE READING THIS POST →

Spike on Unknowns

January 25, 2017 0 comments

As an Agile developer, I often start projects without a clear sense of exactly what I’m building. This used to be very difficult for me. I wanted to start with a complete specification for what I was to build, but today I know that it’s more efficient and effective to discover exactly what needs to […]

CONTINUE READING THIS POST →

Buddy Programming

January 18, 2017 0 comments

Sometimes the practices of Extreme Programming can be a bit too extreme when first introducing them to a team. This is especially true with pair programming. Of all the practices that I teach software developers, I get the most resistance from pair programming, Both developers and their managers are skeptical about pair programming, although each […]

CONTINUE READING THIS POST →

Strong-Style Pairing

January 11, 2017 0 comments

Pair programming is not about taking turns using the computer or being someone else’s typist. It’s about engaging two minds on the same problem so that a solution can be developed more quickly and with higher quality than if one person was working on it alone. The two roles in pair programming are referred to […]

CONTINUE READING THIS POST →

Ping-Pong Pairing

January 4, 2017 0 comments

Another pair programming configuration I like is called ping-pong pairing. In ping-pong pairing the driver writes a test for a behavior then asks the navigator to implement the behavior and make the test pass. Once completed, the keyboard is passed from driver to navigator and the new driver writes the next test for the new […]

CONTINUE READING THIS POST →