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.