Most of my career I've been employed as a consultant, meaning I've been on various different projects. There have been similarities and yet every one of them was unique in its own way. For example, there's so much truth in Conway's law even though it is mostly considered as a joke whenever I mention it.
I have one, somewhat similar observation:
If the company is not primarily a software company, it will produce a software of a limited quality.
I know it sounds harsh, but let me break it down.
Imagine a bookshop. The owner has decided that it is time to go with the flow and opens an e-shop. He starts with a common e-biz and e-shop solution, then as the days go by he realizes he needs customize it. For instance, tailor made recommendations, notification for a sequel of a book that customer bought or message board for book reviews. He hires a team of developers, to implement the new features. This goes on and on, until the performance of the e-shop will hit the peaks and users start to complain about missing book orders or sluggishness of the UI.
The thing is, that the bookshop owner didn't want to create an immersive online bookshop experience, he wanted to sells books online. Probably he was missing a feasibility study or proper analysis of the solution. He didn't have any technical requirements for the project. Maybe the developers were complaining about poor scalability of the underlining platform. Or maybe there wasn't proper methodology used when managing the project.
I see this way too often. Sometimes the "owners" have an enlightenment and hire a consulting company that tries to introduce some sense to it all. Sometimes the product is a trainwreck or the company owner despite having any knowledge of it all wants to use "scalable, cloud-first solution since this is what XYZ is using and they are successful!".
Then there are successful projects (sometimes called tech startups), which are built on top of the best practices. With proper project management, built in a LEAN way or using Scrum, having QA on multiple levels, with dev teams using technical stack that fits the solution and so on. Their primarily objective, however, is to build a quality and usable software.
In this new era of Netflixes and Ubers I see a lot of companies are becoming a software companies. They dedicate most of their resources to build quality software. I hope this is a continuous trend, since the result will be products that will be a joy to use and code that will be pleasant to work with.
Top comments (2)
Thank you for the post. It made me think.
I have to respectfully disagree with you, however. IMHO, the primary objective of Netflix or Uber is not to build quality and usable software. Their primary objective is to create great customer experiences. Netflix and Uber are not SaaS companies. They do not sell software. They create software to deliver a service. The service itself is not the software.
You can look at it from a spending standpoint. In the case of Netflix, for example, they are spending an enormous amount of money in creating content. They budgeted $6B for content for 2017. In comparison, they spent $800M on technology and development in 2016, which includes paying a very hefty hosting bill (on AWS).
Airbnb is another company that is very innovative from a software creation standpoint, but that I wouldn't call a "software company", as they don't sell software in any way. They sell services to customers. Software is a tool they create and maintain to provide that experience, but it is not THE experience.
You could argue that, in those companies, there is a great focus on creating quality software, thus internally they probably feel like software companies. That is true. Internally, in the engineering departments, they feel like software companies. They act like such and hire top quality talent. But they don't serve the public directly, they serve an organization that provides a service to the public. In the case of NetFlix, the organization provides content to the public. Software is the vehicle to provide that content.
A parallel is a limousine service. A limousine service is not in the car business. A limousine service is in the transportation of people business. Cars are a tool they use to provide the service, even if they make their own limo conversions.
If I had to think of one single thing that distinguished companies that create software of high quality, it would have to be the focus on user experience. So, I'd venture to state the following:
Thank you very much for this comment! It's basically what I had in mind but I described it from developer perspective only.
Most of the mentioned companies also contribute greatly in open-source projects or have started their own. Calling them "software companies" was maybe a way too simplified generalization.
But I agree it's mostly about user experience in digital world we live in.