Technical skills is the core of any development project. In the end it is the skilled programmers that write the code that forms the product. Everything else is just support to ensure the coders develop the right features in the right order. But somehow management tend to look at the developers as the lowest level in the project hierarchy. How come that the respect for developers and their technical skills get lost?
Having been on a number of projects it’s evident that technical skills matters. They not only matters but are crucial. All processes (agile or whatever) are only there to support the technically skilled who write the code. In fact, the more skilled developers, the less need for tight processes. The then ground breaking Extreme Programming Explained: Embrace Change argued for tearing down most of the then dominant, heavy weight processes and instead trust the developers. It was of course a success, but not only because of the process. It was a success mostly because of the people.
With Kent Beck and Martin Fowler on the same team the process doesn’t matter. They would probably succeed in a heavily regulated waterfall process, coding on punch cards with needles by hand.
But to really unleash the power of such a team it’s best to give them freedom to do their magic and stay out of the way.
That’s exactly what eXtreme Programming is about: Connect the users/customers directly to the development team and keep management out of the way. It worked in the Chrysler C3 project because of the skilled people involved. It works in any project with a skilled team.
Skills and Practices
In XP, there are certain practices that enables the evolutionary design work: refactoring and test driven development. Without those practices any effort to do evolutionary design will fail miserably and produce a big pile of spaghetti code that’s impossible to maintain. In my experience, most teams do not have the skill level required to succeed with XP. If you are on a team that has the skills – go ahead and unleash those skills through a light weight methodology.
If you are not (which probably is more likely) you will have to use a methodology that supports the less skilled people in the team (I assume that since you are reading this, you’re a top developer). It’s no idea to try to push the XP practices onto a team. A team can be inspired to adopt the XP practices, but can never be pushed to do it. The will to improve and adopt modern practices must come from within the team, anyone external can only remove impediments (such as getting PHB managers out of the way).
A methodology that treats managers as impediments and want to keep them out of the way is of course threatening to managers. XP is in many ways too extreme for most managers (and for most teams). I don’t think it’s a coincidence that Scrum is the methodology that made agile mainstream. Scrum has a place for managers as product owners (and sometimes as scrum masters, but that’s worse). Scrum has a number of practices that can easily be understood and controlled by managers. Scrum also puts more focus on process and less on technical practices. That makes it easier for managers to understand and also easier for less technically skilled teams to adopt scrum.
But without the technical practices those teams won’t be as successful.
But for a manager the teams can be controlled. Without technical practices that really separates the skilled from the average Joe developer the developers can be reduced to interchangeable resources. I don’t like when I’m seen upon as a “resource”. I assume you don’t like it either? By doing that, the craftsmanship and pride in doing a great work is lost. To a weak manager that is appealing, because it will move focus from star developers to the manager.
Skills are Threatening
For a weak manager that wants to keep the position (or even advance in the hierarchy), skilled developers is a threat.
The respect for skills never got lost.
The respect turned into fear when weak managers felt threatened by skilled developers.
The managers are afraid that skilled developers will show that there is no need for managers. But that’s not true. It’s only weak managers that are not needed. Every team still has use for a skilled manager that can keep impediments (politics!) away from the team. But that requires a manager that has the skills and courage to handle the politics and other impediments for the team.
Unleash the Skills!
Managers, please unleash the skills of your team. Recognize where the skills are and let those people free to do their magic. Don’t be afraid of the developers threatening your position. Most developers don’t want to get into management. They want to write code. If you leave them freedom they will produce fantastic results and you will be part of the success.
It is not only managers, but also customers that are to blame for the lack of recognition of skills. Customers want low prices and focus on number of years of experience. That is totally counter productive.
Dear customer, a few words of advice for you too. Please stop ignoring skills. Your competitors ignore skills, so if you stop ignoring skills, that will set you apart from your competitors. If you are willing to pay just a bit more (20% would be enough in Sweden) you will get people with 5-10x the skills. Look for skills, not for number of years of experience. Stop pushing the demands for lower prices, start pushing the demand for higher skills instead.
The Amazon.com link in this post is sponsored.