開発プロセスと技術の相関関係

上手くソフトウェア開発が出来るチームは、開発プロセスも良好だし、技術・スキルもそれなりに高いようだ。細かく見ていけば問題が無いわけではないけれど、それらは許容範囲内に収まっているし、絶えず改善活動を行っているせいか昨年の状態より良くなっていることが明らかだ。「良好なプロセス→高いレベルのアウトプット→さらにスキルアップ」という正のサイクルがうまく回っているように見える。

その一方、リリースしたソフトウェアにデグレばかり出しているチームは、開発プロセスも悪いし、技術的な問題も多く、スキルの課題も少なくない。毎日残業をしている割には抜本的な対策が取れておらず、「障害が多い→対策に追われる→レベルを上げる余裕が無い→さらに障害が生まれる」という負のサイクル(死のサイクルか?)にはまり込んでいるようだ。

不思議なことに「プロセスは良いけれど、技術が追いついていない」とか「技術はあるけれど、プロセスが足を引っ張っている」チームはあまり見かけないように思う。なぜだろう?両者の間には何らかの相関関係が存在するのだろうか?

仮説:

  • 優れた開発リーダーは、プロセスも技術も上手く回していく能力がある。
  • 低いレベルの開発リーダーは、プロセスを回せないし、技術の指導も出来ない。
  • プロセスか技術の一方のレベルが上がると、それに連れて他方も上がる。
  • プロセスか技術の一方のレベルが下がると、それに引きずられて他方も下がる。
  • 優れた開発チームでは、低いレベルの開発者が生き残っていけず、優れた人だけが残っている。
  • お粗末な開発チームでは、高いレベルの開発者が愛想を尽かして逃げ出している。

さて、どれだろう?