Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The equivalent the other way. If programmers hired like carpenters are hired made a table:

"How long will it take to make this table?"

"3 weeks. But we're going to try using this new kind of leg because it's easier to replace with another leg if you don't like it. So it may take 5 weeks."

5 weeks pass

"Is the table done?"

"Well, no, not really. But now you can have four different legs if you want to. We've also got this table building machine that can make all the different types of legs that will slot in"

"Can we use the table-building machine to build the table?"

"No, it only does legs right now"

10 weeks later

"All right guys, it's been twice as long. Is it done?"

"Yeah, we're finished. You're going to love this. We upgraded the table building machine so now it builds as many tables as you like. All you have to do is sketch out a full blueprint. We've got one blueprint for the table you want, but you can make more if you like"

"Where's my actual table?"

"Oh, it's that pile in the corner. It's broken, though. Jack placed a red cup on it and it fell apart. You're not supposed to do that. We told him to use blue cups. It's in the manual. We explicitly fixed blue cups last week."



This isn't accurate. It is more like:

Customer: I want a table with four legs.

Dev: Ok, give me 2 days and it is done. after 2 days Here's your particle board table about 1 meter off the ground with seating for 4.

Customer: Great, but it would be nice if it could seat 6 sometimes because we sometimes have guests.

Dev: Ok, give me half a week. 3 days pass Ok, here's your table for 6, we had to change the material to wood to make it more durable and unfortunately it increases the cost.

Customer: No way I'll pay extra for wood. What's wrong with particle board? And the texture of this wood is too noticeable, the texture has to be more subtle. And we want to minimize the size to a table of 4 when the guests are not around so we can have more floor space.

Dev: Ok but expandable tables are significantly more complex and I don't think we can do it with your cost contraints. Can you consider increasing the cost?

Customer: What are you talking about? When I asked the Indian shop down the road they said it was possible at this cost. Are you lying to me? If you don't fix this and deliver then I want my money back and I'll just go with the competition.

Dev: Ok, we obviously can't compete with that price so here's your refund. But we highly don't recommend that shop because you will have issues with the table.

Customer: I think everything will be fine. Good luck to you and don't try to upsell me.

6 months later

Customer: Here's the table the Indian shop built. It sometimes won't collapse and they can't figure out what's wrong with it. Can you fix it?

Dev: Ok, we can take a look... You see the problem is this rail design is not fit for these specifications. We can fix it temporarily but in order to fix it permanently we have to rebuild the table top surface which means only the legs will be reused.

Customer: What do you mean? Can't you just install new rails?

Dev: You see, particle board is too flexible a material so over time the fasteners will fail. That's why we recommend wood. But you didn't want to pay for that in the beginning so we didn't want to continue with the contract.

Customer: Fine! Fix it, we need the table next week for a dinner party. How much?

Dev: Our backlog indicates we're booked for the next month. So to prioritize this job we need additional compensation as we'll temporarily have to hire additional help to satisfy demand.

Customer: Are you crazy? I can get 2 new tables that don't expand for that price. This isn't rocket science, I'll find my own way.

6 months later

Customer: We need a table. We're ready to pay anything.

Dev: Oh, you're in luck. Expandable tables are now free of charge. We only charge an installation fee and optional warranty fee if you want us to fix potential issues after delivery. The only catch is they only come in white.

Customer: Excellent, but what about brown? And since it is so cheap now can't you make it height adjustable?

Dev: The brown configuration is a small additional fee but the height adjustable feature has to be made from scratch as it is new technology. It is quite expensive because the motors have not been validated yet, so we have to do a qualification test on each part.

Customer: what? just give me the white table and I'll go talk to the Indians again.

---

Software often has expanding scope and new "innovative" requirements. It is almost never the case that we have a fixed deliverable; once the customer has a solution, they immediately want something else improved. This flexibility manifests on additional R&D costs for new or customized technology.


I once did a website to specification + some additional optional, free bells and whistles. They were like this is perfect! everything is great except for some small changes....

the small changes never stopped coming until it was a new website. I kept all the major versions so they could see their changes as they developed, so that when they demoed it to a focus group one of the people accidentally navigated to the original version.

next meeting: What is this website? a user accidentally navigated to it and this is now what we want. ... the original version


Haha. The references to Indian developers were funny. But this joke works even if you replace Indians by other developers in US. Remember healthcare.gov fiasco?


It doesn't really. That job was poorly done AND expensive.


The same is said about Indian outsourcing (expensive in the long run), right?

I think many people miss the fact that boring jobs with low wages will not attract talented programmers. Same holds true when you outsource jobs. Send interesting jobs and pay for good Indian programmers for quality results.

healthcare.gov was a clusterfuck not because it was complicated (a typical data integration task with a query layer) but because of the quality of programmers and managers working on it. Later after political and international embarrassment, a crack team of exceptional programmers was assembled (on leave from major tech companies) to fix that website.


But communication overhead and a wage that attracts talented programmers in India, will make development there just as costly as if you do it locally. So your manager outsources to cheap Indian shops, and then always gets frustrated with the quality.


I've met the people who were brought in to fix healthcare.gov after the storm of bad. They have some interesting war stories.


"Why does it not have a top?"

"YAGNI"

"Where is the fourth leg?"

"Over there, across the street. See?"

"...Why?"

"Microservices. When you put something on the table that needs the fourth leg, you use these pipes to temporarily connect it."


One of many hidden truths here is that software is expected to scale easily and change easily while physical objects don't have these expectations attached.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: