My entire morning was devoted to setting up SSH key authentication for our Enterprise Github account last week.
However, the error continues to occur despite all my attempts. In the end, I called my colleague when I had run out of ideas.
Two minutes. That's how fast he fixed my problem.
Earlier this week, he set up SSH keys on her machine successfully.
But yet, I struggled against myself for hours. Out of a fear of appearing stupid because of my pride.
Once the issue was resolved, I realized we keep making the same mistake.
Some issues we struggle with for hours could be solved in minutes with the help of someone else.
It's not the first time you've encountered this challenge. There have been times when co-workers fought over simple issues for hours.
Asking "How's it going?" leads you to discover there is a fundamental design flaw you can easily fix.
“It is better to work as a team rather than as an individual”
We're trying something new today: my team is introducing a new habit: Timeboxed impediments.
Timeboxed impediments work simply: Allow an hour of churn before seeking assistance.
We make sure that obstacles are timeboxed so we don't spend hours on an issue someone else could resolve.
If you get stuck, start a timer. Once it goes off, reach out.
Although pair programming is great, there is no mandate for pair programming until the issue is resolved.
In this case, the commitment is simply to address the impediment, consider paths forward, and consult others who can assist in creating a strategy for moving forward.
Pomodoro Impediment
Working in short timeboxes enhances focus when using the Pomodoro technique. This is the same reason why timeboxed impediments work.
Being on the clock increases your level of focus when you're in a timebox.
During my Pomodoro, I shut off my phone, Twitter, and email, and focus on my work.
As soon as I enter a timeboxed impediment, this becomes more important. I must focus due to the fact that I have one hour before I need to swallow my pride and request help.
How do you justify one hour?
Balance is key here. A short window prevents the developer from exploring and learning.
The value of being spoon-fed ideas from a colleague is not as great as learning on your own.
As you search for the answer, you end up learning many other concepts.
Using an hour as a starting point allows exploration while being efficient.
Learn how to be a rubber ducking success
Rubber duck problem solving involves timeboxed impediments.
A new part of the brain is engaged when we verbalize our situation when we are stuck.
We are forced to look at the problem from a different perspective.
Have you ever approached a co-worker and said, "Hey Bryan, I really need some help".
After setting a breakpoint, the API always says "Woah, never mind, I see how to fix it. Thanks!".
As you leave, Bryan smiles smugly, knowing that he helped you just by listening to what you had to say.
Have you ever begun writing a StackOverflow question and realized the answer only when you were halfway through?
Rubber ducks are demonstrated in these scenarios.
Another curious reason to regularly solicit input is that we solve other people's problems easier than our own.
Research shows we are more creative when we think we are solving someone else's problem.
So if you're stuck, make someone else part of your thinking process!
How Do I Use It If I'm Remote?
Even more importantly, this applies to remote employees, as it can be so easy to keep turning around problems when you're alone.
The timeboxing method encourages remote workers to communicate. The following tools are great for remote collaboration: Hangouts, Skype, GoToMeeting, Join.me, Zoom.us, as well as Slack integrations like Sketchboard.
Pair programming is even better when seated in front of the monitor instead of hovering awkwardly to the side since I'm better able to see the code.
In summary: Whenever you're stuck, set a timer!