Hacker News new | ask | show | jobs
by shrub 4989 days ago
> while a programmer who is not concerned with design is little more than a line cook following instructions.

I disagree with this and am inclined to take offence. Programming is not at all like following a simple recipe. Perhaps if the chef specifies that the line cooks must raise special chickens to be slaughtered for the main dish, keeps a herb garden that the line cooks have to maintain, puts the line cooks in charge of estimating and purchasing ingredients, and gets them to experiment with genetically engineering food to taste good in the dish, maybe then there is hope for a comparison.

1 comments

Sorry, I did not mean to offend. And I admit that in hindsight it is a weak analogy at best.

When I wrote that, I was thinking of consumer software specifically, and by a "programmer who is not concerned with design" I had in mind those that just care about implementation details, while not valuing the importance of end user experience. And I've met quite a few programmers like this, mostly in larger companies. You know you've found one when their sentences start with "Why doesn't the user just..."

In your expanded example, the fact that the line cook is concerned with the taste of the dish (e.g. after genetic modification) already implies that they care about the "design" of the dish. If, however, there is much more concern around how the cookware is organized in the kitchen, or which brand of vegetable oil should be bought, that has almost no tangible benefits to the person eating the meal.

>If, however, there is much more concern around how the cookware is organized in the kitchen, or which brand of vegetable oil should be bought, that has almost no tangible benefits to the person eating the meal.

I think you are only looking at one side of the multiplier effect. Yes, organizing cookware does not prepare food, but have you ever tried to cook when all your tools are in a drawer, piled together? Design leads implementation and implementation gives substance to design. Valuing one over the other is like saying a car's engine is more important than it's gas pedal.

So, why not have specialized workers? It makes sense to me that the people who don't understand the needs of the average user would be the perfect people to have slog through the mess of poorly designed APIs that pretty much every project ever will have to deal with at some point.