Software expertise can be applied to any vertical market
This article in The Economist gives me a great example to explain one of our core principles: Software engineering is its own discipline, and being great at software development can be leveraged in many different vertical markets.
The Traveling Salesman problem, illustrated by The Economist, is stated simply: How do you find the best route for a traveling salesman to visit several cities and then return home?
Classic problems like these are studied in computer science not because we are so concerned with how much time a traveling salesman spends driving. Rather, we study them because they have so much in common with real problems that real businesses want solved.
The same techniques answer questions like ‘How many ways can human DNA sequences be assembled?’ or ‘What’s the most efficient supply chain configuration for a multinational corporation?’
These problems are easy to solve for simple cases but become far more complicated in real world scale.
If you have three or four cities to visit, you’ll examine all the possible paths and then pick the best one. Three stops means three different paths. Four stops means 12 paths, five stops means 60 different paths. Once you have 10 different cities, there are 1,814,400 possible paths you could take. A business that tries to approach a complicated problem like this with lots of variables and options, without great software is certain to fail or succeed in an ineffective, costly way.
Andy Grove, former CEO at Intel, recently said something similar about business in general. In “How America Can Create Jobs”, he says “Startups are a wonderful thing. Equally important is the phase where companies scale up.” I can’t speak to scaling a business to the size of Intel, but I know that his observations work for software.
Poorly written software will not scale with a business as it tries to solve bigger and more complicated challenges. Creating the great software that supports a company’s growth plans requires more forethought and more training.
Solving big challenges in the most efficient way is universally useful. It shows up in such disparate fields as game development, financial modeling, aerodynamics, silicon chip layout and DNA sequencing.
Enterprise Resource Planning (ERP) and Supply Chain Management (SCM) systems solve problems that look very similar to the traveling salesman problem to a computer scientist. Even though these problems belong in very different vertical markets, the solutions rely on very similar software processes.
The best software developers have many techniques they’ve learned to solve real business problems. When a software developer tells you that they can solve your problem based on what seems like an irrelevant example, they are leveraging these techniques and applying them to your situation. We are software experts, and that lets us create efficient solutions to very different problems in very different domains.