2024 Public Training Schedule
November 18 – 21, 2024 – Agile Analysis and Design Patterns
Half-Day Sessions
December 9 – 12, 2024 – Agile Analysis and Design Patterns
Half-Day Sessions
(c) 2024 To Be Agile
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.
{6 Comments }
Previous Post: « Solutions Thinking
Next Post: Connections »
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:
https://www.ted.com/talks/jane_mcgonigal_gaming_can_make_a_better_world?language=en
Best regards,
Paul
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.
“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
[]
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.
Thanks for the direction, i will follow it to learn more.
Emerson
Enjoy!