From the Something-Users-Don't-Understand-But-Could Department. Developing software is a bootstrap. It's analogous to building a bridge. Start by pulling a wire across the river. Use it to pull up another wire. When you have enough wires, bundle them to create a thicker wire, and use it to pull up something bigger. Eventually you have two thick cables going across the body of water. Use the cables to pull up a roadway. Build on-ramps and off-ramps and toll booths. But you can't build things out of order, and sometimes things are added earlier for features that won't be added until later in the bootstrap process. People who have evolved products know about this. And you never see it more clearly than when you're building your second or fifteenth or 200th bridge. By that point, you figure, if the users really wanted to understand they could, because they're teaching classes about it in universities.#