With software projects it’s rare that a failure points to a single cause or person. Usually it’s a culmination of many smaller mistakes. With technology and formal project management best practices are usually well documented and available. One thing that isn’t talked about as much is attitude. The attitude of persons in your group or your group as a whole is one of the biggest factors of your success.
As a volunteer firefighter my training often intersects with my career in development. Today while taking a class (L-180 Wildland Fire Leadership Development) I learned about a set of “hazardous attitudes” that get teams in trouble. Reading through it saw a parallel with software development. These attitudes on the fireground can get yourself or others killed so they’re especially important. Why not apply them to software development?
Here is the list of some hazardous attitudes from the class, and this is what we’ll be applying to software projects.
- Macho (competitive)
- Complacency (casualness)
- Escalation of commitment (target, fixation, mission-itis)
- Other ( sexist, racist, agency bias )
If you’ve ever worked on a group project of any type, you’ve seen these. These types of attitudes also tank software projects just as bad.
“This would never happen to us”. This is common with teams who have had some level of previous success. They know of the pitfalls, know the risks and still take chances thinking the worst won’t happen to them. While this might work for a while or even a long time, the backfire can be devastating. Because you took a risk you know you shouldn’t have it looks bad when it fails. You’re guaranteed to hear the phrase “You should have known better”.
“Those guys are a bunch of idiots!” These words are often uttered about executives, directors, VPs, and other forms of upper management. While it may be true that you know more details about your job, there’s a good chance you don’t know what they know about the business. You may not know the reasons behind their leadership decisions. While it’s healthy to question policy and ask questions of your leadership, willful denial of their rules or requests can be detrimental to your project and your employment status. When this attitude gets carried away bad things tend to happen.
“Let’s just do it! Shoot from the hip”! This attitude is sometimes disguised well as a “can do” attitude. Impulsive managers and staff are often referred to as “go getters” who get work done. While that may often be the case, impulsive decisions that aren’t well thought out lead you down paths that are difficult to get out of. Remember it’s not just the immediate decision that can backfire, it’s often the subsequent actions and decisions that get you into trouble with this attitude.
“We’ll show them how it’s done”. This attitude gets you in trouble because you are using a bias, and it’s another dangerous road to go down. You may get overconfident and step on a lot of toes thinking you’re going to hit a home run, then everyone will forget earlier transgressions cheer your victory. This rarely happens in practice. What usually happens is you alienate people who could be collaborating with and destroying your reputation when you fail.
“This is never going to work anyway, so why try”? While the downsides to this attitude is pretty obvious, what most people don’t consider is how well this can take hold and spin out of your control. A single team member who possesses this attitude can infect the whole group. If not corrected, this attitude becomes a self fulfilling prophecy.
“I’ve done this a million times”. Many folks have this attitude after getting good at something. When working at a lumber mill I was told the people who get injured the most are the ones with the most repetitive jobs that they’ve been doing forever. They quit caring and become complacent to the point they aren’t paying attention to what they’re doing. In the business world this can lead to serious bugs and security problems. Complacent team members are among the most well known.
Escalation of Commitment
“Well, we’ve come this far so we as well keep going”! This attitude may have the best of intentions, but we usually end up in projects that are over budget and way beyond the deadline. Remember Brooks’ law? Adding more programmers to a late project usually makes it later. It’s typical to try and fix a failing project by throwing money, time and programmers at it until it finishes and nobody is happy with the final product.
Sometimes you just have to know when it’s time to go back to the drawing board.
Other (sexist, racist, agency bias)
Remove “agency” and replace it with “group” and you have a problem that’s common in today’s business environment. “Those marketing idiots! Those salespeople!". This kind of bias doesn’t help anyone involved. You should be sharing a common goal not fighting against each other.
Racism and sexism? Remember you’re a professional, and it’s 2013. These views are antiquated and ignorant. These attitudes create a bias that harms everyone around you, and your decisions should never be based on them. Not only should you not harbor this bias but you should not allow others to do it. There’s a reason people are fired immediately for racist or sexist comments, it’s a poison that destroys groups, companies, and morale. It inflicts personal damage to others. Be better than that.
Reading through these hazardous attitudes it’s likely you’ve already seen it in action. If you have any of these attitudes you’re contributing to the destruction of your project and group. If you see these attitudes in others and take no steps to correct it you’re also doing harm. Their is no single recipe for guaranteed software project success, but attitude is a key element. If you have the problems, fix them. If you see it, say something. Lead by example and remember success favors the prepared.