January 29th, 2008 Posted in Flex Development, General Media / Stuff, Rich Internet Applications, Self Reference, web 2.0, web integration | 2 Comments »
Over 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. Read the rest of this entry »