Disrespectful Design—Users aren’t stupid or lazy

This post made it to the top of Hacker News, sparking some great debate. See the discussion here. It’s a common narrative in tech to design products with the assumption that users are stupid and lazy. I think that is both disrespectful and wrong. The idea is rooted in a lot of research around productContinue reading “Disrespectful Design—Users aren’t stupid or lazy”

Data is Not a Substitute For Good Judgment

The tech industry prides itself on being “data-driven”. We’re so data-driven, in fact, that there are hundreds of startups building analytics tools (Segment alone lists over 100) and A/B testing tools (~30). We both laugh at but also secretly admire stories like Google A/B testing 40 shades of blue for its links. A typical consumer-productContinue reading “Data is Not a Substitute For Good Judgment”

Write a Design Doc—even if no one else will read it

I often write design documents even if no one will read them. There are a lot of resources out there on how to write good design documents. There are also many different ways to define what constitutes a design doc—what it includes, how long it is, how formal it is, etc. For my purposes, aContinue reading “Write a Design Doc—even if no one else will read it”

Our hiring process is what we can get away with

Here’s why Google hires the way it does but you shouldn’t. Every month or so on HackerNews, there’s a thread about how interviewing is broken which usually devolves into “Google (and the rest of the FAANGs) suck at interviewing”. Last year, I spent a few months working on The Holloway Guide to Technical Hiring andContinue reading “Our hiring process is what we can get away with”

The Software Over-specification Death Spiral

I see a common pattern with startups and teams I’ve advised or been a part of. I call it the Software Over-specification Death Spiral, or SODS for short. It looks like this: Product Manager (or CEO, Engineering Manager, etc) drafts up some sort of specifications or requirements for a new feature or product. Product ManagerContinue reading “The Software Over-specification Death Spiral”

Software as a Liability

On many teams I’ve advised or been a part of, code is generally viewed as an asset. Only some code, the “bad code”, is considered technical debt. The highest-performing teams, however, viewed things differently. For them, all code is technical debt on some level. Programming vs. Software Engineering Software requires two broad classes of effort. There isContinue reading “Software as a Liability”