Love of Craft (Continued)

SD Times has a brief item on the Standish Group CHAOS Study update. In 2006, 65% of sampled software projects were canceled, significantly late and/or over-budget. Over ten years of thought and practice have improved our success rate by a meaningful but disappointing 19%.

Business execution shares more than equal credit for our state of play. Four of the first five Standish Group project success factors are engaged, empowered and pragmatic product management.

There will always be a background failure rate no matter how excellent technical execution becomes. Things change and opportunities involve risks. Some well-executed projects will always fail to pan out. Still, 65th percentile is a mean aspiration.

I haven’t met a talented developer or development manager who wasn’t obsessed with self-improvement. Yet a focus on self isn’t enough. Standing out in the crowd may benefit individuals but it diminishes our craft. The failure around us lowers the hopes of society for what we can achieve.

Principle 7 of The IEEE Computer Society Code of Ethics says we should:

7.07. Not unfairly intervene in the career of any colleague; however, concern for the employer, the client or public interest may compel software engineers, in good faith, to question the competence of a colleague.

Inferior work embarrasses me. Behavior that perpetuates inferior work infuriates me. But when should we step beyond criticism of code to criticize those who author it? First, in good faith we should search our motives for self-interest and vanity. Opportunism is bullshit. Bullshit devalues truth. Bullshit destroys trust.

Ultimately we have a responsibility to protect the interests of those who pay us and the larger community who benefit from our efforts. We have a responsibility to society and the reputation of our industry upon which our potential to contribute to society depends. It’s our duty to find a way of expressing criticism that stands some reasonable chance of benefiting those interests.

Easier said than done where a power imbalance exists. As Ken Schwaber says in Agile Project Management with Scrum, “A dead sheepdog is a useless sheepdog.”

With all that to balance, how do we sleep at night?