Challenge problems effectively: how to know when to stop doing it alone and ask for help
Prologue
In the busyness of a working week it totally went unnoticed that two of my closest colleagues were interchangeably banging their heads against a somewhat hard problem. I love the noise cancelling feature of remote working, but this time backfired: I missed the rhythm of neural incandescent work.
At some point they told me that they found a way out, although the cause of the problem is still unknown. And they told me about their running around in circles for a couple of days.
Innocently, I told them that I use a heuristic in these cases (a self-developed one I believe, although I read a lot - so who knows where I got that from?).
Since they quietly listened to my explanation for about five minutes, I guess it may be less obvious than I thought. So here I am sharing my five minutes with a bigger audience.
Not enough time for all problems
Let's assume that you have fun solving problems. Now let's say you encounter one that you cannot solve immediately: you will likely go in frenzy mode and loop over this problem until you win over it. The little adrenaline boost surely makes you feel happy and you totally forget the unrecoverable time you invested.
Remember: time is a precious and unrecoverable resource. To make this even clearer: if you are a chocolate lover, the neuronal time you invest onto a problem is taken away forever from feeling the marvellous sweet melting in your mouth.
Now the big underlying issue is that each of us is a problem generator: if you have an agenda, you have material evidence. Then we live in a society and that is a problem generator itself (remember tax declaration?), so, well you get the idea: there is an ever growing ocean of problems available to you 24/7.
And we only have about a century to live when lucky.
We need to decide how to allocate our finite resources, i.e. cut out some problems!
Not everything is lost
Another important bit of information to navigate the aforementioned ocean safely: together we achieve amazing things!
Problems that are hard to tackle on our own become simple(r) with a bit of organization. Actually, as Domenico De Masi writes in his book Il lavoro nel XXI secolo, management is about achieving with normal means the things which only a genius may do alone.
And if you work in a company (with staff > 1) you should remember very well that you are not alone!
How I do it
I work as a software engineer, which means a problem solver applied to computer software and some domain.
Most often I have to pick up problems that I would rather skip altogether. Most seldom a problem jumps at me and puts me in a crisis: this is the best kind of problems, the ones that transform me and make me a better person.
For the first kind I find inconvenient to spend more than a few hours of work, while I am happy to spend longer meditations for the latter kind.
So how do I decide?
I keep it easy and split problems in two kinds: problems I have to solve to progress a task and problems whose solutions I expect will taint my career/personal growth forever. How you distinguish between them is personal, and in the following I share my own way of doing things.
Let me give examples of what I mean to be clear:
Finding out why the Scala/TypeScript type system is complaining?
Clearly just a task I need to solve to progress.
There is a production issue?
Still task to progress.
Did the team send the PO with a buggy product to the client?
Hard problem, if I solve this I can at least make my PO enjoy her work more and ideally learn how to become a more reliable person in general.
Find a way to keep colleagues excited about what they do and help them be successful?
Definitely a hard problem and rewarding/reusable in any context I can think of!
At the stage of the career path I am in, I feel most of technical issues end up in the "task to progress" category, while people issues fall in the "personal growth" one. This really depends on the vision you developed for yourself (i.e., a type system researcher could care more about the first example I mention than me).
About the "task to progress": they MUST have a short time box and you cannot spend more than a couple of hours banging your head on them. There is an ocean of problems, remember? And... you are not alone! No matter how experienced you are: ask for help (_AFTER_ the time-box).
The idea is that you are most likely surrounded by smart people and after you struggled enough to get a good understanding of the problem, you are capable of describing it well enough to them. A lot of time if you formulate the question before asking it, you will find out another clue to the solution: so I suggest to start from formulating the best question you could do to your senior.
If nothing works, ask that question and they can help you filling the holes in your understanding and progress quicker than if you started spending hours by yourself.
To summarize: time-box tasks blocking progress (in general no more than 3 hours) and then ask for help.
About the "personal growth" problems: they deserve most of your time and thinking. They need your own answers because usually for these there are no silver bullets (but some people have the hubris to advertise their local solutions as general solutions...). I usually exchange ideas with others about these problems in person or by reading and it is always an enriching experience: you really may have disregarded the unique miracle that has a working (any kind really) of relation with you.
Most of my work, and I expect yours as well if you are a software engineer, belong to the first category. I deal with the big problems in the background or by directly asking support of my mentors (for engineering I had luck looking here).
Epilogue
The colleagues keep doing some banging, but at the same time the chat channel seems more active... who knows, maybe the little speech worked?
I hope you will save some hours with this few minutes read. More so, I hope you will put work in recognizing the problems most significant to you and invest wealthily on those. I really wish you spend your time in the best way: it really is precious!
Have fun and you MUST make your dreams happen!