Children ask “Why?” and when you answer, they say “Why?”
It’s “Why” all the way down with them, sometimes. There is no end.
As an adult, we ask “Why?” now and then, and pretty quickly we get to “In my observation, it has already worked this way.” This isn’t a reason, but it is a heuristic that works, and it lets us get stuff done.
This happens in programming, too. When pairing, a curious beginner asks, “Why do we do it this way?” and the senior programmer says, “YAGNI.” and the beginner asks, “Why?” A philosophical discussion ensues, and the senior programmer is bored and frustrated. She wants to write some code!
In her observation, you ain’t gonna need it, so code it the simple way and move on. The beginner wants to investigate the concepts and learn. They’re both right. Both are good uses of time… but maybe not this time right now. Adults get stuff done, curious beginners (such as children) learn.
In a board game the other day, my partner went for the direct route of “How can I get points?” while I went the indirect route of “How can I give myself more options for later?” I won that game.
Those of us who continue to question will win in the long term. Yet, as adults can know when it’s time to go on experience. The best of both is to reflect on our work later, question our assumptions and dig into the “Why?” and the “Is there a better way?”
Conferences are great for this. Step back and reflect, learn new viewpoints, and discuss. We are grownups most of the time at work. Go to development conferences, and be a kid. Play! Expand your options and connections and keep asking “Why?”