How Software Companies Die (1995)
gist.github.com
gist.github.com
It's been discussed on Hackernews a few times over the years:
https://news.ycombinator.com/item?id=1866486
https://news.ycombinator.com/item?id=6818556
https://news.ycombinator.com/item?id=552821
https://news.ycombinator.com/item?id=5372726
Personally, I think the broader problem is that most software engineers, at least the ones I've worked with, have a flawed model in their head for how the business they are employed by works.
Partially this is why startups are attractive to some because you can actually connect the work you do day to day with the company's overall success. Even then it doesn't take much scale (something on the order of 1 level of hierarchy) before people lose touch with the dynamics of the business.
There are hard realities like the fact that the best technical product doesn't always win in the marketplace. That many times it's the wrong business decision to invest in innovation. That most programmer's jobs aren't to write code but to solve problems (and software just happens to be pretty good at doing that).
Marketers take over companies when you're selling a product that has become commoditized because brand is the thing that adds value to the company at that point. If sales is the thing that drives profit, sales will eventually run the company. If you want to work for a company that is run by engineers find one where the vast majority of the company's value is tied to the intellectual property their software source code represents.
Hives operate very differently now than they did in the 90s, but what this gets right is that the flickering light the coders are attracted to is some kind of engineering grace, usually a thought leader or software guru or just a really nice person who is also incredibly hard working, deeply skilled in several domains including pure computer science, and a banger coder.
Other engineers get jazzed in such a situation and the music flows. But 10 years seems to be about the max you can keep an original hive together.
That’s what programming means. Telling the computer what to do in a language it understands. We are typically well practiced at abstract, logical problem solving, because code has logical constructs. But if you are not writing code, you are not programming.
Now a program is an interface between some practical need and the computer. Of course, one needs to understand and know about both what one requires and what one provides. But there is no fundamental difference to any other craft in that regard.
As a very simple example, perhaps integrating with the API provided by another team in the company is planned to take several weeks because it does not provide the "ideal" endpoint and you'd need to stitch together information from several responses. In some cases, simply going to the other team and asking if they can add another endpoint to expose the information you need will be a much quicker solution than doing all the work client-side. In my experience many junior devs would rather spend the weeks coding than the 20 minutes talking to another person.
Could I ask you to please unpack this line a bit more:
> If sales is the thing that drives profit
What else could drive profit, if not sales?
> the company's value is tied to the intellectual property
In the case where unique IP is the core value proposition (the strategic "moat" if you will), isn't sales still what drives profit?
Put another way, I love what your comment implies, and so I'm trying to imagine a business that generates good profit that doesn't rely on sales as much, but I'm struggling.
Thanks! ^_^
First consider any company that's selling a commodity. Exxon's oil is the same as everyone else. I'm sure they might have sales in some capacity but they don't really need to convince someone on the fence to buy oil and they don't get a lot of value out of a slightly better negotiated price for their oil since again, if they try to charge more than someone else that customer will just go buy someone else's oil. So Exxon is generally speaking run by engineers because better more efficient engineering is the main way the company can derive more value than they do now.
Now consider Coca Cola. For the most part Pepsi is just as good as Coke. Maybe you're really picky about one vs the other but truth be told most people don't care and the market is wide open for someone else to make a similar soda. So what is their "moat"? Their brand, maybe you could say their supply chains, which are world class. So Coca Cola isn't run by sales people but it is run by marketing and operations people because that's what drives their continued profit.
What about Walmart? Again I'm sure Walmart does have salespeople working for them in some capacity but I'd say Walmart's main value driver is their ability to curate and acquire inventory. And sure enough at Walmart (and other retail stores) it's the Merchandisers and Buyers that have all the real power. It's not the "sales associates" running Walmart.
Among the Fortune 500 you find very few companies run by salespeople.
Venture capital-backed companies used to often not care about operational profits, but about growth and market penetration, and the repay event was the moment when a large incumbent decided to buy the challenger startup. They do so to either add to their portfolio and acquire technology and talent, or even to quash the competitor which distracts their user base. Nevertheless, it's might be profitable to be bought and disbanded.
I suspect that sometimes profit is not even a motive (non-profit orgs, etc).
I imagine government contract suppliers, VC-funded startups, and Non-profit orgs - together - make up a decent chunk of all software companies.
I'm curious what you'd say about all the remaining software companies, namely the ones operating in a "traditional" sense (I can't think of a better word, but I suspect you know what I mean... your typical B2C or B2B for-profit bootstrapped business).
Is the latter group of companies' profit driven by sales and sales alone? Or is there something else that a business owner could focus on to drive profit?
As you can tell I'm still trying to unpack the OP's point above ^_^
That being said, all businesses outside of banks have already taken much of O.S. Card's advice here. Programmers used to be forced into suits to bear the 9 to 5. Now, business casual gets more casual the more techy the company is. Flex time is now the norm. People complain about morning standups and Jira because they aren't doing four hours of waterfall strategy meetings everyday.
This rings so true for me. So true. Although myself is not exactly a professional programmer (I don't consider writing infra as code and Airflow as code strictly professional programming even though they are) this hits me like a train.
People of like mind still burn candles to navigate the mazes that they out themselves into. Even at the age of 40 and far from my prime, I'd still burn all nighters to solve something. The only difference is that I usually quit at 4 or 5 and it takes a couple of days to recover.
Those discussions include this comment which says he worked on video games in the 80s (dialogue, AFAICT, and story; not code), which is probably close enough experience: https://news.ycombinator.com/item?id=6818816
[1] https://archive.org/details/orson-scott-card
[2] https://archive.org/details/1983-07-compute-magazine/page/n3...
[3] https://archive.org/details/1983-08-compute-magazine/page/n7...
I'm convinced he's dabbled in programming, even though it's not his vocation.
But I have never seen a software company die because of these things. Under performing just doesn't matter for most companies. Some how they just keep going along. I suspect real work and innovation that matters happens early and then its just printing money and maintaining while we lie to our selves the work means something
Now, no. I mean you have to have a good product, but once you've gained traction and market share, it can go to shit because you've got lock-in. In 1995, there were a lot of small software companies. Novell ruled networking. Now it's mainly mega-companies. The trick now is if you are a mega-company, you have to buy out the competition. Most startup exit strategies is to get acquired.
They had some quality products, innovated and supported software developers. Not every product was a winner, but there were some great dev tools (c++ compiler, Delphi, Pascal).
But in the end I actually have no idea what went wrong and how they disappeared so quickly.
Antics like that helped speed their demise.
How did Microsoft handle that threat? They stole the lead developer of the Delphi compiler Anders Hejlsberg - who joined Microsoft and is the chief architect of .Net framework. In fact - if a lot of .Net concepts are direct implementations of Delphi and the VCL (properties, etc.)
Yep, Microsoft stole the one certified genius coder right from Borland. And the rest is history.
He left Borland and joined Microsoft in 1996. The year before, Philippe Kahn resigned as chairman, CEO and president, after 12 years at the company. I don't know if that was a symptom or cause of Borland's demise, but losing such key players must have been the nail in its coffin.
Anders Hejlsberg is one of my heroes, a giant in the programming world, being the creative genius behind Turbo Pascal (which I grew up with as a child), Delphi, .NET Framework, C#, and TypeScript (which I write regularly as a professional with greying beard).
However, when we upgraded to Borland 4, we encountered catastrophic bugs: Symbols were flagged as undefined that were successfully linked a few modules earlier. Use of 'new' operator in a DLL crashed the program (that one cost us two weeks). To be clear: these were bugs in the compiler, as they had compiled & run with no problem in the previous version.
We had to switch to Visual Studio.
This also rings so true for me. I won't say I don't like other people, but let's say I prefer to be alone. My whole career starts as a customer service (a perfect start for me), then a BA, then a BI, and now a DE, and you can see that I'm running away from the crowd, as far as possible. I'll probably try to find a man cave of system programming and be done with that. Any extra interaction with other humans is find with me.
https://www.failory.com/blog/startup-failure-rate
The source of that data isn't there but you can see it as a trend in other places.
It's slow and uncertain at first, fun when expanding and getting popular, but towards the end, it's not pretty.
I'm more than tempted to jump ship at work because they believe and demand every bit of work can be precisely measured for the value it delivers. They're about to do another round of layoffs, with no end in sight. They're penny-pinching perks, redoing all of the offices with shared desks, and running around like chickens minus heads.