« データモデリングの上達には「事例研究」が不可欠 | トップページ | 人数ではなく技能を確保するためのシフト管理システム公開 »

2020.10.11

システム設計のスキルは「掛け算」で作用する

 拙書で説明した「看護師スケジューリング問題」を扱うための「要員シフト管理システム」のプロトタイプを組み立てたのだが、各シフトで必要なスキルの充当状況を計算しながら気づいたことがある。ある種のスキルは足し算的に充当されるが、掛け算的に充当されるスキルも存在する。システム設計のスキルは掛け算型だ。

 あるシフトに関わる4人が、あるスキルに関してそれぞれ0.9(一人前になりきれていない)のスキルレベルを持っているとする。足し算的なスキルだとすれば、そのシフトには3.6のスキル強度が確保されたことになる。いっぽう、このスキルが掛け算的なものだとすれば、0.9の4乗、すなわち0.7未満の強度しか得られない。こういった特性にちなんで、それぞれを「足し算型スキル」と「掛け算型スキル」と呼んでおく。

 子どもの頃、広々とした越後平野で田植えを手伝ったが、非力な子供でもそれなりに役立ったことを懐かしく思い出す。それは作業に必要なスキルが典型的な「足し算型スキル」であったからだ。

 いっぽうの「掛け算型スキル」の例としては、バンドメンバーとしての演奏能力、たとえば四声アカペラグループの歌唱力を想像してもらうとわかりやすい。経験者ならば一瞬で納得してもらえるだろうが、0.7のそこそこのスキルがあっても4人集まって演奏すればバンドとしてのパフォーマンスは0.7の4乗、すなわち0.2強程度に低下する。仮に3人が1.1の優れたスキルを持っていたとしても、1名が0.5であれば0.7未満に落ち込む。どうしても演奏品質を高めたいのであれば、低スキルのメンバーには「演奏しているふり」をしてもらうのがベストということになる。

 これらのスキルの本質的な違いは何か。プロジェクトが扱う課題をメンバー数できれいに(つまり周りの足をひっぱらない形で)分割できるかどうかの違いである。分割できる課題であれば足し算型スキルで扱える。いっぽう、分割したブロックの出来の悪さが足をひっぱるようであれば、それぞれのブロック毎に要員を充てた場合、全体のパフォーマンスに対して各メンバーのスキルレベルは掛け算的に作用する。「4人でハモる」などは、メンバー間の影響をモロに受けるタイプの課題なのだ。

 ちなみに上述の「要員シフト管理システム」は、病棟や居酒屋向けの仕事を想定している。こまごました複数の需要を手分けして捌くことになるので、基本的には田植えや稲刈りのような「足し算型スキル」とみなせる。現場ではメンバーのスキルレベルに応じたサイズで課題を分割し、それぞれを各メンバーにまかせてしまえばいい。

 さてようやく本題。システム設計に求められるスキルは、開発プロジェクトにおいて「足し算」ではなく「掛け算」的に作用するのだが、この事実はあまり理解されていない。設計のスキルレベルが0.5であるような素人要員を「文殊の知恵」などと称して集めるようなことがなされている。タイム感の悪いドラムとベースの上に、チューニングのズレたギターがやかましく鳴って、音痴なボーカルが声の限りにシャウトしているようなものだ。「スクラム組んでアジャイルにいこう!」とか歌っていそうだ。

 じっさい多くのアジャイルプロジェクトが、複雑巨大な開発課題をいくつかのブロックに適当に分割して、それぞれ毎に設計(兼開発)チームをあてるようなことをしている。これは飛行機の主翼と尾翼の設計を別チームに任せるような無謀で、各要素がちぐはぐでまともに連係しない工学構造物が出来上がる。工学構築物の大きな特徴のひとつが、各ブロックが有機的に作用しあう点であることを忘れてはいけない。みんなが大好きな「疎結合」の用語が無謀や無責任の言い訳になっていないか。

 では、どうすべきなのか。設計スキルの高い要員は払底しているので、彼らを複数確保することなど容易ではない。それゆえ、とりあえず万難を排して練達を1名だけ確保し(確保できないならプロジェクトを中止するほうが世のため人のためだ)、かれにシステム全体のプロトタイピングまでを任せてしまうやり方が妥当である。プロトタイプでの試用を重ねる過程で全体のDB設計が確立されるので、その後でならば本番システムの実装を10人で分担してもかまわない。ひとりで全体を構想する技術者の責任は重大であるが、それが飛行機や高層ビルや情報システムの基本設計を担う高度専門性というものだ。

 しかし、一人に任せるやり方では育成の問題が生じるので、設計にはサポート要員を1名つけて、設計品質に悪影響を与えないタスクを任せたらいい。前回記事で、システム設計に熟達するには事例研究と実務経験の蓄積が必要だと説明したが、サポート要員として上級者といっしょに働くことできわめて有意義な経験を得られる。ただし、上級者とやりとりする過程で職業適性の有無が明らかにされることを覚悟しなければいけない。「あなたには適性がない」と一度ならず指摘されたなら、直ちに別の業界に移ったほうがいい。実装だけでは稼げない時代であるし、なによりも「設計しているふり」とかしながら5年も過ごしてしまえば、職業人として成熟するための取り返しのつかない時間を失うことになる。

|

« データモデリングの上達には「事例研究」が不可欠 | トップページ | 人数ではなく技能を確保するためのシフト管理システム公開 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« データモデリングの上達には「事例研究」が不可欠 | トップページ | 人数ではなく技能を確保するためのシフト管理システム公開 »