The software corporate world can be very intimidating with companies requiring developers and designers to know how to do just about anything and everything, with any type of software under very strict deadlines. Its to be expected though, considering the pace at which technology is changing opening up new and exciting possibilities for what is possible. Its important to realize how critical one’s problem solving skills are as an important part of your arsenal. The bigger the problems you can solve, the more money companies will pay you. Here are six problem solving techniques I have used on numerous projects to get the job done well.
1. Communicating the problem to someone else
The idea behind this is that it forces you to know enough of the problem context to communicate it clearly to someone else. Bouncing the problem off someone actual presents new perspectives and insights as the conversation goes on. Discussing the problem with someone might reveal missing pieces either in the problem or in your understanding thus helping you get on the right track.
2. Make the problem smaller
One of the most effective ways of solving a problem is to break it up into little chunks and make it smaller.This is particularly seen very well in an Agile setup. A theme is a top-level objective that may span projects and products. At its most granular form, a Theme may be an Epic. An Agile Epic is a group of related User Stories. A User story is an Independent, Negotiable, Valuable, Estimatable, Small, Testable requirement. User Stories will often be broken down into smaller manageable Tasks.
3. Use the whiteboard
Our company had whiteboards in every department, in every boardroom and smaller ones above individuals desks. Draw out the problem can bring visual clarity as to how to solve it. This works particularly well with individuals who have a visual learning style. Mind maps and system layouts are your best aids to identifying solutions.
4. Ask for help
We do not work in vacuums. Most tech companies have open-plan layouts with low dividers separating workers. This makes it easier to ask for help or to be overheard by someone else who has encountered the same problem. This was the best approach especially when I worked as a software developer.
5. Ask an expert
There is bound to be an expert in the problem area that you are working on who knows how to solve it. Project managers, support, architects and issue managers are people that are likely to have run across similar problems whom one can ask at a software company. Working as a Implementation Support Manager I found this out to be the most efficient way to solving clients issues. We rarely had enough time to spend on critical client issues and quick resolutions were always best.
6. Google is your friend
Fire up the machine and Google your problem. The Internet contains vast amounts of information of most every topic you can think about so there is a good chance you will find answers, leads or people asking the same questions. This should be your last resort especially in a company setting. Its a brute force way of getting solutions but takes way too long for time dependant projects.
I hope you enjoyed the list. Please comment on how you and your organization approach problems.