[under construction] These are common patterns of reasons why technical workers can get very frustrated. * '''Hit-and-run spaghetti''' - A prior technician/developer left you with a big ball of tangled yarn. You do your best to work with it, but it's still a tangle and there is no short-term fix. However, users and managers don't know this situation, and thus ''you get the blame'' for the problems it generates. * '''Ignorant but willful users/managers''' - Users and/or managers may not know a lot about technology, but often have unrealistic expectations or incompatible/illogical/conflicting goals because they are "sure" they know what they are talking about based on their limited experience and don't want to listen to you and/or techies. (See JustMakeItRight.) * '''Sales Job Afterbirth''' - Slick sales-people come in and show a fancy-dancy application with cutesy bells and whistles, and suddenly everybody wants the same thing, not understanding the maintenance or overhead some of those features cause. * '''Rush-Job Cruft Buildup''' - Because so many projects end up being rushed into production, they grow into a big pile of maintenance headaches. You try to push back by requiring more planning or realistic schedules, but are out-voted and so the short-term crap keeps flooding into the system. Then you spend all your time putting out fires instead of doing meaningful work. * '''Nap Killers''' - You are called into the office on Sunday afternoon to repair something that shouldn't have broke if built right (see above). Even worse is 2am calls. * '''Obsessive Resource Wasters''' - Some users/managers obsess on some feature or characteristic that is "very important" to them, but nobody really cares about much compared to other issues.