WWT's Mark Balbes authored a new article for ADTmag discussing Greed-Accelerated Development (GAD) and what it can do for your software development.

Posted by ADTmag on August 9, 2018:

I have a new favorite term, Greed-Accelerated Development (GAD). I coined the term in jest recently but it's something I've been thinking about for a long time.

Normally, in software, greed is a bad thing. We think about greedy product owners and greedy customers who want everything nowwithout realizing the sacrifices they are asking others to make in order to satisfy them. Gruelingly long working hours, low code quality, poor user experience...These are all things we expect when we get greedy.

Greed-Accelerated Development, as I think of it, does not lead to any of these things. In fact, just the opposite. It raises the quality of the software, allowing the team to produce more while working less. But I'm getting ahead of myself.

What Is Greed-Accelerated Development?

Greed-Accelerated Development is a strategy to encourage that allwork by the team is expressed as product features. This includes development, testing, delivery pipeline, documentation and anything else.

The question to constantly be asking is "How do I turn this effort into something that will benefit my users?" Another way to ask the question is "What is the benefit the team is getting from this effort and is there a way that this can be valuable to our users?" This is not just a question for product owners. Everyone on the team should be asking this any time you put effort into something that is not already a user-facing feature. And if it is a user-facing feature, you should still be asking how you can get more out of it.

Don't worry. I hear you screaming "But you are going to increase scope by doing this!!!" Nope. And that's the trick. GAD is a strategy for work you are already doing!

Here are some real-world examples:

Example #1: Be Greedy About Configuration Management

In a previous article, I wrote about Branch By Abstraction using Feature Toggles. This is a technique for code branching which is a completely developer-centric need. Users have no need for code branches, abstract or otherwise.

View the full article.

Read full article