Hacker News new | ask | show | jobs
by Ma8ee 2745 days ago
This is the problem of a lot of software development. Look, this bright young man just built a wooden box all by himself. Let’s employ him to build our new shed. A shed is just a big box, isn’t it? This bright young man just built a shed. A house is just a big shed, isn’t it? He’ll figure out isolation, electricity and plumbing when we get to those parts...
5 comments

You know, Hercules should never try to catch that turtle, because he would first have to walk haf the distance to the turtle, but in order to walk half the distance he first must walk 1/4 the distance; but first he needs to walk 1/8...

Building ML projects at home is nothing like building a box to building a shed; it's more like building a shed to building a house.

Sure, building a house is more complicated, but you won't be building that house alone, and if someone hired you to build a house because you were good at building sheds, I'm sure you'll start your job as a junior house builder, not master architect.

There were budget cuts. Teams were shuffled around.

You're running the team now. Your colleagues have only ever built boxes. Go get em', master architect!

This is my (hopefully humourous but actually taken from my experience) way of saying that companies will often do what is most immediately profitable rather than what's best in the long run (for humanity or themselves).

If they are building houses where the roof caves in after the first rain, they won't be in business long.
Why? Nowhere was it written in the requirements that the house must be able to withstand rain.
woodpeckers. civilization.
tbh your analogy doesn't work. modern software dev would mean that if the house can get by without isolation and plumbing until it needs to, then it will. when the requirement comes up then extra dev resources will be hired to plug them in. as long as you managed to get the frame up and the wiring complete, the other components are superfluous as long as someone is happy to stay in that house. then you can add isolation, then you can add plumbing.

this is part of the "if you're not unhappy with the first version of your product then you've launched too late" philosophy and it does work in non critical sectors

And you are kind of illustrating my point. Building a house requires a lot of additional considerations. Like what kind of daylight you get in different rooms, that maybe the toilet shouldn’t be in direct connection to the dining area, how the kids’ rooms are located relativ to the living room. And you will probably have to redo 70% of the work with the kitchen if you don’t start with making sure that the plumbing is in place. (Someone who knows more about houses than I do can come up with much better examples. For this exact reason I’m consulting an architect before I start renovating my house, even though I’m perfectly competent to both remove and put up a drywall myself.)

Of course people learn with experience, and luckily redoing things in software development is cheap compared with when building houses. But that’s the only reason we get away with it.

My point is, we would build better and cheaper systems if we from the start acknowledge that we have to take into account completely different sets of considerations when we move up the scale. A shed isn’t just a big box, a house isn’t just a big shed, etc.

> Of course people learn with experience, and luckily redoing things in software development is cheap compared with when building houses. But that’s the only reason we get away with it.

Here in software, we've turned that into a positive thing and made a philosophy out of it. How do you know the toilet shouldn't be in the kitchen? Maybe the users like it? You know what, the data actually shows that in houses where the toilet is next to the kitchen stove, people spend (on average) more time in the living room, thus raising the core metric of happiness.

If you were building houses, who would you choose

(a) Bright young man who built a wooden box

(b) Bright young man who says he has read for years about building houses

I'd pick (a) over (b) and put him on a team where they build houses so he actually learns on the job.

SF has a homeless problem. Maybe they would prefer a big box to life on the street.
Lol sounds exactly like my life as a first year dev at a small startup