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

The Agile Zone is brought to you in partnership with Techtown Training. Learn how DevOps and SAFe® can be used either separately or in unison as a way to make your organization more efficient, more effective, and more successful in our SAFe® vs DevOps eBook.

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?"

Adopting a DevOps practice starts with understanding where you are in the implementation journey. Download the DevOps Transformation Roadmap, brought to you in partnership with Techtown Training


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}