Earlier quoted context omitted.
That is very interesting, thanks! I hadn't thought about Unicode or tolerating human error. Although the times I have worked with it have been when it is a transport medium between two computer programs.
That's definitely a less-aggravating situation by far. I've had a lot of cases where a significant amount of specialist human time was in a spreadsheet and it's really made me wish there was an Excel-for-data which acknowledges how many people are using it for semi-structured data like this.
Ask HN: Have you ever worked on a product that was killed by technical debt?
171–180 of 331 posts
Re: Ask HN: Have you ever worked on a product that was killed by technical debt?
#172All their "media" was in flash format; so they made it a requirement, even though they could have saved themselves many tens of thousands of dollars in hardware costs by going to a mobile platform. (they did not have reliable access to networking in most of their deployments, and didn't want to bear the costs of rolling their own with cellular).
So I wrote the app in a "AIR isolated thick client" mode. There were many problems with garbage collection and application freezes, that could have been addressed had they funded migration to post-Adobe FLEX (Apache FLEX). But they ran out of funds for that.
Their platform was Win 7 laptops. The first hardware iteration was fine. The next year, when they started replacing the laptops, they hit a driver bug that caused the whole screen to freeze. With the next hardware iteration they were able to fix that, but they started having problems with AIR trying to download an update when they were not connected to a network (ie. deployed in the field). AIR behaved badly in this instance and refused to run.
When they moved to Windows 10, Adobe hadn't updated the AIR player yet, so they had another botched deployment.
It was in our contract to hand over the source code, so they tried to hire their own developer. I spent many hours very thoroughly documenting the code, and they had no hours budgeted for ongoing support. Judging by some of the desperate emails I was getting last year, before my Program Manager told them to fuck off, I think my documentation was not enough. Of course: the Dev Environment setup was Win 7, Eclipse 3.x with the Adobe plugin. I maintain a VM of the dev environment, but I doubt even I could follow my own directions to set it up anymore since the Adobe SDK of that version is so difficult to locate.
Had they listened to my original recommendation to write the entire application in Java, they would still be running fine.
That was my most recent experience with "death by technical debt".
Many years ago; a product died simply because a competitor bought our company, and tried to sell both products (because theirs was a "consumer market product", and ours was "enterprise market"). Over the next 18 months, they cut development to the enterprise product, and tried to tart-up the consumer product to meet the needs of our enterprise customers. I was a major account manager, so I watched one by one as our frustrated customers dumped everything our company sold, and went to the other competitor. So that product wasn't so much killed by technical debt as it was killed by moron MBA's.
In the end; all of those products are obsolete because nobody used dedicated backup tape library software anymore. It became a very small market because tape backup hardware never got commoditized, and prices just never came down from "insane". Even blank tapes were more expensive than a removable hard drive. Poor people just back up to the cloud, pay rent to someone else for their own data, and end up losing it.
I can probably think of about a dozen other examples from my long and miserable career in software.
Re: Ask HN: Have you ever worked on a product that was killed by technical debt?
#173Earlier quoted context omitted.
Seen this a lot. A lot of companies think they are "product" companies, but due to their unwillingness to push back on customers, they become custom engineering shops, bolting on little one-off mods to their project over and over to appease bad customers (or to appease POTENTIAL customers who haven't even bought the product yet). Stop me when you recognize this one: "Hey your product is great, but we really want some…
We're an enterprise software shop, which necessarily means we do a lot of custom work, but we're careful to consider what we'll do. My mentor is an old hand that been through multiple exits, and in every meeting we have, he hammers this point. You're either a product shop, or a professional services shop, and if you don't know which one you are (or you believe wrongly) you die. Simple as that. The deeper you get into…
Re: Ask HN: Have you ever worked on a product that was killed by technical debt?
#174About 1986 I was tasked with moving a small block (a few KB) of data very quickly from cabinet A to B, with the racks full of custom electronics - no PCs, all original stuff on a flight sim with 386 Intel processors all over the place. The racks had Multibus backplanes.
I suggested a 'TAXI' fast optical link (oooh - optical..too radical) or a pair of Intel 589 (Ethernet) cards for an off-the-shelf solution. Nope, too expensive. Engineering Management suggested a twisted pair ribbon cable between the two adjacent racks - um, OK..
Long story short - me and the senior design engineer decided to use the Intel 8257 DMA controller chip to grab the bus and blast the data between the RAM on two cards.
After a short period of fails, we found that the engineers who designed our 386 cards did not bi-directional buffer the DMA request line onto the backplane as they never expected any other card except the master CPU ones to initiate a DMA, so the CPU cards could not see the line being toggled from elsewhere.
Engineers would not accept a change request for 'reasons'
Intel 589 cards is it then!
All because someone chose to omit one tristate buffer.
Re: Ask HN: Have you ever worked on a product that was killed by technical debt?
#175Earlier quoted context omitted.
Seen this a lot. A lot of companies think they are "product" companies, but due to their unwillingness to push back on customers, they become custom engineering shops, bolting on little one-off mods to their project over and over to appease bad customers (or to appease POTENTIAL customers who haven't even bought the product yet). Stop me when you recognize this one: "Hey your product is great, but we really want some…
We're an enterprise software shop, which necessarily means we do a lot of custom work, but we're careful to consider what we'll do. My mentor is an old hand that been through multiple exits, and in every meeting we have, he hammers this point. You're either a product shop, or a professional services shop, and if you don't know which one you are (or you believe wrongly) you die. Simple as that. The deeper you get into…
P.S. "Are you" is not directed to the OP but to the business owners/leaders that don't know what they are doing.
Re: Ask HN: Have you ever worked on a product that was killed by technical debt?
#176* In the early 2000s, they added support for Windows NT to the product. Unfortunately, they did this with an MPE compatibility layer that means the entire thing still thinks it's running on an HP 3000, so controlling it programatically means writing MPE job streams.
* It was originally written to store data in COBOL records. When they added support for SQL databases, they apparently just copy-pasted the schema verbatim from the COBOL copybook format. This means the database has no foreign keys, FLAGS columns all over the place (including tables where you have to JOIN ON SUBSTRING), and, most egregiously, a table with ITEMNO_001, ITEMNO_002, ITEMNO_003, PRICE_001, PRICE_002, PRICE_003 and so on, which has to be queried three times and UNIONed to get the data out.
* Printing packing lists requires not only a specific model of printer, but also an extra several-hundred-dollar chip to be installed in that printer. I'm told that this chip's sole function is to enable barcode printing.
I have no insight into what goes on inside the company that makes this thing, but it certainly looks to me like they have a severe case of technical debt. Any bug fixes generally take 4-6 weeks in the best case scenario, and frequently either don't fix the bug or introduce new ones instead. Their only customers are the ones that have been using the system for so long that they're stuck with the system, and can't switch--in fact, many of them are still running HP 3000 systems, which HP has been trying to end-of-life since at least 2006.
The end result of this is that the product is dying a slow, agonizing death of attrition. I think the only reason it still exists at all is because the company that makes it is stuck with support contracts that haven't expired yet.
Re: Ask HN: Have you ever worked on a product that was killed by technical debt?
#177The closest I've come was a Rails project I inherited from a star developer who had just left the company. It was a B2B project that involved importing large Excel spreadsheets of various different formats into a standardized database for itemized review. The code was pretty sloppy, but didn't deviate much from standard Rails idioms. Not many people on the team understood Rails well enough to read it, but I did. Bug…
I don't think I ever seen an Excel / CSV import implementation that wasn't a huge mess.
I still think Robustness principle[1] is a croc and strictly controlling inputs is one key to happiness. It also, frankly, helps your users in the long run by giving them exactly what they want and it actually cuts down on the amount of thought they have to put into it. Chaos and disappointment do not make a good user experience.
Re: Ask HN: Have you ever worked on a product that was killed by technical debt?
#178There are multiple cases of "killed by technical debt". There's the case of mysterious and unsolvable breakage. The product simply stops working, and the team is unable to get it working again, period. This can happen with really ancient legacy products where the original team is gone, or young products that are written badly by inadequate teams. There's the case of unpleasantness. A product is so difficult and slow…
Re: Ask HN: Have you ever worked on a product that was killed by technical debt?
#179Yes and no. The project wasn't killed specifically because "you have technical debt". It was killed because there was no way for anyone to be effective with the combination of poor undocumented code. "We need to change the email message that goes out when someone registers". This took a team of (4?) people 5 calendar days to change. As a contractor, I had to vpn in to one system, then remote desktop over another vpn…
Templates stored across a database is probably the worst thing I've seen repeatedly across projects. Just because a database can store everything doesn't mean it has to. Some people really seem(ed) to have an allergy to plain files for storage. A plain file with OS level caching will beat most (if not all) databases for static content. But doesn't sound as fancy, so it's probably harder to charge a lot of money for i…