I recently considered checking out other job opportunities in an effort to find more satisfaction in what I do for a living. As a result I was receiving emails from various job sites about available software positions in my local area. As I saw what was available, I found a disturbing trend where companies are looking almost exclusively for junior level talent. There has historically been more job opportunities for junior level engineers than senior level but it seems that the gap has widened considerably in recent years. This is disturbing for several reasons.
It is true that senior level engineers make more money than their junior counterparts by 50 to 100 percent but the difference in cost is more than compensated for in the product delivered by a senior level engineer. Many companies are becoming short-sighted in selecting staff in the hopes that a less expensive engineer with 3 to 5 years of experience will produce the same product that a more expensive engineer with 15+ years will produce. This is almost never the case and in my vast experience I have seen the opposite including disasters that have cost companies large contracts worth millions of dollars.
As an engineer with 30 years of development experience, I am confident that I can write code at 2 or 3 times the speed of a typical junior engineer and the code produced will be maintainable, testable, and traceable to the original requirements. I contend that a senior level engineer working within his area of expertise is worth more than 3 or 4 junior engineers and will performs needed tasks that a junior engineer would never think to do. The senior level engineer usually knows how to produce a product from original requirements through testing and maintenance and knows how to talk with customers and make relevant presentations. Having a senior level engineer on a project many time alleviates the need to have senior level project management supervision.
I recently had a company review my resume’ and determine that I was a perfect fit for what they needed and then not interview me because I make $20K over their cap. (This also despite the fact that I already possessed the security clearance that they needed which will cost them about $20K to obtain for someone else). My question to them is how much it will cost them when the product that they create fails for one of many reasons generally attributable to inexperienced software developers (including: schedule overrun, failure to meet customer requirements, a bad reputation for a product that does not perform, or unmaintainable software). I also am aware of two cases where companies lost entire baselines of software because of poor configuration management on the part of the immature development team. Additionally, I assume that we do not need to cite any of the well documented software disasters over the years that have cost companies millions.
Even within a company, sometimes a program manager will select a team to work on his project based simply on the short-term internal cost of the engineers without consideration for what experience would bring to the team. I recently worked for a company that did this and used less senior talent on an important competetive project funded by the government. A successful demonstration would mean that they would likely win the large development contract to follow. Needless to say the demonstration failed in front of the government (probably for lack of development discipline or testing) and the company did not win the development contract to follow. I think that this is an example of short-sighted thinking that separates good companies from bad ones.
I am not sure if I will continue looking around since my current company at least recognizes the value of senior level talent.
Dr W Roger Davis