Communications of the ACM, July 2019, Vol. 62 No. 7, Pages 34-40
Practice: “The Top 10 Things Executives Should Know About Software”
By Thomas A. Limoncelli
A friend of mine is an accountant at a large company. The CEO and other executives do not know what accounting is, and that is OK. Everyone works around it.
OK, that is a lie. No company like that exists.
I do have a friend, however, who is a software engineer at a large company where the CEO and other executives do not understand software. They don’t understand what is reasonable to expect software to do, how it is made, how software projects are managed, or how a Web-based service is run.
That isn’t something that employees can “work around.”
Maybe that was OK years ago, but it isn’t OK now. In fact, my advice to this friend was to start sending out her resume.
Many companies that don’t think of themselves as software companies are finding that software is a key component of their operations. If executives and management do not understand how software is made, they will be ineffective compared to those who do. This will either limit their careers or negatively affect their company’s performance. Either way, they are doomed. (You don’t have to take my word for it: Gartner predicted that 50% of ClOs who have not transformed their organization’s capabilities by 2020 will be displaced.)
In this article, I list the things that “executives who get software” understand in an effort to help those executives and managers who have found themselves in this new world. The list is not exhaustive, as the full list could fill multiple books, but it is based on a very unscientific poll of my friends in the industry.
Software Ate the World
In 2011, Marc Andreessen wrote an article predicting, “Software will eat the world.” By that he meant two things: First, many traditional businesses are being replaced by software companies. Second, all other companies are finding the value they deliver is increasingly a result of software.
When Andreessen wrote his article none of the 10 biggest companies (by market value) were in software-driven businesses. Today, six of the 10 biggest companies are primarily driven by software. The others are ripe for a transformation.
The first category is easy to understand; online music stores such as Apple’s iTunes have probably replaced your local music store. A physical location is eliminated in favor of one solely defined by software.
The second category is a subtler change. For example, while automobiles have not been replaced by websites, what makes auto companies succeed is increasingly a result of their software acumen. Their supply chain, manufacturing, marketing, and sales processes are controlled by software. The typical car has 10–100 million lines of code in it. The majority of what differentiates car models comes from software-powered features such as the dashboard and audio system. Everything I love about my new car is software; everything I dislike is software that could have been better.
I recently purchased a very low-tech refrigerator. As far as I can tell, it has zero software inside of it. Not long after the purchase, however, I received an email offering a water-filter-replacement subscription. That system is entirely software driven. Considering the high price of the subscription filters, I presume they are responsible for more profit than the original purchase.
If you don’t control what makes your product valuable, then you are not much of a company. Therefore, executives and managers must now understand the software-delivery lifecycle.
Both Stack Overflow Talent and LinkedIn now list more software engineering job advertisements for nontechnical companies than the tech industry itself. This is a major shift in the economy and indicates that companies are ramping up their software practices.
The List (Abbreviated)
1. Software is not magic.
2. Software is never “done.”
3. Software is a team effort; nobody can do it all.
4. Design isn’t how something looks; it is how it works.
5. Security is everyone’s responsibility
6. Feature size doesn’t predict developer time.
7. Greatness comes from thousands of small improvements.
8. Technical debt is bad but unavoidable.
9. Software doesn’t run itself.
10. Complex systems need DevOps to run well.
Wait, there is more…
Indeed, there are volumes more that an executive should know about software. Sadly, cultural pressure and David Letterman say I should stop at 10.
Here are some bonus items:
Bonus item 1. Uptime is never perfect.
Bonus item 2. Spammers and abusers ruin everything.
Bonus item 3. Malleability is expensive.
About the author: Thomas A. Limoncelli is the SRE manager at Stack Overflow Inc. in New York City. His books include The Practice of System and Network Administration, The Practice of Cloud System Administration, and Time Management for System Administrators. He blogs at EverythingSysadmin.com and tweets at @YesThatTom.
Webmaster’s Note: This is an excellent article that every executive should read, especially if he or she says something like “I have IT to deal with software, so I don’t need to know anything about it.” If you or your boss says anything like that, then this article is a must. I’ll bet after reading it, that sentiment fades away, quickly.