ソフトウェア開発で何が良いか判断基準

前回も書いたが、他にも色々ある。
http://d.hatena.ne.jp/haru01/20100417/1271516548

Web企画屋の目

  • ユーザ数の伸び率の傾きを維持しているか
  • ページビューが十分あるか

起業家の目

  • 継続的に儲けて、事業が続けられるか
  • ユーザ、プロジェクトメンバーが集まってくる魅力的な場を提供できているか

開発者の目(自分に近いポジションなのでもう一度、別表現で)

  • クリーンなコードを保っているか
    • DSLsやデザインパターンが示すような、良いとされるcodeが形成されているか
    • テストの不吉な臭いが発生していないか。xUnit Patternsが示す、良いとされる test、testingを 行っているか
  • TDDらしい、有機的秩序の原理、診断の原理を満たしているか
  • Customer Testing らしい、顧客参加の原理、有機的秩序の原理、診断の原理を満たしているか。

デザイナーの目

  • ユーザにとって、わかりやすく 魅力的な インタフェースか
  • ビューの裏側にある、情報構造やストラテジーと整合性はあるか
  • ユーザの利用のコンテキストが想像できているか

一人の目、複数の目/ツリーとセミラティス

各々個人が診ていること、ものは違う。
これを混ぜ合わせることで、セミラティス構造が出来上がる。ツリーはある特定の人の視点1つに頼るのと対称的

複数の目を混ぜ合わせ、全体で何が良いかと判断する難しさ

例えば、顧客やユーザ目線だと、Codeのクリーンさなんて、プログラマ目線に比べれば、関心が薄い。
文字通り見ている要素が違うから。

ただし、Codeのクリーンさ は間接的に 顧客やユーザに影響を与える。バグ発生から修正にかかる時間や 今後の新機能追加にかかる時間などなど。

なんだけど、一定の共通の判断基準がないと、合意が難しい。技術的負債は、codeのダーティな度合いをお金に変換して説明している。顧客やマネージャが意思決定判断できるように。


「技術的負債」の言葉の利用で、開発者が、Codeの状態を時間・金として関心を払い、顧客やマネージャにきちんと状況を説明し、Codeの状態をクリーンに保つ、修復の時間を確保し、返済できれば、よしよしとなる。

この試みは、複数の異なる目があるなかで,ある一定の共通の判断する基準づくりの示唆を与える。