Image by Verne Ho

So you develop software. Are you a software company?

Oct 18, 2023

Many companies do some form of software development. It might be software that is offered to others in the form of SaaS, it could be a team developing internal tools, or it could be a smaller non-tech company with a bunch of excel macros that run the back office.

Why software is built, how software is built, and the attitude towards the process can differ significantly between different types of companies. Major differences can include developer pay, influence over company direction, internal prestige, etc. There’s nothing wrong with a job writing software at a non-software company, but developers and company leadership alike should understand the differences and help make sure to adapt.

If the “Are you a software company?” question is answered on a continuum, at one end we have a clear “yes, of course we are a software company”. Nobody will argue that Salesforce is anything but a software company. Microsoft once made almost all of its money by selling boxes with discs that people used to install Windows or Microsoft Office. Adobe gets most of their money from people who want to use Photoshop, Illustrator, or other Adobe software.

There are other companies though where it is less clear whether the company is a software company.

Take Google, for example. A huge percentage of Google’s revenue comes from advertising – and almost everything they do is designed to maximize that revenue. They have some of the brightest and most capable people in the world all working to make sure that Googles advertising hits the most eyeballs possible and maximizes their income and profit. Google has written web browsers, revolutionized how personal email works, all but invented the online office suite, developed the most popular consumer operating system in the world, and of course built the most ubiquitous search engine ever created.

To actually deliver those things they developed new programming languages, reinvented how data centers are built and operated, and came up with new computing paradigms and algorithms at a rate that almost nobody else has done. But, with a few small exceptions, each of those projects serve the larger company goal of making money via advertising.

How about Apple? They write a ton of software including the operating system for the most profitable phone in the world, and one of the most popular computer operating systems in the world. They build photo management software, music creation software, office productivity software, video editing software, virtual reality software, web browsers, and more. However, only a very tiny amount of the software that they write is ever purchased directly. Instead, people are buying a computing solution where the software is part of the complete package.

Other companies use software as a way of gaining an edge in their primary, non-software business. I’d wager that a large percentage of software developers work at a company that fits this description.

When I worked in operations at a transportation company we were paid to get people from point a to point b, but we used software to do it. The company has been around for 25+ years and saw their software grow out of a Unix terminal application into, well, something at least a little bit more modern than that. Despite a lot of effort being put into software, people really just wanted to get picked up and dropped off where they were going – so the software never needed to be excellent. The system would be hard down for hours or days at a time, and depending on the circumstances sometimes nobody even noticed. The company was very much a transportation company rather than a software company, and their attitudes towards software development reflected that.

So why does it matter?

Well, if you are a developer evaluating an employment opportunity you should be aware of the attitudes towards software development. Are the developers overworked and underpaid, and given impossible tasks by managers who know nothing about software development? Are they frequently blamed and treated poorly when the tasks set by people who know nothing about software development aren’t met (surprise, surprise)? Or are the developers respected and made an active part of company leadership, with their input used to collaboratively guide the business?

The more that software is treated as a core competency of the business, and the more it is recognized as a source of revenue or a source of efficiencies that drive the bottom line, the more likely it is that software is being built in a way that it can make an impact. The difference for a developer at a company that respects the software development process can be night and day in terms of pay, quality of life, and other factors.

If you are a leader at a company that isn’t explicitly a software company by definition, then the more you can make software a core competency the more successful you are likely to be. Software can make a significant difference in any business, and the more your software developers are allowed (and encouraged) to participate in the entire business, the more they will be able to contribute to the bottom line.

Developers are very solution-oriented, and when they see a problem that can be solved with software it’s often all you can do to stop them from building a solution . Providing an environment where they are able to see the big picture, understand the goals of the business, and work with others to provide these solutions can be extremely powerful.

The bottom line – if you are a software company you probably have a lot in place to build software well, retain engineering talent, and accomplish your goals as a company.

If instead you have invested in software development to give you an edge in your non-software industry, you may need to make a special effort to allow those resources to be fully taken advantage of. Understanding what is involved there will make all the difference between the success and failure of your development efforts.