Internal Software: Why Build Internal Software?

Nick Reavill
- San Francisco, CA

The opinion that software will soon dominate and radically change every aspect of everyone’s lives has become so commonplace, and repeated so frequently, that those of us in the tech industry treat it as a statement of fact. A less heralded but more concrete fact is that much of the productivity gains expected from the introduction of computer technologies have not been realized.

As Tyler Cowen explains, “Labor productivity has been growing at an average of only 1.3 percent annually since the start of 2005, compared with 2.8 percent annually in the preceding 10 years.” (This whole article is worth reading).

Software has increased productivity across the board for some industries, such as manufacturing, but for many other industries only certain companies have managed to capture the benefits. A study from 2003 showed that while Wal-Mart and Kmart both invested in IT, Wal-Mart did a better job of changing the rest of their business to work with the technology, and consequently saw “higher levels of productivity and market value”.

Software is not an inert investment. A company can’t simply dump Microsoft Excel onto its laptops and expect to see the extra money come rolling in. It needs to hire or train employees who are well versed in Excel and modify its processes to take full advantage of the program. In fact, any sufficiently skilled Excel user will be doing a job very similar to a software engineer: building internal software (albeit in a highly restrictive environment). A company that is seeing productivity gains from using Excel has already hired quasi-software engineers, but the job title they labor under is more likely to contain the word ‘analyst’ than ‘engineer’.

Excel and programs like it are powerful pieces of general software. Skilled users can build powerful, business-specific software on top of them. The problem is that for any reasonably sophisticated business application, Excel is far from the best tool with which to build it. The image that comes to mind is of someone building a table with a Swiss Army Knife - it’s possible but it will waste a lot of time and the result will be pretty unsteady. (Speaking of wasting time to prove something is possible, Tom Wildenhain built a Turing Machine using Powerpoint). These general software applications, by their natures, limit the possibilities of what kinds of internal software can be built and they also force users to tackle, and even define, their problems on the terms set by these limitations. (PowerPoint is the most famous offender in this regard: it blew up the Colombia Space Shuttle, and is an existential threat to the US military).

Businesses will also invest in enterprise software, which are built with more specific purposes in mind than Excel and its kind. These purposes encompass functions such as finance and accounting, inventory management, project management, and many others. External experts are often hired to install these systems and ongoing support is essential to customize the tools for the specific needs of the business. These customizations only go so far, however, and the users are ultimately bound by the software provider’s vision of how a particular process should operate. This might be fine for accounting, where industry-wide conformity benefits the business (for auditing or public reporting purposes, for example) but is more problematic for inventory management where a unique process could be a competitive advantage.

It seems obvious, then, that some kind of internal software is needed for a business to increase productivity using computers. This is revealed by how highly management consulting firms prize Excel and PowerPoint proficiency, and by how much companies will pay to have enterprise systems installed and maintained. Why, then, is not true internal software so prized? (True internal software can be loosely defined as applications created from scratch out of code to solve the problems of a specific business). This kind of software has many advantages over Excel-based tools, including: genuine data integrity controls; purpose-built user interfaces; no data limitations; no concurrent user number limitations. Custom-built internal software also has many advantages over enterprise software, including: less expensive; more flexible and easier to adapt to changing situations; driven by specific business needs; potential to be a competitive advantage.

The confounding productivity gap between the expectations and the reality of the widespread use of computers could be narrowed if businesses were more willing to develop their own true internal software, to meet their specific needs and solve their specific problems. In-house software engineers should become as common in all businesses as machinists once were in the manufacturing industry. Having the right tools is essential for any successful business, and you can only be sure they are the right tools if you make them yourself.

In the coming weeks I’ll be posting more about internal software, why it’s under-appreciated, the real advantages it can bring to a company that deploys it, and how it works hand-in-hand with its celebrity cousin Data Science.

Tweet this post! Post on LinkedIn
Multithreaded

Come Work with Us!

We’re a diverse team dedicated to building great products, and we’d love your help. Do you want to build amazing products with amazing peers? Join us!