Small to mid-size engineering firms have a difficult time hiring and retaining quality software engineers. The typical scenario is that if they find a top quality software engineer with:
- Good Communications and People Skills
- Good Documentation Skills
- Good Systems’ Architectural Skills
- Good Software Design Skills
He/She will leave in less than three years. This is not enough time to build a quality organization nor to develop quality products. The average longevity among IT workers is 1.5 years across all companies in the US.
Statement of the Problem
How do you create technology intensive products when you are not big enough to retain quality software engineers? Salary and stock options are not the only solutions to retaining good people. Generally the problem is that companies of this size will not be able to give him/her enough challenging jobs to retain them for as long as they would like. Good engineers thrive in challenging situations. Good engineers grow when exposed to lots of different projects. Good engineers grow other good engineers. Most small to mid-size engineering companies cannot provide that kind of environment.
Using a software consulting company can help you augment your existing staff and enable you to get more product out the door with higher quality and lower cost. It will enable you to concentrate on your core business and system issues while your business grows and your product mix increases. It takes time and money to develop the software skills necessary to create quality software driven products.
Case Study – One Company’s problem
In 1992, a small company with two software engineers was developing a new line of software intensive products. They were actively seeking to hire additional “permanent” software engineers to build their software department. They were looking for software engineers with 2-5 years of experience. Our company responded to their ad for two permanent engineers and offered them a different solution. Previously, they had bad experiences with consultants working as contractors. In spite of this, the model we presented them was compelling and it proved to be successful.
We offered to do the entire software development at a fixed price with the bulk of the work done off site. We assigned two engineers who averaged 15 years of experience each. Over the next ten years, this team developed more than 10 products for this company at less cost than 2 full time engineers.
The advantages to them were significant:
- The consulting company was locally owned and run (within 50 miles)
- All of the work was done on fixed price contracts. They knew their costs up front
- The level of experience brought to the table was much higher than they could have hired
- The consulting company was able to retain all engineers so the knowledge base remained for the duration of the product (10 years)
- They did not need to allocate floor space for these engineers
- Even though the hourly rate was higher, two other factors combined to reduce the overall cost:
- The experience level increased the productivity
- During down times, the consultants were working on other projects
During this ten year period, there were significant periods of inactivity for the software engineers. Each time a new product hit the market, there was a considerable lag before the next development took place. What would the company have done with these permanent engineers? Most likely, these engineers would have left. During this period, our engineers were working on other customer’s projects, working with new technologies and enhancing their skills.
Sadly for this company, these products were so successful, that the company was sold by it’s parent company (which had been bleeding for many years) to its competitor. The competitor had similar, yet (in our opinion) deficient, products. Yet, it kept those products and eliminated all of our client’s products. This effectively eliminated the needs for embedded software engineering. Fortunately for this company, they did not need to lay off any “permanent” engineers but merely did not need to use our services any more.
As a footnote to this case, the market eventually demanded the re-institution of one of the products. Here again, the consulting solution proved invaluable. It is almost impossible to re-hire your team more than a year after you let them go. In our case, they simply started using our services again.
A good software consulting company can be used to cost effectively meet the ebb and flow of your software development needs. Look for the following attributes in such a company:
- They are privately held and the owners are intimately involved in the business
- They offer to work on a fixed price basis
- They have a proven track record of delivering quality product, on-time and on-budget
- Their owners have a long history of integrity and character
- Their employees are highly skilled and well qualified
- The employee retention rate far exceeds the industry averages