- blogs:
- cles::blog

ソフトウェアの生産性
ソフトウェアの生産性は計測不能(日本語訳)であると、かのFowlerさんもいっている。
Martin Fowler's Bliki in Japanese - 生産性は計測不能
"生産性とは、インプットとアウトプットで決定されるものです。ソフトウェアの生産性を測るには、ソフトウェア開発のアウトプットを見なくてはいけません……が、そのアウトプットを計測できないからこそ、ソフトウェア開発の生産性が計測できないのです。"
これは確かにそのとおり。ソフトウェアの規模をソースコード量*1で表すなんていうのは参考程度にしか役に立たないし、個人の成果とか貢献度を単純にソースコード量で計るなんていうことはナンセンスだ。
しかしながら、今僕が研究しようとしているソフトウェア開発(演習)支援システムはソフトウェアをどの程度作ったかとか、どの程度ソフトウェアを作る力がついたのかということが問題になってくるので、それにあわせて生産性の問題を避けて通ることはできない。
特に大学教育に適用しようと考えた場合には学生の評価のこともあるので、この辺はなんとしても何とかしたいところだ。
† CVSのログは使えないか?
ソフトウェア開発では最終成果物がソフトウェアのソースコードになるはずだから、それがどのように構築されていくのかという過程をトレースすることができれば、最終成果物に対する各人の貢献状況がある程度はわかるのではないかと考えた。もちろん、コミットした量だけでなくて、コミットした部位とかそれらの関係とかを考慮した計測、分析が必要になるだろう。
実社会のプロジェクトではコーディングを行わない職種、職位の人も大勢いるので貢献状況がわかるといっても限られた範囲のことであることは認識している。この鉄則が素直に当てはまるとすれば、設計者=開発者となっているオープンソース開発くらいだろうか。大学教育では大学では全員がPMであり、設計者であり、開発者でもあるので、この辺は問題にならないだろう。でも、どこかで発表する際には厳しいツッコミがあるだろうからきちんと対策しておかないといけない。
一般的にソースコード管理はCVSで行われているので、これらの状況が記録されているのはCVSのログということになる。そのあたりの情報を利用した研究はもうすでにないのかなと思っていたら、ICSE*2 2004のワークショップにMSR*3 2004というのを見つけた。
まだ、Proceedingsの目次に目を通しただけだけれどもその辺に近いことがいろいろと行われているようなので、 この辺を足がかりにいろいろ調べてみよう。
- *1: 一般的にはLOC(Lines Of Code)といわれていますね。
- *2: International Conference on Software Engneering
- *3: International Workshop on Mining Software Repositories
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/208
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110664)
3 . 年次の人間ドックへ(110293)
4 . 2023 年分の確定申告完了!(1つめ)(109830)
5 . 三菱鉛筆がラミーを買収(109740)