Software development is a world full of individual accomplishment and competition. It shouldn’t be. Great software comes from great teams. No one person is responsible and no one is irreplaceable. As the industry matures we, as individuals, must also mature. In short, it’s just not about you it’s about the successful creation and delivery of a product into the hands of the users.
Developers are trained, either in a long simmering environment of formal education or in the red hot crucible of hands-on self education, that success comes to those who are faster, less-error prone, and more productive, than their peers. Testers take failure to have found a defect that was later found by another as a personal failing. Managers all too frequently get individual rewards for the work of their team. Personally, I have seen far too many resumes, and heard far too often during interviews, individuals who truly believe they deserve credit for the work of others.
The problem is nearly biblical in nature; Ego, hubris, and selfishness. The cure is equally timeless; selflessness, humility, and teamwork. When a project is having trouble I can guarantee the team is having trouble acting like a team. On the surface this may be breakdowns in communication or misunderstanding directions, processes, or goals. Below the surface it is likely to be a deadly rip-tide of self doubt, loneliness, and divisiveness.
All of this is magnified when occurring within the chaos of a project recovery effort. I would love to say I have always found a way to bring a team together during recovery. I haven’t. Inevitably there are those who could and hadn’t had the chance, those you can’t and may never, and those who are new and always will. Fractured teams slow velocity, reduce productivity, and generally ruin a fair number of otherwise perfectly good days.
Our job is to succeed anyway. It is harder, slower, and more difficult. Oh well. My priorities are very simple; Family, Team, Users, Company… in that order. If you think you are the most important thing you can’t make the kind of decisions that are best for the team and the users. If you aren’t on the team. If I can’t help you help the team. I have failed you and for that I am sorry. Now you are a problem to be overcome. It isn’t personal. And it’s not about you.