Did Lincoln say that we hate all software at least some of the time and we hate some software all of the time? He would have. Thank goodness we can’t hate all of it all of the time because, after we stumble on the right combination of clicks and keystrokes, most of it does magical things. Too bad the path to these results can often involve cursing and pulling our hair — especially when the code is homegrown.
Even if we hate the experience of using major products, apps and websites, the software development ecology is often unfair to the custom projects that handle special tasks for enterprises. After all, there are hundreds if not thousands of developers working on the major software and services consumers depend in their daily lives. There are entire teams devoted to the credit card billing section alone and entire buildings of workers devoted to solving how to get people click 1 percent more often. But it’s hard not to judge the smaller in-house projects by the standards set by these brigades of programmers.
Many enterprises have a handful of developers, or just one beleaguered soul, working part time on a software project while juggling several others at the same time. The company’s end-users, fresh from clicking on a major retail website or crafting a bit of wit for social media, switch tabs and expect the same level of polish from the in-house accounting shim running on their desktop.
Developing software is hard, but it’s even harder when your customers are down the hall and eat in the same cafeteria. When they hate your code, you feel it deep inside. It’s easier to recover emotionally from a bad bug if you don’t have someone mentioning it at the company softball game.
Here are 11 reasons why users hate your software. Some are simple to fix. Many are just consequences of scale. Bigger teams are able to build simpler products and devote the time to polishing.