goo blog サービス終了のお知らせ 

N2 ToolBox(跡地)

跡地です。引っ越しました。http://d.hatena.ne.jp/nosen

アジャイル仮想論争:スキルの問題(2)

2005-01-26 12:49:17 | 開発手法/方法論
前回のエントリに関するhiro345さんの指摘は、非常にロジカル
で、理に適ったものに感じました。
Saisseさんから頂いたコメントについても、契約は確かに重要な問題のうちの
一つなので、後のエントリで取り上げなくてはと感じています。

前回のエントリの議論の進め方にはいろいろ穴があると自分でも感じているので、
今回はhiro345さんの指摘を参考にしつつ、もう少しスキルの問題について
考えてみたいと思います。よくよく考えてみると、非常に深い問題で、あまり
明快な解答にはなっていないのですが。。。


「アジャイル開発を行うには高いスキルの開発者をそろえなければならない。
しかし、そもそもスキルの高い開発者をそろえればどのようなやり方をしよう
ともプロジェクトを成功させることはできる。」

上記の意見を数学風に表現すると、

・開発者のスキルを x とする。
・やり方に依存せずにプロジェクトを成功させることができる最低限のスキル
レベルを a とする。
・アジャイル開発に必要な最低限のスキルを b とする。

このとき、

x >= a を満たす全ての x について、
x >= b が成り立つ。

さらにここから、
a <= b
が成り立つこと、
つまり、上記の意見はアジャイル開発ができるスキルを持った開発者であれば、
やり方に依存せずにプロジェクトを成功させるできることを前提にしている
ということを導きだすことができます。

hiro345さんの議論の前半部分は、ここで

x >= a を満たす x が現実的には存在しないこと

つまりやり方によらずプロジェクトを成功させるスキルをもった開発者は
存在しないことを示しています。このとき、

a <= b

より、

x >= b を満たす x は存在しない、

つまり、アジャイル開発に必要なスキルをもった開発者は存在しない、
という結論になってしまいます。

ここでアジャイル開発に必要なスキルをもった開発者が存在する
ことを論証できれば、上記の意見の誤りをつくことができるはずです。

しかし、実際には問題はそう簡単ではありません。

スキルというものは、 x >= a, x >= b などのように単純に比較演算子で
比較できるものではないからです。
この問題を理解するには、以下のような問いを考えてみればよいでしょう。

DBの知識がある人とネットワークの知識がある人とどちらがスキルが
高いか?


この例を見れば分かるとおり、2つのスキルに量的な違いだけでなく、
質的な違いがある場合、単純な比較はできないのです。
単純な比較が出来ないとき、ここまで述べたアプローチは根底から覆り
ます。

さらに問題をややこしくしているのは、「高いスキルの開発者」という
のは実はとても曖昧なことばで、話し手が一体そのことばによって
どんなスキルの人を想定しているのかよくわからない、ということです。

とくに、今回のように、「やり方によらずプロジェクトを成功させること
ができる最低限のスキル」という現実にはなかなかありえない
スキルに関しては、話し手によってその具体的なイメージにかなりの
開きがでてくるものと思われます。

冒頭の意見に関する議論がいまいちかみあわず、
不毛なものになりがちなのは、スキルと言葉のもつ曖昧さ、
多様性によるところが大きいと思います。

アジャイル開発ができるスキルを持った開発者というのが何者であるのか、
やり方に依存せずにプロジェクトを成功させることができる開発者というのが
何者であるのか、実はよく分からないし、両者のスキルの間には量的な違いしか
ないのか、質的な違いもあるのかも分かりません。

そして、そのよくわからない部分を全て包含したかたちで、
冒頭の意見に反論することは難しく、少なくとも私の知能ではとても出来そうに
ありません。

できることは、まずは逆に質問をしてよくわからない部分を減らすことの
ような気がします。

とりあえず以下のような質問をして、相手の立場を明らかにするのがよいのでは
ないでしょうか?

「アジャイル開発ができるスキルとはどのようなスキルですか?」
「やり方に依存せずにプロジェクトを成功させることができるすきるとは
どのようなスキルですか?」

最新の画像もっと見る