Over a million developers have joined DZone.

Searching For Nails: A Hammer's Story

DZone's Guide to

Searching For Nails: A Hammer's Story

· Agile Zone
Free Resource

Speed up delivery cycles and improve software quality with TestComplete. Discover the most robust automated testing tool for end-to-end desktop, mobile, and web testing. Try TestComplete Free.

In the software development industry, solving customer needs can be the most challenging yet rewarding part of a programmer's job. Once a problem has been identified, most programmers jump in like eager warriors ready to attack. They propose a solution and make the necessary programming changes to see the problem to resolution. At a quick glance, this process sounds like a recipe for success. It helps mitigate scope creep, lets developers flex their intellectual muscles, and solves customer problems. Although these are true, is there a greater cost to this approach? If not, why isn't the Internet overflowing with gushing success stories of software development projects? The truth is, the number of struggling projects far outweigh their successful counterparts. Why is this? Because sometimes developers are too smart for their own good.

In problem solving knowledge is power, but it must be harnessed properly. In most circumstances a seasoned developer will provide a more complete solution than a newb simply on his/her breadth of knowledge. Although the proposed solution may meet the need, it's important to recognize how Pavlovian Conditioning plays a role in decision making. Pavlovian Conditioning is "a process of behavior modification by which a subject comes to respond in a desired manner to a previously neutral stimulus that has been repeatedly presented along with an unconditioned stimulus that elicits the desired response." Simply stated, developers have a predisposition to solving problems through the use of existing paradigms such as making recommendations that use existing software, tools, or programming languages. As Abraham Maslow stated, "If all you have is a hammer, everything looks like a nail."

Unfortunately, this problem solving blindness goes relatively unnoticed in the software industry. In fact, it is quite the opposite. Programmers are commonly encouraged to find technical solutions to problems. Although this can prove to be beneficial it also furthers a programmer's conditioning. The best way to attack Pavlovian Conditioning is not to fight it, but use it to one's advantage. Work to recondition the brain by asking the following questions:

How would this be solved if ...

  • the problem had to be fixed immediately?
  • the necessary time was given to provide a solution?
  • unlimited budget and time were provided?
  • it was too costly to make a programming change?
  • the software wasn't programmed in ...?
  • the solution had to be seamless?

These questions are meant to drive out multiple solutions to a problem. Some of these are intentionally non-technical in nature. Having these in hand, options can be weighed based on their importance, time, and need. Asking these and similar questions will make a positive impact on the decision making process. It can help projects avoid falling behind schedule by seeking easier and/or non-technical solutions to problems. When a project starts to feel heavy, don't be afraid to stop and ask the question, "Am I seeing too many nails?"

Release quality software faster with TestComplete. Discover how to decrease testing times and expand test coverage with the most robust automated UI testing tool. Try free for 30 days.


Published at DZone with permission of Zac Gery, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}