Software development methodologies have evolved significantly over the past several decades. They once involved a lot of upfront, detailed planning sometimes taking more time than actually writing the software. Today the focus is on building software in small increments, in part to quickly validate assumptions. While some level of planning does occur, we assume less and validate more. When done right, it focuses on maximizing value and as a result eliminates waste.
Another significant change is a shift from top down, command and control style project management, to self managing teams. Teams work with a product owner, and in many ways are equals in terms of suggestions and ideas on how improve the product. While the product owner most often has the final say, it is considered a collaborative effort. For best results both parties need to work together to form a cohesive unit. This in stark contrast to the team simply following orders from above.
The need to be able to deliver software frequently and efficiently has led to a need for better engineering. In order to support continuous delivery, code needs to be testable, processes need to be automated, and systems need to be properly abstracted in small interworking parts. All of these needs increase the bar for engineering, and in turn increases the demand for highly skilled developers.
To put it in real terms, in order to create a successful business all one needs is a vision, a skilled dev team, and a small number of supporting staff. According to Bloomberg WhatsApp had a company of 55 before they were sold to Facebook for $19 billion. Out of the 55 employees, 32 were engineers. While most companies are not in the business of selling software, it does illustrate that order to create great software you don't need much more than great ideas and a great software team.
In my observations over the past few years, businesses are also slowly coming to this realization. Skilled software developers are highly sought after, and wages are reflecting this. Another observation is many teams don't have traditional project managers, analysts, etc. Great leaders and visionaries are still highly sought after, but in terms of numbers the supporting cast seems to getting smaller.
So what does all of this point to? The biggest impact of all of this is that the people creating the product are the ones that are producing the most value. Some of the older structures and methodologies required a larger supporting cast, although that was a result of less efficient processes. While many people were doing great work, a lot of that work would now be considered waste.
Perhaps another equally important aspect of this is that the team needs to be empowered to make decisions and be allowed to think strategically. This means removing bureaucracy and impediments, and being allowed to focus on what they do best. This doesn't require layers of management and directors at all. In fact it requires little outside of being provided the right tools, work environment, and a clear understanding of the product vision.
Why do I bring all of this up? The traditional thinking was/is that to order to be successful one had to rise the ranks of management. We've already started to see some organizations get rid of the idea of hierarchy. Ultimately we should measure success by the amount of value that one provides. More specifically in the tangible value that your customers benefit from when they use the software everyday. So perhaps it's time for us to evaluate how we think of success. Leaders are of course important too, and we definitely still need them, but leadership doesn't need to come in the form of management. A software team member can exhibit leadership, and by doing so provides additional value.
So let's reevaluate at how we look at things. Slowly but surely organizations are evolving, just in the same way that software development methodologies evolved. Let's recognize this. Perhaps most importantly let's recognize people for the value that they produce, and encourage them to continue to produce that value. We don't need more managers, directors, or executives ... we need more people that produce value.
Comments
In light of this, I'd like to simply give an open-ended question that both supports--and challenges--your post:
--> What is the lesson in that?
If our goal (as an economy) is truly be efficiency as possible, then we need to look at the areas that can have the most benefit. Unfortunately what I've seen is that many only look at small things while most often missing the bigger picture. (Layoffs, increasing hours, decreasing pay, etc.) It takes both courage and vision to try be bold and try new things, but they can offer the biggest rewards as well.
I hope that answers your question.