SOME OF THE HARDEST PROBLEMS YOU DEAL WITH WHEN BUILDING SOFTWARE ARE THINGS YOU CAN'T control. Sometimes accidents take down your project. Sometimes unforeseen issues do. And unfortunately, sometimes things are done to the team on purpose to undermine a project. Building software is hard enough without dealing with obstacles that are put in the team's way. But we work in the real world, and real-world projects run into problems that are bigger than the team and the software.
One of the biggest obstacles is a bad manager.
Have you ever had a manager who refused to accept a reasonable estimate? Or who consistently undersold your efforts ("The team says it'll take six weeks? I'll promise it in four; that'll light a fire under their asses!") and makes you work weekends to meet the crazy expectations? Bad managers come in all sorts of flavors, and every one of them presents a serious, sometimes even insurmountable, obstacle to the team. Some managers seem bound and determined to make your project fail. They micromanage the team, constantly change the goals of the project, and always seem to be made of Teflon when things go wrong, blaming the team for the problems and never questioning, even for a minute, their own direction or management.
A bad manager can be impossible to work for. But ...