Agreed. No one cares about whether you used lisp or C++.
What are the products that failed, not because they weren't popular or solved problems, but because they had a poor architecture or codebase?
I'm hard pressed to think of any.
Twitter had terrible scaling issues early on, but they solved it and are still successful.
I've heard that Flash's coded base is a steaming pile of unmaintainable C++ [citation needed]. But most of the backlash from Flash comes from the fact that it's proprietary and only partly from the fact that it runs poorly on non-Windows platforms.
Most products that fail because of poor technology choices do so before they ever get released so it's hard to judge whether or not the product would have ever been successful at all.
There were guys in Columbia university who (supposedly) had a much better system than Mark Z, and are probably writing code in a cubicle at Google or equivalent.
I suppose Zuckerberg got his start because he knows how to code, but he is an excellent CEO, something neither of these 2 guys nor Friendster had. Do you really think facebook is winning because of a better architecture?
I despise facebook, and don't use it. But I recognize that Zuckerberg has been doing an excellent job in growing the company, seizing opportunities, thinking huge, and most importantly -- bringing the right people in at the right time.
I tend to agree with Fred Wilson about the three things a CEO does: develop vision, acquire talent, raise money. Zuckerberg has done all three very, very well.
Every single thing a user could do was based on FOAF-keyed permissions, and graph traversals were slow as hell.
In implementing Facebook, Zuckerberg redefined the problem space to give him an implementation advantage at every turn. Limiting it to manually-added colleges didn't just restrict the total userbase to be manageable -- it also introduced the concept of 'networks' that mostly eliminated the graph traversal problem. Photos were severely limited for a long time to constrain the storage problem. They also had a massive advantage in that they came of age in the post-bradfitz era of big consumer webapp architecture.
They had a chance to make it better when they re-wrote their app from Java to PHP no? (If... that is their main cause of failure. Which probably isn't.)
Bad architecture takes away your ability to iterate rapidly. Sure, writing crap code is fast at first. But if you let it continue, you end up with a difficult situation. You end up with a company where people work harder and harder and nothing gets done.
And yes I have seen companies go under for this. Either they lose their competitive advantage of working quickly or they lose customers because of stupid problems that could have been fixed with some planning.
But what if Adobe actually had (and maybe still are) tried to make Flash performant on non-Windows platforms, but can't because the codebase is such a mess? In that case, yes – Flash did fail because of a bad codebase. Then again, Flash is probably an extreme example, but it just goes to show that there is a point at which a bad codebase will interfere with your product.
What are the products that failed, not because they weren't popular or solved problems, but because they had a poor architecture or codebase?
I can think of a couple.
Friendster, as evgen points out. Probably MySpace. Zaplets, although it wasn't really their own code but rather Microsoft's. Quattro Pro for Windows. OpenOffice, although it's still struggling along. Netscape 5. Flash (you're wrong about the reason for the backlash --- the iPhone, iPad, and Kindle are just as proprietary.) Guile. mSQL. Arguably, F-83. WordStar 2000. Most likely, the entire pile of search engines trounced by Google in its first five years: Inktomi, AltaVista, Lycos, Excite, and so on. The GEM desktop, according to Steve Yegge. CERN httpd. Duke Nukem Forever. The GNU Hurd. INFORMIX-Online, probably, although again it's hard to tell from outside the company. Windows ME, in that it was the end of the Windows 95 codebase and was replaced by a better-architected codebase in the form of XP. Windows Vista, in that it shipped very late, missing most of the promised features, and was so sluggish that many people paid a premium to use XP instead. VisiCalc for MS-DOS. Anything written in BLISS-10, after the demise of the PDP-10. Almost anything written in 360 or 370 assembler when the mainframes got replaced. troff, which had to be rewritten as ditroff because nobody could maintain Ossanna's code after he died, although it's a peculiar sort of "failure" since it's still in use today. mod_svn (everybody uses svnserve now, right?) Zillions of Perl shopping cart scripts from the 1990s. Perl 6, probably.
There's an interesting distinction hiding here.
If you're putting together a web site where you're going to write articles about your local community and sell ads, you probably aren't going to be competing on the agility of your code. You're going to be competing on the quality of your writing (with a funny metric of "quality" where your optimum is cracked.com or eHow, not Faulkner or Hunter S. Thompson, but meh.) There's very little reason to take technology risks. You should install WordPress. If you do take technology risks, you're probably wanking but you're unlikely to make your product fail.
There are hundreds of thousands, maybe millions, of products like this. Hacker News and Metafilter compete on the quality of their communities, not their codebase. Enterprise software competes on the skills of its salespeople, not whether or not the code actually works, let alone whether it's better than the competition.
On the other hand, if your code quality is actually what you're competing on --- if your users will pick your site instead of the competition's because you have better spam control, or faster page loads, or more richly linked data about Little League games, or a more usable user interface, or richer graphics --- then you're going to have to take technology risks. If you just use off-the-shelf code, your product will be easily surpassed by the competition. You have to take risks by trying some new things, and if your risks don't pan out, your product will fail.
> Hacker News and Metafilter compete on the quality of their communities, not their codebase.
Ding Ding Ding!
A couple years ago at the Metafilter 10th anniversary party in Portland, after he made his entrance Matt Haughey walked right up to me and called me out for having made fun of his lack of programming skills in comments on his site -- it was then that I became enlightened: http://news.ycombinator.com/item?id=1138506
What are the products that failed, not because they weren't popular or solved problems, but because they had a poor architecture or codebase?
I'm hard pressed to think of any.
Twitter had terrible scaling issues early on, but they solved it and are still successful.
I've heard that Flash's coded base is a steaming pile of unmaintainable C++ [citation needed]. But most of the backlash from Flash comes from the fact that it's proprietary and only partly from the fact that it runs poorly on non-Windows platforms.
Most products that fail because of poor technology choices do so before they ever get released so it's hard to judge whether or not the product would have ever been successful at all.