Innovation Files has moved! For ITIF's quick takes, quips, and commentary on the latest in tech policy, go to itif.org

Software Factories

It’s been a while, I don’t know if “software factories” is still the name of the meme, but the idea is simple.

There are two ways to profitably make software: low wages or high productivity.  The reason the software business is flying from our sweet shores is that ROW has mastered the low-wage variant.  I quit developing software in 1997 because I realized that ROW software engineers who thought a tenth of my salary was good money were actually writing world-quality software.  Obviously that trend has continued.

Which leaves “high productivity” as our only option if we want to innovate and survive.  What is high-productivity software?

Ever since I’ve been in the business people have been convinced that productivity in software inheres in leaving the details to the computer.  High-level languages were invented so people didn’t have to write assembler.  4G languages were invented so people didn’t have to write high-level languages.  Declarative languages were invented so people didn’t have to go into means, only into ends (handy in political life, too, I would think).

The idea behind software factories, or domain-specific languages, is that there’s no such thing as a generic high-level language.  You need a language that’s optimized for a particular domain.  So there are (or should be) domain-specific languages for home automation, for mortgage underwriting, for steel manufacturing.

In a software factory, one team writes the domain-specific languages, and another team writes applications using the constructs of the domain.  The domain-specific language team is expert in capturing domain objects and rules and reducing them to general-purpose engines.  The application teams are expert in capturing application/business requirements and reducing them to procedures (or functional expressions) in the domain.

High productivity.  You can pay pretty high wages to people working at this level of abstraction.

Why hasn’t the software factory idea taken off?  And what can we do about it?

Welcome your thoughts.

Print Friendly

About the author

an Gordon is Research Director for Valhalla Partners, a Northern Virginia venture capital firm. Dan has twenty-eight years experience working with technology, as a computer scientist, software developer, manager, analyst, and entrepreneur. Prior to joining Valhalla Partners, Dan was a Director and senior staff member at the PricewaterhouseCoopers Global Technology Centre, analyzing technology trends and consulting on technology-oriented strategies in the software, e-business, wireless, optical, networking, semiconductor IP, and life sciences arenas. He worked with clients from North America, Europe, the Middle East, and Australia. Dan was a Contributing Writer and Contributing Editor to the Technology Centre’s annual Technology Forecast, and a frequent speaker at industry and general business meetings. Before joining PwC, Dan spent 20 years in Silicon Valley as a software technologist, manager, director, and entrepreneur, including senior technical roles at well-known Silicon Valley firms like Symantec, Intuit, and Oracle. Dan has also been involved in startup companies in the applied Artificial Intelligence and Web applications fields. Dan has a B.A. (cum laude) from Harvard University and an M.S. from New York University in Computer Science. He is a Professional Member of the IEEE and ACM. Dan lives in Washington, D.C. with his wife and two children.