
The mathematics around investing in Software Development may be counter intuitive to most. As anyone in business knows, people are the greatest expense and assets. This well known fact seduces business owners to look for the cheapest talent possible in order to yield maximum margins. This can be a critical mistake when developing technology and a dagger into the heart of the business during a recession. Albeit tempting to be penny wise and pound foolish, I hope to shed some light on how to spend today's important dollars to solve tomorrow's technology challenges.
Producing sound technology is a challenging endeavor that requires investment. In software this translates into dedicating engineering resources and time to a common goal and plan. To state the obvious an engineer commanding 70K per year is different than an engineer commanding 100K+ a year and the difference is not just 30K. The delta represents mostly experience and to a lesser degree raw talent. Even still business owners load up on the least expensive engineers and plummet into complex product ideas only to find out later that the product has to be rebuilt! It is commonly known in software that the cost of rebuilding is far greater than double. Consider building the foundation of a house incorrectly. To start over you have to destroy the house, demolish the foundation, rebuild the foundation and the house. Let us also not forget there is a cost to throwing things away. Suffice it to say that it "pays" to get it right the first time.
What does paying mean? It means fewer engineers paid at a higher rate as opposed to double the amount of engineers paid a lower rate. Said another way, many junior engineers left to their own devices can often equate to more confusion and costly development cycles. The result is often catastrophic preventing scalability and growth. Worse yet you sell a lemon to customers negatively impacting your product and brand. Having the right number of engineers with the right experience sufficiently compensated will increase your chances of having proper rigor in development reducing cost over time. Ideally these engineers produce a blue print for what is to be built-also known as an architecture. It is the manifestation of this architecture that becomes the company's intellectual property (IP). IP-when done right-equates to a higher evaluation.
Business owners will reap the benefit of additional savings for every engineer acquired after the architecture is in place. Although this will be invisible on the balance sheet, this will represent the most significant savings overall! Investing in the talent up front that can give products the proper start and foundation and will ensure that you are maximizing your investment for engineers that join the project later. Just as the painter cannot start until the drywall is in place, the software programmers should not start until the architecture is in place. This is often missed because all talent is mistakenly considered equal.
What is the right talent? You need an architect that constructs the blue print of the house you are building. You then need a team of people who follow the blue print, in their respective areas of expertise, and a process to manage how things are built as well as the schedule. You may be asking yourself how much should it cost? To answer a question with a question, how much is the problem worth to you? I did a quick salary survey and found that software architects range from 125K up to 200K+ depending on geography and the complexity of the technology. If this article had ears, we would all hear massive sighs! It seems like a lot.
It's all about approach. At the end of the day the most effective team will have an architect spending 80-90% of his time ensuring that the overall design is followed and in tact. A large part of the job is making trade-offs where necessary keeping in mind there is always a happy balance between pure architecture and meeting the demands of the customer. Working with the architect is a Senior Engineer or two. Their task is to do most of the heavy lifting designing and implementing large chunks of business logic.These guys are typically coding experts ideally with domain knowledge. Last but not least and equally important to the team are junior engineers who focus on very specific components of the system spending 100% of their time coding, testing, coding, testing and coding and testing. Get the point?
The bottom line is quality software requires investment in time and money. Software has the uncanny ability to make it all seem easy like dragging and dropping icons on your desktop. Your team needs structure. Your process needs structure. Your software needs structure.
The tried and untrue method of cheap talent all empowered with blunt objects will waste time and investor capital. If you follow the same old route, you will end up at the same old place at a greater cost!
Technorati Profile