Why Project Focused Mentality is Killing Software Development

california damian morys larry apke agile doctor
California by Damian Morys
California by Damian Morys

So, the other day I was listening to NPR in the car (like most people when they listen to talk radio). And the talk was about peace in the Middle East. One of the experts mentioned that, in his opinion, unless both sides owned the process, it was never going to come to fruition. This reminded me of Mark Fritz, international speaker on leadership in today’s organizations, and a compelling blog post he wrote about ownership. I thought this was interesting because there was an interwoven thought he drew upon throughout the post that I believe is applicable to Agile and software development:

“You never wash a rental car.”

I have used a similar phrase many times before when describing the project-centric mentality that pervades most large software development shops. I tell people that, in order to have good quality code, in order to do the right things by the code (BDD/TDD, continuous integration, etc), you must own the code. Therefore, we must move from project to product management, from renting our code to owning the code. So now you know why my brain went from the Middle East to Mark Fritz to rental cars, and now here we are!

Also, I distinctly remember a recent talk when I proposed that in order for better quality products we must eliminate the PMO and replace it with a PPMO (Product and Project Management Office). Interestingly enough, I remember this talk was given to a roomful of project managers who conveniently heard the first part of the phrase and not the second part.

The bottom line is that Agile is about creating high quality software quickly. This cannot be done long term without doing the things that come with owning the code. No project, which merely rents the code, is going to spend their budget making sure that the next group to rent the code has an easier and better time. There is no incentive in project focused organizations to do the right thing! The pressure is on chasing the next bright, shiny object as quickly as possible (e.g: feature chasing) with zero regard for the long term stability of the product.

Before you know it all you have is a big pile of mud that no one can safely enhance or refactor without high chance of regression defects. The time it takes to bring the new, shiny objects to market becomes longer and longer because no one bothered to create the necessary infrastructure. Why not? You might as well ask yourself why no one washes a rental car.

Larry Apke

Software Development is Communication

The longer I stay in the software development business the more I am convinced of certain things. One thing that has hit home recently is this very interesting fact – on the whole, those in charge of software delivery are fundamentally ignorant of how software is made. I have written previously about how software development is a creative process, but what amazes me is that the people who staff and manage software development fail to see how much communication is necessary to software development.

Continue reading “Software Development is Communication”

Recommended Reading

Since I am often asked (and often offer without being asked) what books I have read that have helped me to better understand and implement Agile, I have created a page for recommended reading. This (and posting a new blog update) has been something I have wanted to do for some time so I wanted to make sure I got something up.

I will update this list from time to time as I find more books that I think are worth the effort.

Software Development is Like 30 Rock – A New Software Development Metaphor Part 2

Back in January I stressed the need to come up with some new metaphors regarding software development because our old metaphors were causing some problems. I still believe this to be true more than ever. Developers are not just cogs, but are individuals. Research has shown that the most productive developers are up to 10 times more productive than others (see Peopleware for more). You cannot just plug any developer into a product team and expect them to perform at the average level for that team. Domain knowledge counts as well.

However, one thing that I did not do a great job of was suggesting a replacement metaphor. The one I used was the film industry. While I was correct that development is a creative art, it has recently been pointed out to me that making motion pictures usually takes a great deal of upfront planning and design – not a good analogy for an Agile advocate. This misstatement showed that I knew less about the film industry than I do software development.

Continue reading “Software Development is Like 30 Rock – A New Software Development Metaphor Part 2”

Want a Quick Agile Win? Try Office Hours

When you are an Agile Coach you sometimes must resign yourself to the fact that it will usually take team members awhile to get it and victories can be few and far between. One thing that I can recommend for a quick win and something that has worked well for me on multiple occasions (when it could be implemented) is something that I called office hours. I can only assume that I am not the one who invented this, but it is something that I “discovered” independently to solve the issue of resources being pulled into unproductive meetings when I needed them to be on task for our stories.

Continue reading “Want a Quick Agile Win? Try Office Hours”

Not Building a Car – The Need for More Appropriate Similes in Software Development

As humans we learn by analogy, metaphor and simile, adding new knowledge by initially relating the new to our existing understanding of the world. When we try to explain the software development process to the initiated (translation business stake holders), we use all kinds of similes to help them understand the process. The problem with similes is that they argue that something is like something else and many times people confuse the similes with metaphor, thinking that one thing is another. Not only do people confuse simile with metaphor, but many of the similes we use in explaining software development are not appropriate because they can cause more harm than good and they are not very accurate in their explanation.

Continue reading “Not Building a Car – The Need for More Appropriate Similes in Software Development”