When you are in school, you think that the the most difficult questions are those on the final exam. I remember how I’ve anticipated this happy future when I will never-ever have to take any more test! Sure…
Besides of the fact that later I went on to get my PhD, and voluntarily subjected myself to the new battery of tests and exams, not mentioning the actual dissertation… besides of all this – the most difficult questions are not on the test. That just appear. Show up. In course of your daily work, when you take on a new project, or when you firmly believe that your project is almost done… and then comes a problem. This problem. And a cost of not coming up with a correct answer is way higher than getting B instead os A on your final.
Several days ago after a couple of back-to-back meetings I’ve got this feeling, that everything is falling apart. That my original design was only good in my head, snd that it did not survive the meeting with reality. And that felt like I’ve promised more than I can deliver, and that more than one project will need to be pushed back.
I left work a little bit earlier, biked from the train station home without any audiobook in my earbuds. The I called my mother so that this will be a checked box for that day. And then I sat down and started thinking. It might sound silly, but I’ve realized that the only thing I needed was to focus and to analyze all the inputs I’ve already had. I was not staring at the code. I was not even staring at the database schema. Not writing. Not drawing. Just imagining all of the things I need to fit into one picture in my head. “Imagine you are a database” :).
And then that was it! Before I could even analyze all the dependencies, I knew it was right! I’ve started going through all the difference scenarios in my head: yes, this will work! And in this case as well! And for the future, when we won’t need this particular functionality it will work as well! And it won’t require any additional data transformation!
The next thing I did – I’ve set up a meeting with my co-workers so that they could criticize me ideas and find the cases when “this” won’t work. (Fast-forward to the next day – we actually found more cases when “this” will work!)
And thinking about my 35 years in this profession – those are the best moments, the peaks of satisfaction. This very moment, when you can see the solution, and you know it’s the right one right away. It may be a super-cool optimization, when you improve a query execution time 500 times. It may be a new design, it may be a new way of writing functions. But this moment when you know that what you’ve just come up with is right – that’s the real magic.
The next nest thing is to call my husband and tell him what a cool thing I’ve just invented, and then run around the office with my laptop opened showing this cool thing to everybody 🙂