You have to know exactly how you want the music to sound in your head, hear exactly how it actually sounds in the room, then bring the two as close together as possible.
That’s paraphrasing a knighted British conductor – I read the quote at school more than twenty years ago and since then haven’t been able to find who actually said it. If you know, please tell me.
When you get pretty good at something, you can start doing it without thinking. Perhaps you can get up in front of people without having to prepare or write without having anything to say. Maybe you can start hacking away on a software project before you really know what you want it to do.
In some ways that’s good. If you want to improve your craft, you have to do it. Sometimes it’s best just to dive in and see what happens.
Sometimes it’s not so good. You can spend an afternoon or a week or a year building something that nobody wants.
So it makes sense to balance doing with envisioning. Before you sit down to practice your craft, ask yourself the simple question, “What am I trying to accomplish?” Picture the outcome in your head. What does it look like? How do I get there?
Got it in your mind? Good. Now sit down and make it happen …
BUT – as that conductor pointed out, the “music” you envision in your head never sounds exactly the same as the music in the room.
On the way to building the software you envisioned, you found shortcuts or obstacles or serendipitous detours. Sometimes you have to plow past these to realize your vision – but sometimes you have to alter your vision to take advantage of what your software and your customers tell you. Building software is an ongoing negotiation between what’s desirable and what’s possible.
Whether you’re creating software, making music, writing a blog, or sculpting, the goal is to maintain a lofty vision while bringing your vision and your reality as close together as possible.