Sustainable Software - 継続可能なソフトウェア
継続可能なソフトウェア(sustainable software)
というキーワードで、現在のソフトウェアを取り巻く技術や考え方を統合したいと思っています。以下に、メモ。
何がソフトウェアの品質の中心となるか。
・保守性(EoM)=テスト可能性(EoT)+変更容易性(EoC)
http://blogs.itmedia.co.jp/hiranabe/2005/08/post_353b.html
このための技術がオブジェクト指向(部品再利用やコード再利用ではない)、という位置づけ。テストしやすい設計、リファクタリングしやすい設計にすること。そのために、言語要素として継承・カプセル化・ポリモフィズムを使う。さらに原則として、DMP(問題領域概念とのダイレクトマッピング)、SRP(問題領域の変更を閉じ込める)などを使う。また、シンプルで愚直な設計をよしとする。
また、プロセスとしてはアジャイルなものを使うことで、「ゴールデンパスを一回通したら、すぐにメンテナンスフェーズに入って継続的再設計する」。
また、ビジネスモデルとしては、SaaS的な考え方が親和性が高く、純平さんの「サービスウェア理論」が関連する。
http://junpeisouma.blog77.fc2.com/blog-entry-11.html
また、倉貫さんの「ディフェンシブな開発・オフェンシブな開発」も関連するだろう。
http://d.hatena.ne.jp/kuranuki/20060116/p1
さらに、こうなると再利用すべきものは「知識」にあり、属人性とコミュニケーションをどう扱うか、という問題が中心となる。これは、「人」や「チーム」の中に蓄積される暗黙知をどうマネジメントするか、という問題であり、PF(プロジェクトファシリテーション)的なチームビルディング手法がますます重要になると思うし、TPSのような「現場カイゼン」と「人づくり」が大切になるだろう。
http://www.objectclub.jp/community/pf
現在のやり方のままでは、この業界は「継続可能」とはならない。3K問題ふくめ、自分の学校の後輩が「ソフトウェア開発業界」に就職したい、と相談されても、「ぜひこい」と言えない自分がいる。「創造的で楽しい業界だから」ではなく、「体力と気合いるから覚悟してこい」と言っている。優秀なエンジニアたちの目から光が消えていくのを見るのは辛い。
誇れる業界にするために、3Kから3Tへ変えていこう。
3K=帰れない、きりがない、給料安い
3T=楽しい、定時で帰れる、高い給料
らしいです(^_^)。↑この出典わかるかた、教えてください。