This Venturebeat article highlights some of the very real challenges organizations face in acquiring and retaining software development talent.
I spent the early part of my career working for non-consulting companies. My first job was at an ISV, and that sort of org should (imo) directly employ developers and related specialists. After that I worked in IT, and I remain convinced that most non-software companies should not directly employ large numbers of developers or related specialists.
Why?
We software folks distort salaries, org structures, and rarely fit into an org’s normal culture. Take a manufacturing company, for example. Their human resources and culture is all framed around the need for people who acquire materials, use them to manufacture other goods, manage inventory and logistics, sell their products, implement cost management around run and overhead costs, etc.
There are many opportunities for software and automation to help such an org for sure. Yet I can tell you, having worked for this type of org, that they don’t know how to manage, pay, promote, or build the career of software professionals. This is because we aren’t part of their industry. Yes, our skills are useful to their industry, but we actually belong to our own industry, and our industry has its own pay scales, career growth, opportunities, etc. Virtually none of which overlaps with manufacturing.
I am of the opinion that most non-software orgs should employ program, product, and maybe project managers, but not specialized technical folks like developers, designers, database experts, and the other services we provide through consulting. Instead, these non-software orgs should hire consulting firms that can provide software product engineering (SPE) services, providing a buffer so we are in our industry and they are in their industry.
Don’t get me wrong. I really enjoyed much of my time working in non-software industries, deeply understanding and helping to solve complex business problems through technology.
Much of my job satisfaction is in seeing what I’ve helped build actually get deployed, used, and watching the solution have an impact. Rarely do consultants get that reward, because by the time their solutions get rolled out, they are off to another client or project. So for people like me, it is better to be part of an org where that sort of reward is a regular occurrence.
Most consultants I’ve worked with over the decades are less motivated by that sort of reward, and are primarily engaged with the ideas of building software, solving problems, and making good money doing it.
But for non-software orgs themselves? It seems like the right answer is to focus primarily on finding a high quality consulting firm with which one can build a long-term partnership. Let the software folks and the non-software folks each live in their own industries, and buy consulting and engineering services as needed.