Strangely enough, my first externally visible blog has nothing to do with automation or testing.
In 1965, The Beatles released their song “Help!”; it would go on to spend three weeks at number one in both the US and the UK. Help is what I’m writing about today.
In high school, if the subject was computer programming, I was the guy people came to for help. I didn’t need anyone’s help; I was the “most knowledgeable”, therefore if I didn’t know the answer to a question, I was the one who spent the time to figure it out. I would frequently spend hours working on “some computer thing” to help out a friend, or to help myself. I enjoyed this role immensely; it made me feel both smart and important.
Then, I went to college. Here, I was hardly the most knowledgeable; I was just another computer science major who’s math score on the ACT didn’t allow him to skip pre-calc. Here, I realized that I could use a little help.
I’d like to say that I quickly learned when it was appropriate to ask for help, however, that was not exactly the case. I spent many hours in the computer lab, agonizing yet over another infuriating infinite loop, just to find out that, in the loop condition, I used an “or” when I should have used an “and”. I wasn’t familiar with code reviews and my desire to “do it myself” would make me forget to ask for “a second set of eyes”. Imagine the time I could have saved, and the sleep I could have had (and the hair I might still have), if I’d been more aware of when to ask for help.
I did eventually outgrow this lack of self-awareness. Prior to graduate school, I worked on a team with some graduate students; one of our professors had a grant that allowed for undergraduate participation for some software development. I learned how to be part of a team, including meeting shared deadlines with that team. In order to meet those deadlines, we had to help each other. No one on the team could do all of the work alone; we all needed each other’s help.
Why am I telling you this? I’ve heard of and observed times when team members spend quite a bit of time, alone, working through an issue. Sometimes, several hours across multiple days were spent struggling with a problem when simply turning in his or her chair, he or she could have asked “hey, can you help me with …?” and likely received some guidance, received some help. This help may have saved valuable time and increased the throughput of the entire team.
What do I do? When I’m struggling with a technology problem, I have a heuristic that I use; I call it The 20 Minute Rule: if I’ve been working on a problem for more than about 20 minutes with no appreciable progress, I decide if I should spend another 20 minutes working alone or if I should ask for help. I usually decide to ask for help when I don’t think another 20 minutes will get me any closer to a solution.
Remember, we all work on teams and we need to be comfortable leveraging their collective knowledge. While grinding our way through a problem can be a good learning experience and personally fulfilling, there is also a delay in delivering results that can adversely affect our teams. Asking for help is not a sign of weakness; it shows that we are high-functioning teammates in a high-functioning organization.