Hacker News new | ask | show | jobs
by loboman 5161 days ago
Does this assume that developers should wash the dishes? If so, why is that a good idea? I would assume that developer time is too expensive for that...
12 comments

Please shoot me if I ever start thinking my brain is too valuable to waste on basic hygiene.

There is a dishwasher. It's five seconds to rinse your dish and put it away.

At the WMF, there is someone whose job it is to make sure the kitchens are clean and the dishwasher gets run, but that's only effective because most people exercise common sense.

I was genuinely interested in the answers, so thanks for the interesting replies. I don't have a dishwasher so I didn't know it could be so quick. I agree spending 10 or 20 seconds or a minute on something that's useful for everybody is not a bad idea.

I'm just not sure how that scales for tasks that require more time. If there is some task that requires 20 minutes, and the company is big enough, do the answers change or do they not? Maybe it is better to hire a dedicated person for the office to do that than to make everyone use 20 minutes of their time every day on such task?

Well if developer time is that valuable, I think Mel Brooks has an innovation for your office that you should look into:

http://www.youtube.com/watch?v=JGfXiIXTpE0

More seriously, I think that allegedly financial calculation often ends up covering up for laziness, arrogance, and hierarchies of social class. Make sure the code works? That's QA's job. Make sure it runs well? Oh, that's ops; file a ticket. Wash my own dishes? Hey, office manager, get on that. Oh, and and honey, make me some coffee while you're at it.

I know some companies work that way, but I'd never want to work at one.

If you have a unique skill, it makes sense to pay you to mostly utilize that skill. If you're great at programming and terrible at system administration, why should you have to administer your servers, especially when there are people that are great at it?

Testing is a little different: most professional software engineers consider testing an intrinsic part of software engineering, and so would never say, "that's QA's job". (But even then, there are some especially hairy testing problems that would benefit from a specialist's touch.)

Anyway, I think you're conflating dysfunctional organizations with specialization. In your example, developers say "that's operations' job" because they are lazy and don't care about maintaining a sane production environment. In a functional organization, they'll say the same thing, but they'll mean, "that's operations' job because they will do a better job than me". It sounds the same, but it means something entirely different.

(The same goes for washing dishes. I could wash my own dishes, but I would use a lot of water. If we batch up all the dishes in a 3000-person company each day and wash them in an industrial dishwasher, it will take less aggregate time and use much less water and energy. So while washing your own dishes may be symbolic of teamwork, it's actually a dumb thing to do.)

I would love to see some evidence that complete and total specialization is the maximum possible way to achieve business goals.

I know in my work, I've found that doing a variety of things, including "grunt work" leads many times to great works of creativity and discoveries of new ways to be more efficient. If you have a Ph.D. sweeping floors, you can bet they're going to take a stab at making the entire "floor sweeping" problem disappear. Not so much for a professional janitor.

Putting your head down and focusing is great when you have a mountain of obvious work to do. But that's not always what the business needs.

Agreed.

The high-end design firm IDEO specifically looks for "T-shaped people", by which they mean people who are deep in one area but have a broad set of skills outside their specialty. They believe that creative work is essentially collaborative, and that you can't be a great collaborator without a good understanding of what people are up to and the ability to step in and take a swing at anything that comes up, expert or not.

Another reason to avoid specialization comes, I'm told, from queuing theory. Unless your workload is perfectly regular, specialization leads to bottlenecking and global underutilization.

I'd also consider how Toyota, the world's #1 car company, looks at this. They do an immense amount of crosstraining, and line workers are specifically discouraged from specializing too much. Much of their efficiency comes from bottom-up innovation, which you don't get if people are focused only on their one little piece of the problem. (For more on this in particular, Toyota Kata is a great book.)

I spend my day building a castle in my head. Sometimes I may go outside and pace around the parking lot, sorting through the rooms in that castle.

I drink 10-15 cups of whatever a day. The cups get tossed in the trash when empty, or left ..somewhere.. when I get an idea.

But stop me every time my cup is empty, make me break my train of thought and go fool with soap and water and a breakable cup? Likely the castle comes crashing down, and 40 minutes to rebuild it.

Might work for some, but definitely not for me. Wash your own cup; but leave me alone.

Specialization introduces opportunities for dysfunction, because it breaks a feedback loop. Dev -> QA is one of those. Google "throw it over the wall" to see how common the problem is. E.g.: http://kdc-blog.blogspot.com/2009/01/dont-throw-it-over-wall...

People are skilled economic resources, but they are also status-seeking monkeys that were mainly evolved for foraging, fucking, and fighting. If you don't keep that in mind when setting up an organization, there are risks. I'm asking how Valve handles them.

Regarding dishes, I'm not saying that one has to pick suboptimal solutions just for the sake of symbolism. Google, for example, has industrial dishwashers. But still, everybody picks up their trays, sorts the compost, recyclables, and landfill into proper bins, puts the utensils in the bins for used silverware, and then slots the tray and dishes into a conveyor that feeds into the kitchen. Could Google hire busboys? Sure. But they didn't, and I'd bet it's not an accident.

Not that I have the most experience here, but I've never felt my time was too expensive to wash dishes. Your ego may vary.

Maybe there's some marginal value in saving highly paid employees from doing menial work, but there's also a cost in terms of culture when you treat people like they're better than anyone else.

Whenever I did anything not programming related at the place where I worked I had a feeling that I'm getting money for free.

I was selling work of and inexperienced tea maker or dishwasher or cleaner or delivery man to my employer at hourly rate of a skilled programmer. One of the best deals I've ever done albeit short one.

Barack Obama on his dog: "Sometimes I have to scoop up his poop, because I don't want to just leave it in the lawn!"

http://www.cbsnews.com/2100-501370_162-7160351.html

By extension, developer time is too expensive to be wasted on long lunch breaks, socialization with co-workers, or toasting your bagel in the morning rather than eating it untoasted.

Basic hygiene/workspace maintenance is everyone's job. There are people who specialize, of course (the cleaning staff; if you have them, developers aren't scrubbing toilets and steam cleaning carpets, of course), but it takes literally 5 seconds to rinse a dish and put it in the dishwasher, the act of which improves the entire workspace and contributes to overall order in the environment. If you don't have a dishwasher, it might take upwards of 30 seconds to wash your plate, dry it, and put it away.

Developers are actually in a unique position where they can do their job while doing other things; much of a developer's job involves thinking through problems, and menial physical tasks are actually a pretty great way to get your brain engaged on the problems.

At Google, you put your dirty dishes in the nearest dish collection area, and the magic dish fairies periodically whisk them away to be cleaned.
In your opinion, which types of employees are not too important to watch the dishes which they dirty?
Where did you get "important" from? He said 'time too valuable'.

This is a practical salary versus return on work done calculation, not a human worth judgement.

The two aren't totally separable. Status calculations are a fundamental human behavior, and social systems tend to move in directions of class and hierarchy. (For more on this, the books Chimpanzee Politics by DeWaal and Impro by Johnstone are readable and very compelling. Consider also that absolute salary differences matter less for happiness than relative salary differences, which is economically insane but very human.)

I strongly believe that a lot of corporate idiocy is driven by hidden status games. E.g., the way that managers often have status in proportion to the size of budget or staff, which gives an incentive away from maximum efficiency.

Unconventional approaches to management push against this. E.g., the notion of servant leadership, or Toyota's explicit focus on management's responsibility to support the people doing the real work. Valve presumably has something similar.

"Time too valuable" and "too important" seem like synonyms to me.

Both are ways of arguing that you should be exempt from certain tasks that the rest of society / your group is not.

Reminds me of living with roommates.

It takes literally 10 seconds to wash (not just rinse, but entirely wash) a bowl and a spoon. Nothing has to stay in the sink - just wash things right when you're done using them.

A proper dishwasher spends 20-60 minutes throwing water at dirty dishes. 10 seconds leaves tons of bacteria and dirt still on the dish.
A propose dishwasher sends water around, and its not very strong to avoid breaking stuff. Hand washing is a lot more efficient.

Anyhow on point, takes 10s (or maybe 30) to wash ur dish and leave it in the sink xD Takes 5-10min if you leave it and wash it the next day.

It's good practice for your immune system, for later in life when the real shit hits the fan.
I generally wash my dishes in large batches because it takes the water about 4 minutes to get hot enough to use for real dish washing
For those who haven't heard, hammock-driven development is great: http://blip.tv/clojure/hammock-driven-development-4475586 (The short infographic version: http://incanter.org/images/misc/hammock-driven-dev.png ) The mindless job of dishwashing is just another way to think about a problem away from a computer, plus it's useful.
The mindless job of dishwashing is just another way to think about a problem away from a computer, plus it's useful.

This works if your coworkers are happy to leave you alone to think. I often pace the halls at work while I think, but the moment I step into the breakroom I get greeted with "Hi Michael how are you so nice to see you how was your weekend" which makes the exercise kind of pointless.

Not that I have anything necessarily against small talk, but the time spent in the breakroom is unproductive time.

And there's nothing wrong with breakroom time being for, well, breaks.
What if one of your fellow developers is looking for a clean dish and glass and there are none to be had? All he sees is a sink full of dirty shit that nobody has touched.

So you may have saved some time dropping your stuff in the sink, but now you have another developer who's spending the identical amount of time cleaning up...but in addition he's pissed off as well. Sounds like a positive outcome to me.

Is this what brogramming sounds like? Too much Rockstar to rinse off the plate, leave it for somebody else?

Are we engineers or high schoolers these days?

Yes, because only male developers might not want to spend their valuable work hours scrubbing dishes because the company is too cheap to have a working dishwasher.
Who said nobody could have an automatic dishwasher? But even if you have one, at some places dishes pile up in the sink, and at some places they don't.