You have your architecture design all laid out; the proper resources have been secured and contracted for the duration; the development starts off a little rocky, but quickly smooths out, and you’re sailing along through the project. Everything’s firing on all cylinders while you’re blowing through all the deliverables with ease, and you can see the potential success coming; you near the end of the project in System Integration Testing – when it all falls apart like the 2011 Red Sox.
On paper, the project plan looked flawless with plenty of time allotted for each stage, including contingency. Your Agile development method had been tried and tested, and everyone understands his or her role. You can do everything right to position your company for success, yet fail in the execution.
There are many factors that contribute to the success or failure of a project:
- Focus and Concentration
- Team Chemistry
It all starts with focus and concentration. A system replacement project is a full-time job, and if people become distracted by other issues, such as production support responsibilities or competing projects, those distractions impact the quality and timeliness of the system replacement. Just like a pitcher who’s distracted by off-field issues or his next contract can start throwing meatballs, your project resources can be sucked into other issues and neglect their tasks at hand.
Aligning individuals with the correct task for their skill sets is key. It’s difficult for a project to be successful if resources are overwhelmed by learning new technology. Confused employees beget faulty implementations that must later be fixed or replaced. If a player’s used to playing center field, and you stick him in left with a large wall behind him and much closer to home plate than he’s accustomed to, you’ll be stuck with defensive problems that cost games. Similarly, it’s also important to have depth and reserves available to fill-in. Should resources be unable to complete the work, you need competent people available to step in and allow the project to continue without causing a misstep. If one of your best young pitchers goes down with a back injury, or your “All Star” third baseman is sidelined with a hernia, you need to have people available in AAA who can step in and hold their own to keep things moving in the right direction.
I love the Agile development methodology. There’s constant communication – everyone meets every day, short sprints of development and delivery meetings, easy to follow tracking reports on tasks, publicly displayed reports on progress – everyone knows what’s going on. Constant communication yields accountability and support. If people see that they may be lagging behind, they’ll put in more time to compensate. If others are ahead of schedule, they may be able to help those whom are lagging. However, the danger is that if one group does lag behind, it can also draw others into that quicksand. They may say, “If the others are behind and no one cares, why should I kill myself to get my own work done?” Therefore, it’s important to keep everyone motivated with accountability and let everyone know where everything stands. This methodology also applies to enterprises as a whole. If your pitchers are throwing so poorly that they can’t get past the fourth inning, it can create derision in the clubhouse. Your DH might start telling players, “If you can’t get the job done, we’ll have to play relievers instead.” Or, if your new “star” left-fielder can’t get on base and use his speed to score, you need to communicate to the team why those players are still in those positions. The oft-quoted definition of insanity is “doing the same thing over and over again and expecting different results.”
Not enough can be said about team chemistry. Team chemistry is most important when the chips are down. That’s what helps get you out of the doldrums and put you back on top of your game. The team needs support from management, not only in providing the proper tools to accomplish their tasks, but also to let off steam for a respite and work together on something completely different. Take a Friday afternoon off for the team to play volleyball on the back lawn with a BBQ lunch, or a laser tag session to get their minds thinking about something else and staying fresh. In order to achieve success, everyone must pull together. Get them to socialize with each other and build that rapport where they want to support each other. Keep everyone working closely, lock them in the same room if you can, because that will help build those close relationships amongst the team. You can’t have everyone only concerned about their performance and not working together. You can’t have 25 guys-25 cabs. When it gets to the end and you’ve lost 19 of the last 24 games, there’s no character there to save you. Team members will give up on each other and graduate to a self-fulfilling prophecy of loss. A player might say, “If pitching lets up another long ball, I’m not going to try my hardest to catch the ball.” The defense gets lazy, balls aren’t played properly, and more runs score. In those situations, you need to “Cowboy Up” and do whatever you can to win. You need to cheer for each other and not expect the worst to happen. If you expect the worst, you’ll make it happen.
Simply putting the plan together doesn’t mean it will be successful. You have to do all things well in order to make it happen and achieve success.
(Personally, this blog entry has been very cathartic.)