Engineering is not the art of building devices; it’s the art of fixing problems. Devices are a means, not an end. Fixing problems means first of all understanding them — and since the whole purpose of the things we do is to fix problems in the outside world, problems involving people, that means that understanding people, and the ways in which they will interact with your system, is fundamental to every step of building a system. […]
And once you’ve understood the system, and worked out what has to be built, do you retreat to a cave and start writing code? If you’re a hobbyist, yes. If you’re a professional, especially one working on systems that can use terms like “planet-scale” and “carrier-class” without the slightest exaggeration, then you’ll quickly find that the large bulk of your job is about coordinating and cooperating with other groups. It’s about making sure you’re all building one system, instead of twenty different ones […]
Essentially, engineering is all about cooperation, collaboration, and empathy for both your colleagues and your customers. If someone told you that engineering was a field where you could get away with not dealing with people or feelings, then I’m very sorry to tell you that you have been lied to.
Yonatan Zunger on engineering.
This is, of course, in response to The Google Manifesto from a while back. While I think Zunger is spot-on, I’ve certainly worked in a Large Multinational where everyone was an “engineer” and where people skills–even for managers–were not high on the agenda. To say it was a miserable, and deeply sexist, work environment is an understatement. I think I lasted about eight months there–just enough to finish off the project I’d been hired for–which is the shortest period of time I’ve ever spent in a job.