TIL blog

技術ネタ, その他学んだことのアウトプット用

読書メモ Defining Productivity in Software Engineering

Splinger link でCCライセンス で公開されていた Rethinking Productivity in Software Engineering | SpringerLink が面白そうだったので, Chap. 4 "Defining Productivity in Software Engineering" を読んだメモを公開する。 自分の解釈が入ったメモなので正確に内容を追いたい方は原文を参照されたし。

Introduction

  • 部門によらず生産性の定義は output/inputとして考えられる
  • input に関してはソフトウェアの文脈では比較定義が簡単。
    • (human resource, computation resource にかかる資本投下?)
  • output の定義が難しく一般的には数量, 品質が定義になるがこれらを普遍的に測定する方法を定義するのが難しい
    • そのうえoutputに影響を与えうる 要因の分析, 測定, 比較などに有効な方法やツールが明確に定義されていない
  • 本文献では ソフトウェア開発における生産性改善のために, 関連する用語(効率性有効性パフォーマンス、および収益性) の定義の確認とそれらの関連性について説明する。

用語の定義

生産性(Productibity)

Introで述べられたように分野によらず, 普遍的に定義されるもの

Productivity = Output / Input

古典的な製造業においては, (単位時間当たりに生産される単位数)/(生産で消費される単位数) で直接的に表現できるが, 作家, 科学者, SWEなどのナレッジワークではアウトプットに品質、適時性、自律性、プロジェクトの成功、顧客満足度 など複数の考慮すべき要素があるため未だ普遍的な定義は存在しない。

収益性(Profitability)

収益性と生産性はしばし混同される。収益性は生産性の Input を得るためのCost, Output を取引することで得るProfitまで考える。

Profitability = Profit / Cost

従って生産性は変わらずとも物価の上昇や, 資源価格の変動など外部条件によって収益性は変動しうる。 収益性の変動要因は生産性より多い。

パフォーマンス(Performance)

パフォーマンスは収益性より更に広範な企業の成功に影響を与える要因を含む指標。 顧客の認識度, 満足度などを含む。

効率性と有効性(Efficiency and Effectiveness)

しばし, 混同されるが, 効率と有効性は別の概念であり, 効率はinput に作用するもの, 有効性はoutputに作用するもの として本文中では定義されている。 以下の図がわかりやすい。

品質(Influence of Quality)

生産性の項で述べたように, ナレッジワーカーの生産性を定義する要素として存在するもの。 いくつかの文献で定義を行おうと試みられているものの未だ生産性との関連性を運用可能な概念として明確に定義したものは存在しない。

PEモデル

前節で定義した用語に対して, Tangen の triple-P-model の拡張モデルとして本文献では以下のPEモデルが提案されている。 PEモデルによって前節で定義したモデルのすべての用語の関連付けができる。

追加された要素は以下

  • 収益性とパフォーマンスを関連付けるものとして, 顧客の認識度を追加
  • 生産性と収益性を関連付けるものとして, インフレーションと価格設定を追加
  • 有効性と効率性の位置づけを追加

感想

  • 抽象的な話が多くて理解しにくかったが, PEモデルの図自体は納得いくものだった
  • Quality とFunctionality の境界が曖昧なのは納得, 機能要件と非機能要件の線引は難しい
  • short paper なのもあって関連研究も見ないとイマイチピンとこない。 Customer Perception はマーケティング文脈の話だと思われるが, PEモデルの分割において対称性がうまく反映できていないように思った。