March 05, 2015

Problem Solving Checklist

##Where to start?

That’s often my question when I can’t figure out how to do something or how it works. These days I have been pretty sleep deprived and I find that having a streamlined approach to problem solving keeps me focused and more productive.

As a part of my internship I have been trying to set up Travis CI for the learnosm site. I have encountered so many errors! And in the process of exploring solutions I have found documentation that would have really helped from the beginning but somehow I didn’t know it was there.

####1. Define Terms and Read the Documentation Since defining the problem can be half of the battle towards finding a solution, understanding the terminology and how things work is essential. I think it’s taken me several weeks of tinkering with Travis CI and its custom settings just to understand its workflow better.

####2. Search the Internet I use to think that being a developer involved the supernatural power of having endless access to endless amounts of information in your head and then I realized we all have that . . . it’s called the internet (it’s just not in our head)!

Imagine my amazement when I asked a developer for help with a particular error and watched her google search my error message! I could’ve tried that (although knowing what to look for is another skill). This phenomena has become so common place there is now a site devoted to the idea called “LMGTFY” or “Let Me Google That For You”.

Another cool search engine to try is Duck Duck Go. It doesn’t track you; no more strange ads based on my search history.

####3. Search Developer Forums Sometimes searches just don’t bring up what you’re looking for especially if it includes code or too much code specific jargon. This is where a site like Stack Overflow comes in. Stack Overflow is one of many sites where you can ask code or programming specific questions and get answers.

####4. Ask Someone!

This can be the most nerve-racking of all the options! But hopefully after following the other steps you would have at least a better idea of what to ask and what the nature of the problem is. I explored the challenge of how to ask questions in this Ascend Post.

I’ve practiced this skill in the last few months with a stranger at a coffee shop I struck up a converation with (“You wouldn’t happen to know about . . . ?”) and with an acquaintance on Twitter. By the way, having developer related stickers on your laptop is a great way to meet other developers at coffee shops!

Finding someone to ask might seem even harder than mustering up your courage or formulating the question. Try a IRC (Internet Relay Chat) room, a Meetup, User Group, or even email customer/user support if applicable.

If you have other ideas feel free to post them in the comments!