Where are our mid-level developers?
January 29th, 2008 Posted in Flex Development, General Media / Stuff, Rich Internet Applications, Self Reference, web 2.0, web integrationOver the last few years a question has been lingering within the tech community: where are all the mid-level developers? Not only is this question being asked in the tech world, but it is now beginning to be asked in other industries that are becoming more tech/web driven. This post attempts to dig deeper into this question and bring to light some possible causes for this rapidly growing issue within our industries.
First off, let’s talk about what a mid-level developer is and how they fit into the developer ecosystem. For simplicity’s sake we have split the industry’s developer community into three tiers: junior, mid-level and senior. This is a generalization, but works for most of us in the industry. So what does this tiering mean and how do we judge what level a developer is?
Starting with the senior developer, these are extremely experienced veterans in the industry (6+ years usually) who have titles such as Lead Developer, Interactive Architect, Senior Developer, etc. They often lead teams of developers, guide product/application development and understand the inner workings of multiple technologies and languages. Senior developers are not always judged by their time in the industry. Some young developers are incredibly talented and have the Senior title. Some developers have decades of experience but are so specialized in one minute area that they have almost no knowledge of the broader spectrum around them.
The ideal senior developer has experience in a breadth of technologies. They are desirable because they can bring wisdom, experience and guidence to a project. Senior developers are often able to dictate where they want to work because of what they bring to the table. They are also very expensive to hire and usually the project does not warrant a team made entirely of Senior developers. This additional expense is just not practical from a cost management perspective.
Next up, the junior developer. The junior developer is usually fresh out of school or are jumping into to the industry for the first time. Junior developers are often hungry to learn but need a lot of guidence. They usually don’t have the experience or the confidence to be “thrown to the wolves” in a project. The beautiful thing about junior developers is that if you have the time and resources to invest in them, they grow rapidly into the much needed mid-level developer.
So now, the mythical and much need mid-level developer. These developers have two to five years experience and have a solid grasp on multiple technologies. Not only do they have the experience, they have the confidence to face a new challenge knowing they can overcome and solve the problem. A mid-level developer is usually still hungry for new tech/knowledge yet are not as ingrained into habits (good or bad) that you find in most senior developers. Mid-level developers are the back bone of the team; they want to learn and grow by working with senior members but also have the chops to teach and guide the junior developers.
Unfortunately in today’s industry we have a plethora of junior developers, a strong stable of senior developers but almost no mid-level developers to be found. This is a terrible predicament to be in because you can’t build a team of just junior and/or senior developers. Most projects have tight deadlines, so the weight unfairly falls onto one or the other’s shoulders.
In this kind of situation, senior developers are often given too many tasks because “they are the only ones that can do it” and find themselves mainly having to do tasks that are not in their job description. Its one thing to chip in when it is needed, but when the senior developer is loaded up with mostly boring or trivial tasks they will start to look elsewhere. As I mentioned, a good experienced developer can find work anywhere and if they are stuck doing what they consider “crap work” they will look elsewhere. This is exactly what the “direct recruiting” tactic I blogged about is targeting: find the dissatisfied senior developer and bring them to a new project.
For the junior developers, they are often told to sink or swim in this kind of structure. The Senior developers are swamped with tasks and have no time to properly mentor or guide the new developer. This means the junior is left to try and figure it out for themselves. This is often a disaster, from a project standpoint. Without proper guidence, bad or unwise decisions are made due to lack of knowledge or skill which can have a huge impact on the success of a project. Not only does it hinder the project, you burn out the developers due to the extra hours they have to work. Even worse, it causes them massive frustration from the knowledge that they are probably doing the wrong thing but don’t know how to fix it.
So back to the original question, where are our mid-level developers? On multiple occasions I have had the opportunity’s to talk to developers, hiring managers, and industry leaders about this issue and we keep coming to the same conclusion: the tech industry’s focus on a a single quarter’s profit margin is the core cause for this issue. This issue traces back to the dot-com bubble burst. At that time the tech industry was in a massive panic. Corporations where getting pummeled by their stock holders to stop the hemorrhaging of money. With the do-anything-to-tame-the-next-quarter’s-report mentality, the heads of the companies had to find the quickest way to stop losing money. What was the best option in their mind? Outsource of course! Why pay for one American developer when I can hire five in India, the Philippines, or Romania? With massive layoffs gutting the companies to stop the loss of money, yet still increase development and potential profit the industry moved the work offshore and this put a lot of experienced people out of work.
Many of the startups were folding and their developers began to flood the job market. At the same time, thanks to the pre-burst dot-com era, thousands of students where graduating with new CS degrees with the dreams of BMW signing bonuses and fantasies of IPO stock options. Yet when they got out of school there was no work to be had because everyone was closing shop. The market was beyond saturated and rapidly getting worse.
Jump ahead five years. Outsourcing is still growing, people are clinging desperately to their jobs, most of the students gave up their CS dreams and went back to school or found a new industry. Out of work developers were sick of the industry and decided to become lawyers, mechanics or teachers (I personally know at least ten friends who made this choice). Yet, a glimmer in the industry is starting to show. The Web 2.0 hype begins and the demand for developers rapidly grows.
Looking around at the post-dot-com devastation we find a workforce made up of crash veterans who managed to hold on to jobs (through brute force, luck or both) and starry eyed juniors looking to “make it” in the Web 2.0 boom. Instead of IPO dreams it is the hope for a buyout from Google or Yahoo.
All the people that would have made up the mid-level developers where never hired due to the crash. They never had the chance to build up work experience over the last five to six years. Instead we moved their opportunities to other countries or just put the workload on existing employees so they can do more with less.
Sadly, at the time of the crash the industry was desperate to survive and so intent on the quarter-over-quarter profit that long term planning was thrown out the window. Now, we find ourselves in a position where we desperately need the people we abandoned yet we can not get them back. It’s not a staffing issue in the sense of numbers of bodies, it’s the lack of experience. It’s brain drain and we can’t simply fill it back up by hiring a ton of new people.
As I mentioned before, we are now seeing the rapid technologization of many different industries. My father works in the print industry and they are seeing a huge demand for IT and web developers. Printers’ clients are expecting web portals to manage their print jobs, shops want the ability to move their now all digital files across the shop floor. Who can build this? Who can manage this? If we are desperate for experience in the tech industry how can new industries hope to fill the jobs? It’s an interesting time for our industries and economy, one that can not be quickly solved. It takes time to build experience and we are finally seeing the ramifications of quick, thoughtless decisions made in the past.
We now have to have the forethought to look at where the industry is going, how we can grow it stably to weather the ups and downs and most importantly not make the same mistakes in the future. We need to encourage new developers to join the industry, encourage companies to develop growth paths for employees, and build structure around how projects are managed. We need to do this and much more so that over the upcoming years we have a strong work force that is properly balanced. I honestly don’t know the entirety of all that needs to be done or even how it should be done. I do know that if we don’t start looking at where we are and why we are here, it is only going to be tougher out there for our developers and our industries.
2 Responses to “Where are our mid-level developers?”
By Tristan on Nov 19, 2008
OMG is this article so dead on.
By James on Nov 19, 2008
Thanks Tristan… I am glad that my thoughts jive with others out there in the community.