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 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.