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. (This is so key that we have a bunch of entire job ladders — PM’s and UX’ers and so on — who have done nothing but specialize in those problems. But the presence of specialists doesn’t mean engineers are off the hook; far from it. Engineering leaders absolutely need to understand product deeply; it’s a core job requirement.)
One of my favorite things about giving this lecture is peeling back the curtain so students can see what really happens inside of companies when they’re hiring (spoiler: we’re all making it up as we go along, and it’s mostly a haphazard rat’s nest held together with chewing gum and staples).