It's almost gospel: Software is eating the world, so of course your company needs a large internal development staff, and you need to give them a high level of autonomy and responsibility. Right?
Wrong. Most companies delegate far too much responsibility to software developers, who often have little knowledge of -- and less concern for -- the needs of the business.
Many executives, non-technical and technical alike, make the essential mistake of believing that the innovation benefits of software can be realized by hiring rock star developers. The reality is that the quality range of software produced by developers is immense, and the spread gets even vaster as the code gets more complicated and updates pile up over time.
[What's the best way for an aspiring programmer to learn? Read The Right Training Tech For A Tech Career.]
This quality delta is compounded a thousandfold by two factors. First, best case, it is incredibly difficult to identify excellent developers in the hiring process; it is essentially impossible for non-technical hiring managers to identify them, even with so-called "expert" recruiters. Second, almost no one can tell whether software is excellent or not until it has been used in the wild for a decent amount of time. Even with agile development practices, which get software into the wild more quickly, an organization has essentially committed a massive amount of resources to its development staffers before it knows whether they're capable of building anything better than a mediocre product.
There are many examples in the news of this phenomenon making or breaking companies, but the press never identifies the core issue. Take Netflix: The "smart" money was on Netflix-as-middleman getting crushed by content producers. But what investors failed to understand was that Netflix had excellent software strategists, architects, and developers, whereas the content producers did not. And so Netflix was able to deliver good software across an enormous number of platforms (unlike the content providers). As a result it won for long enough to become a content producer itself.
The takeaway from Netflix should not be, "Oh, we should get awesome software guys like Netflix has, and then we'll win." The takeaway from Netflix should be, "Wow, those content providers had a ton of money, influence, and executive talent, and they still couldn't build the right software. Maybe we should be worried about the software we're trying to write internally."
Businesses are paying handsomely for this uncertainty. The 1,117 IT staffers and 889 IT managers in the 2014 InformationWeek Salary Survey with a primary job function of application development demand compensation solidly above that of the typical IT professional. Their base salaries were up for the third year in a row. Make no mistake, we are in the middle of an arms race for developers. Silicon Valley firms and venture capitalists are spending enormous amounts of money to scoop up the best talent, and top software developers are increasingly starting their own companies. The aspiration for developers is to work in Silicon Valley, and for an elite company there.
It has never been more difficult for the average US firm to hire excellent developers, and yet I can't think of a major company that isn't continuing to mindlessly add new dev staff in a doomed quest to build a core competency in development.
The solution is fairly simple. Companies absolutely need a core competency in maintaining, supporting, and making at least minor updates to the software they use internally and provide externally to their customers. They also need strong product expertise, and, specifically, strong technical product expertise, so that they can make sure that their software is excellent.
But they don't need a core competency in developing "greenfield" software. It is much more difficult and risky to build software from scratch versus maintaining well-written code. My advice? First, try to find existing software that comes close to serving your needs, perhaps from the growing library of open source software, and customize it. Failing that, outsource greenfield development to experts.
Get rid of the mindset that software is such a differentiator that you need to code in-house. At one time, it was common for companies to maintain their own power plants, because power was critical to their operations, and they didn't trust anyone to provide it. Some companies still push back against cloud, as if where VMs reside is going to make or break the business. That's clearly wrongheaded, and at some point soon, companies that insist on maintaining their own data centers will be at a competitive disadvantage.
One day, we'll look back to this period of in-house greenfield software development the same way.
Our latest survey shows growing demand, fixed budgets, and good reasons why resellers and vendors must fight to remain relevant. One thing's for sure: The data center is poised for a wild ride, and no one wants to be left behind. Get the Research: 2014 State Of The Data Center report today. (Free registration required.)