Become a Better Problem-Solver

November 17, 2011 · 7 comments

Interestingly enough, I do not find many sources discussing problem-solving skills for software development. Most books are concerned with the mechanics of a language or framework and almost every software design book I read teaches a procedure rather than to pay attention to the clues in the problem itself. Certainly, universities do not teach these skills that we are just starting to recognize as highly valuable in our industry. As a result, there is a huge difference in the effectiveness of developers.

Software developers are among the smartest people in the world, no doubt. This is because we are constantly solving new problems. It takes an incredible attention to detail in order to build even the simplest of programs. But intelligence is not enough; we also need skill and strategy.

I’ve made it my professional mission in life to find effective techniques for building software and I’ve amassed a set of techniques that I’ve witnessed expert developers use to their great advantage. I have not only learned these skills but also how to teach them so they become top of mind and used. This is important because you probably already know some of the skills I teach in my classes but if you don’t consciously connect why those skills are important, they will probably not become habits for you and you won’t get the benefit of using them naturally.

Where to start? Start by believing that there are better ways to solve problems. If you don’t then you’ll have no motivation to try. Provide proof to your brain that others have these skills and that the skills they possess are learnable and worth learning. Then ask yourself different questions–questions you haven’t asked before. Focus initially on the reasons and benefits of your goals rather than the mechanistic of how to achieve them. This can help you see different perspectives that can open you up to finding better solutions.

{ 7 comments… read them below or add one }

Paul Perkins November 19, 2011 at 8:19 pm

Hi David!

I’m delighted to see that you not only have the passion you used to have – you have more of it! Bravo!

Enjoyed your blog on problem-solving and think Walt Disney was on the right track with Imagineering (too bad after Walt’s death the board of directors decided to focus on maximizing profit rather than innovation). Better problem solving not only leads to better software developers; far more important, it can help us shape a better world. How can we be better problem solvers? Play games. Though this video is a bit long, I think it is worth watching:

http://www.ted.com/talks/jane_mcgonigal_gaming_can_make_a_better_world.html

Best regards,
Paul

Reply

davidbernstein November 20, 2011 at 11:12 am

Hi Paul,

It is great to hear from you!

I totally agree and I think that some of the problem-solving tools we are discovering for building better software can also help us in many other areas of life. Thank you for pointing that out. I hope you are doing well.

Best,
David.

Reply

Emerson November 22, 2011 at 4:03 am

“I’ve amassed a set of techniques that I’ve witnessed expert developers use to their great advantage”.

I’m intrigued. May you name some of them, please?

I took a class about problem solving here in Brasil, but it was basically brainstorming.

Emerson
[]

Reply

davidbernstein December 1, 2011 at 8:43 pm

Hi Emerson,

Thank you for your comment. I’ve also found a lot of material on problem-solving (books, websites, and courses) that was not very useful. However, I’ve also found some great stuff!

I’ve described several problem solving techniques that I’ve found useful here on this blog in previous posts. Some of the authors I’ve found particularly valuable are: Andy Hunt, Jim Coplien, and Scott Bain, to name a few. I’ve also found great information on problem-solving outside the software field in psychology, philosophy, NLP, and analytic thinking.

Most importantly, I think, is to engage the whole brain in a problem through visualization and asking ourselves new questions that help us form new ways of seeing problems.

I hope this helps point you in the right direction.

Thank you,
David.

Reply

Emerson December 16, 2011 at 3:22 am

Thanks for the direction, i will follow it to learn more.

Emerson

Reply

David Bernstein January 25, 2012 at 11:19 pm

Enjoy!

Reply

Jean A. Kilmurray July 28, 2012 at 9:29 am

You want to join in a contest 1st with the finest blogs on the internet. I most certainly will suggest this web site!

Reply

Leave a Comment

Previous post:

Next post: