>  > 215/70R15 98H TOYO TIRES トーヨー タイヤ PROXES CF2 SUV プロクセス CF2 SUV Laffite LW-04 ラフィット LW-04 サマータイヤホイール4本セット

215/70R15 98H TOYO TIRES トーヨー タイヤ PROXES CF2 SUV プロクセス CF2 SUV Laffite LW-04 ラフィット LW-04 サマータイヤホイール4本セット

215/70R15 SUV Laffite プロクセス 98H ラフィット CF2 トーヨー サマータイヤホイール4本セット TOYO タイヤ LW-04 SUV LW-04 Laffite PROXES TIRES CF2 LW-04

ソフトバンククリエイティブから刊行されたハッピィ・エンジニアリングが無料で読めるサイトです。
TOYO WINTER TRANPATH TX ウィンタートランパス 2018年製 スタッドレス スタッドレスタイヤ ● 195/60R16 ブリヂストン Adrenalin アドレナリン SW005 ホイールセット 4本 16インチ 16 X 7 +48 5穴 100書籍を読む第2章 呪われた運命からの脱却 > 2.4. 人手余って人材足らず
ツイート

215/70R15 98H TOYO TIRES トーヨー タイヤ PROXES CF2 SUV プロクセス CF2 SUV Laffite レイシーン LW-04 ラフィット LW-04 G2 サマータイヤホイール4本セット


正しい質問は、「ソフトウェアの開発とは何か?」ではなく、「プロとしてのソフトウェア開発はどうあるべきか?」である。この答えは明らかであると私は考える。プロとしてのソフトウェア開発は、「エンジニアリング」であるべきだ。現在、そうなっているか?なってはいない。そうなるべきか?もちろん、何がなんでも、そうあるべきだ。
『ソフトウェア開発プロフェッショナル』スティーブ・マコネル著, 松原友夫/山浦恒央訳, 日経BP, ISBN4-8222-8215-5

 

そもそもシステム開発プロジェクトの仕事は、たとえ製造に関わっていなくともすべてが「職人仕事」である。「製造工場」でも「芸術家」でも「学者」でも「発明家」でもない。

 

 つまり、セオリーや定められたルールに忠実に従って抽象的な要求を具体的なシステムとして作り上げていくことが仕事である。重要なのは適材適所に優秀な人材を配置することであり、安い人材を集めてコストカットすることではない。素晴らしい大工道具でも、下手な職人が使えばそれなりのものしか生まれないように、ツールによる生産性の向上は望めても、その人自身の能力が低ければ、結果として生産性も品質も高まらない。腕の悪い職人には、よい仕事をすることが不可能である。

 

 一般的に小さい規模のプロジェクトでは、少数精鋭の優秀な人材を集めてこそプロジェクトが成功すると語られることが多い。プロジェクトが小規模であれば優秀な人材を集めるのは大規模プロジェクトより容易だという判断があるように思われる。しかし、プロジェクトはコントロールされた状態でなければならない。たとえ小規模なプロジェクトであったとしても、まともなシステムは開発プロセスの重要性を抜きに語ることはできないだろう。

 

 一方で、大規模プロジェクトでは開発プロセスが重視され「ある程度の水準の技術者をうまく使い、それなりのシステムを開発する」という観点でプロジェクトマネジメントを語ることが多い。大規模なプロジェクトは、小規模のプロジェクトとは違い、作業の標準化による品質の均一化など、開発プロセスを重要視しなければならないのは自明だ。また、大規模プロジェクトにおいては、優秀な一人の人材の成果はごくわずかである。

 

 しかし、開発プロセスを重視するにしても、適材適所に優秀な人材の配置なくして品質の高いシステムの開発はできない。こうしたごく当然の考え方ができない現状はさらに深刻だ。現在の日本では「開発プロセスを理解している優秀な技術者」を発掘するのは、石油を掘り当てるより難しいと言わざるを得ない。

 

 正論を言えば、重要なのは開発プロセスを重視するか、技術者の能力を重視するかという視点ではない。どちらかに偏ることなく、これらをプロジェクトにマッチさせた方法論を作り、その上でプロジェクトを円滑に進めていくための方法論を展開させるべきである。しかし、日本のシステム開発は 【送料無料】 255/35R20 20インチ AMISTAD アミスタット バルディ 8.5J 8.50-20 NITTO ニットー NT555 G2(限定) サマータイヤ ホイール4本セット フジコーポレーション、ごく一部の例外を除いて、プロジェクト規模の大小によらず、中途半端な開発プロセスと、「ひと山いくら」の開発者でどうにか成立しているにすぎない。

 

 システム開発に関連する書物には、「同一のプロジェクトはひとつたりともない」といった「できない理由」が目立つ。ユーザ企業の担当者からSE評として「顧客に対したときに、ネガティブな発想から入ることが多い。こちらは『できない理由』ではなくて、『どうすればできるのか?』を専門家の意見として聞きたいのに」という話を聞いたことがある。これがどこまで一般論といえるかはわからない。しかし、開発現場で仕様の追加や変更、トラブル対応などをめぐって守勢に立った話し合いをする機会が多いためだろうか、「できない理由」を並べ立てるSEに閉口させられたことは一度や二度ではない。

 

 さて「同一のプロジェクトはひとつたりともない」とは言っても、ゼネコンは同じビルではなくても期日にビルを建てられるし、プラント建設も期日にサービスインできるはずだ。製造工程のみを考えれば、建築の「設計図」のような厳格な図面とシステムの「設計書」のあいまいさの違いは大きいかもしれないが、「同一のプロジェクトはひとつたりともない」は、逃げのひとつと感じられる。「同一のプロジェクトはひとつたりともない」のは当然である。同一ではない顧客の問題を解決に導いていくことこそが、システム開発における命題ではないだろうか?

 

 結局、現状の「ひと山いくら」の開発者を集めて、できない理由を並べざるを得ない状況を考えると、システム業界における大きな問題のひとつが「人手余って人材足らず」という言葉で語られるほどレベルが低いという結論にいき着く。

 

 では、なぜレベルが低いのか、どうすべきなのかについて考察を進めていこう。

 

ゼネコン構造

 

 元請けができる規模の会社に入社したら一生涯プロジェクトマネージャ、一次下請け規模の会社に就職したら一生SE、零細の開発会社に就職したら一生プログラマ、というように、現在の日本のシステム業界は企業規模により階層化が進んでいる。また、現状より小規模な会社に転職することは可能だが、大規模な会社に就職するのは非常に難しい。零細のソフトハウスから、大メーカーに転職するようなケースはほとんどないため、プログラマがSEに、SEがプロジェクトマネージャになれるのは非常に稀である。*1

 

 プログラマ~SE~プロジェクトリーダ~プロジェクトマネージャというキャリアパスが存在した時代は、現在よりも体系的な知識の必要性が少なかった。システムがこれほど多様化しておらず、上司は現在の自分の分野を一度は経験していたため、技術の継承を行うことでカバーできる範囲が広かったのである。

 

 しかし、プログラマはずっとプログラマ、設計者はずっと設計者、マネージャはずっとマネージャ、という分業が明確になっている現在では、体系的な知識や包括的な視点がないことによる問題が噴出している。特にプロジェクトマネージャやSEの場合、開発経験の欠落による総合的なスキルの不足は否めない。

 

 分業が進むことにより顕在化する具体的な問題は多数あるが、それは「コミュニケーションができない」という現象を生じさせている。そのひとつの表れとして、「上流から下流に渡すドキュメントの品質低下」が歴然としている。そもそもまともな設計書を書けないSEが珍しくない。そしてモラルの低下。プログラマは単なるやっつけ仕事が板についている。

 

 キャリアパスが明確だったころは、一人の開発メンバとして加わったプロジェクトがキャリアパスをシミュレーションする場として有効であった。今、先輩や上司がやっている仕事を、数年すれば自分もやるということがわかっていれば、段取りの付け方や見習うべき点、逆に改めるべき点などを無意識のうちに吸収できた。とはいえ、自分が実際その立場に立つと意外なほど先輩や上司と同じ失敗を繰り返すものだが、それにしても「俺がプロジェクトリーダだったら、こうするのに」といった感想を持って仕事ができたことは大きかった。

 

 しかし、階層化に伴う作業内容の固定化が進んだことにより、このようなキャリアパスが存在しないため、誰もが目指すべき方向性を見失っている。

 

 仮にプログラマならば現在の体制の中では、「生涯一プログラマ」ということになってしまうわけだが、プログラミングの基礎技術は1~2年で身につく。丸3年も現場で仕事をすれば、もう成長の余地は乏しい。後は、新しい言語の習得、開発環境のアップグレードへの追随、ミドルウェアの利用技術の向上、といったことを繰り返していくことになる。気がつくと、ルーチンワークを繰り返すだけである。しかもシステム全体像も見えないままに、断片化されたパーツを作成しているにすぎない。やがて、それが習い性になっていく。そのため、モチベーションの低下とプロジェクト全体に責任を持つという意識の低
下が起こっており、プロジェクトを推進するうえで非常に大きな弊害となっていると言えるだろう。

 

 企業規模で業務が分かれるということは、受発注の上下関係ですべてが決まることにほかならない。結果として ウェーバースポーツ フェアレディZ Z33 フロントバンパー FRP WEBER SPORTS、「やらせる人(プロジェクトマネージャ、リーダ)」と「やらされる人(SE、プログラマ)」という構図ができあがる。

 

 作業環境を改善しなければ仕事が進まない場合や、作業の進め方がそもそも間違っている場合などでも、受発注の上下関係を肌で感じている「やらされる人」たちは、面従腹背を常とする。なぜなら、常に結果責任のみを問われている下位者のよくある心理は、以下のように働くからである。*2

 

  1. まず技術論を戦わそうにも、まともな議論にならない
  2. 怒らせるだけ無駄だから言わない(→面従)
  3. 言われたとおりやって失敗しても、どうせ責任を押しつけられて怒られる
  4. だから俺が考えたとおりにやる(→腹背)
  5. そのほうがうまくいく(←単なる思い込み)
  6. どうせ中身のチェックをされるわけではない
  7. 動きさえすれば文句は言われない

 

 実装レベルの技術となると「やらされる」側のほうが一枚も二枚も上手である。「やらせる」側の人間が、日々モノ作りをしている者に勝てるわけがない。だからこそ、純粋な技術論は成り立ちにくい。根本的な問題はその点にある。

 

 さらに、プロジェクトマネージャが単なる手配師に成り下がっていて、適切なリスク管理をしていないし、やらされる人たちにはプロジェクト全体に責任を持つという意識が希薄なために当事者意識を持っておらず、さまざまな問題の先送りが発生し、最後の最後に大混乱を巻き起こすのである。

 

 受発注の上位・下位ですべてが決まることの弊害はほかにもある。そのひとつには、そもそもの契約内容があいまいな場合や、大規模なプロジェクトに業務委託という形で技術者を派遣したときは、その責任の境界が不明確になるということが挙げられる。

 

 納品物は「一式」、作業内容は「支援」などとなっていた場合、誰もがそれぞれの立場で都合よく解釈する以上、想定した作業範囲を超えてしまうことは必然でもある。

 

 業務委託作業は、プロジェクトに必要な作業のすべてに関わらなければならない場合が多い。プログラマが基本設計書を書いたり、開発環境の維持を行ったり、ライブラリ管理者を兼任したり、本番環境の構築作業に狩り出されたりすることは往々にして発生する問題である。技術者のスキルに合わない仕事を義務だとして押しつけられ、責任を持たされるとすれば、下請けとしては非常に困った話である。

 

 開発作業を一括受注し、主な作業範囲は詳細設計から結合テストまで、支援の形でシステムテストの実施、およびそれぞれの工程のドキュメント、という具合に契約書上にできる限り具体的な作業範囲とその責任を記載する。これで、ある程度は責任の境界を明確にすることができるが、契約は口約束による先行着手の形で始まることが多い。下請けの開発会社は問題視せざるを得ないが、改善に向かう傾向はないに等しい。

 

 分業が進むことにより、それぞれが置かれている立場の違いがお互いに見えなくなっている現状は、プロジェクトの円滑な推進を阻害している。

 

 プロジェクトマネージャはプロジェクトメンバそれぞれの立場・権限・責任を明確にし、対立する利害関係を超え、プロジェクトのゴールを共有しなければならない。

 

 それぞれがどのような立場で仕事をしているか(しなければならないか)については、「第3章 プロジェクトの登場人物」で詳細を記述する。

 

経験則偏重主義

 

 武道・スポーツ・システム開発は、精神論が語られるものの代名詞である。

 

 精神論とは、日々の苦しい稽古を乗り越えるためのものだ。なぜアスリートが厳しい稽古をするかといえば、強くなるのみならず、怪我や事故によるを食い止めるために欠かすことができないからだ。医療の世界も、医学部や看護学校で学んだ後に国家試験に合格し、医局での奴隷労働により現場を十分に学んだうえで、臨床や手術に臨む。

 

 しかし、ソフトウェア開発の現場には、そのような「教育と訓練」という意識はない。プログラムが少々書ける程度の新人では明らかにシステム開発を行ううえでの戦力にはならないが、OJTの名のもとに現場に投入する。新人は、

、プロジェクト内の雑用レベルの仕事を残業時間と腕力でなんとかこなしていくにすぎない。

 

 OJTそのものを全面的に否定する気はない。開発現場で学ぶことが少なくないのは事実である。しかし、「現在OJTと呼ばれているもの」はあまり好ましいものではない。

 

 余談になるが、「徒弟奉公」について振り返ってみよう。

 

 もともと日本の職人育成制度である徒弟奉公には大きな特徴があった。奉公期間中は極端に低い待遇である。小遣い銭がもらえる程度で給料などないに等しい。それも当然で、奉公というのは以下のようなものであった。

 

  1. 小僧の仕事などまったく期待していない
    (使いものになるのは奉公の終わりごろで、まともに稼げるようになれば奉公は終わり)
  2. 誰も教えてくれるわけでないし、当然教育体系などあるわけではない
  3. 雑用をやる代わりに、親方や先輩の職人の技を目で見て盗むことが許された

 

 こうしたやり方は、昔ながらの職人仕事に対しては、実は非常に効果的な教育法であった。

 

 手作業を中心とする職人の領域では、仕事の内容は基本的に同じことの繰り返しであるため比較的容易に入っていけるが、金を取れるレベルになるまでには理論化されている領域が小さく、ノウハウに負うところが大である。例えば、今でも料理学校だけでは名料理人にはなれない。料理学校は1~2年基礎を学ぶには適していても、厨房で修業しなければ世間で通用するレベルには達しない。理論化や体系化が難しい「職人仕事」には、ノウハウを身につけるための徒弟奉公は意外と効果的なのである。

 

 Off JTとOJTを組み合わせて、きちんとした教育体系をもって教えるのならば別だが、単に現場に放り込んで仕事を覚えさせるというやり方は、本質的に徒弟奉公と変わるところはない。ただし、これは現在のシステム開発を学ぶのに適した教育法では決してない。システム開発はノウハウよりも理論体系を学ぶ必要があるからだ。エンジニアリングの勉強ができていないと、しょせんは一介のプログラム書き以上のものにはなり得ない。特にアプリケーション・エンジニアはバグを出さずシステムを安定運用させる守りの仕事であり、まぐれ当たりのホームランはあり得ない仕事である。細かいエラーを防ぐために、薄くても広い知識が要求される。経験の積み重ねで学ぶのは不適当なのだ。

 

 理論の把握、基礎技術の習得、現場での実践・経験という「理論~技術~経験」の一連のステップを踏まなければ、OJTは「手順の模倣」以上のものにはなり得ない。

 

 新人教育は精神論に陥っている。まだ丁稚レベルの人間に「努力しろ」「やり抜け」「考えろ」という精神論は、ほかの世界の精神論とは明らかに異質であり、何の結果も生まないのである。正確な技術力、さらにその背景にある理論の裏付けがないと、多少条件が変わると手も足も出なくなってしまう。応用範囲が狭くなるためだ。

 

 初期教育の不備のツケはしばらくすると表れてくる。読売新聞のWebサイトに掲載された2005年6月18日付の記事注13によれば、2004年度には、全国でうつ病など精神障害による労災請求が全国で524件あった。実際に労災認定を受けたものの内訳は、急性ストレス障害と心的外傷後ストレス障害(PTSD)が計71件、うつ病が59件であった。システムエンジニアや専門技術者など「専門技術職」が43件で、全体の33%という高い数値となっている。

 

 上述したような、不条理な精神論がそのストレスの根源となっていることは容易に想像できる。端的に言えば、能力を超えたものを要求され、実現できないことにより、精神的に追いつめられていくのだ。精神論でシステム開発が成り立つのであれば、とっくの昔にシステム業界は成熟しているはずだ。

 

 システム開発というのは、当事者にとって残酷な側面がある。理論・知識・技術をわきまえたスキルレベルの高い技術者ならあっさり実装できるようなことでも、十分な理論や技術を持たない技術者にかかると、自分の経験的知識の範囲内で組み立てようとするので、必要以上に複雑なシステムになっていく。結果的に、作るのが大変で不安定なシステムの構築を行うことになるが、そこを精神論で連夜の徹夜や休日返上で臨むから精神的なストレスはたまる一方である。

 

 またシステム開発の業界は、中途半端な現場経験が悪影響を及ぼしている。例えば、15年間、システム開発をしてきた技術者が関わったプロジェクトはどの程度のものであろうか? 仮に年に2つのプロジェクトを経験したとして、たったの30のプロジェクトにすぎない。数を倍にしたところで、せいぜい60である。経験値が有効になるような数のプロジェクトを経験することは、常識で考えて不可能といえるだろう。

 

 では、そもそも経験値が有効といえるだけのプロジェクトを経験していないにもかかわらず、体系的な知識を軽視し経験則を重視するのはなぜだろうか?

 

 そもそもシステム開発の現場では教育が軽視されているため、「知ること」と「経験で学ぶこと」を区別している人がほとんどいない。皆が経験則でどうにかしてきたという歴史的経緯がある。結果として知識が偏り、前提が少し変わると対応できない。そして「同一のプロジェクトはひとつたりともない」といった「できない理由」につながっていく。結局のところ、経験則と先入観により適切な業務を行うことすらできないということだ。残念ながら、学習していない者に知識の重要性を理解することはできないだろう。

 

 そのうえ、日本のシステム開発では、一般的と呼べるレベルの教育体系が存在しないのが致命的となっている。何を、どのような順番で学んでいけばよいのかは、誰もわからない。また、独学には「興味のないことを、わざわざ学ぶ必要はない」という偏りが生まれる。

 

 日本のシステム開発の世界で一般的となった体系的知識は、大昔にIBMが作り上げたウォーターフォールモデルという開発方法論と、そこで規定される工程区分である。しかし、ウォーターフォールモデルですら、大手のSIベンダの開発標準らしきものの中に取り入れられているにすぎず、その概念をシステム開発に関わる者すべてが理解しているとはとうてい思えない。

 

 さて、なぜIBMが大昔に規定した工程区分がいまだに幅を利かせているのだろうか?

 

 かつてはIBMの影響力は強大で、システム環境をIBMのメインフレームがほぼ独占するような状況が長く続いた。そのため、アプリケーションの開発でも影響力が非常に大きく 、IBMの開発方法論がすべてであった時代が長かったのである。

 

 最近は、構造化分析(SA)・構造化設計(SD)などに代表されるように、流行する方法論の寿命が短く、世代間で共通認識が取りにくい。そのうえ、ウォーターフォールモデル以降の開発方法論は、基本的に過去の開発方法論の問題点への反省から発生しており、技術的な観点でのみ語られている。設計や製造に関しては十分すぎるほど丁寧に解説されているものの、マネジメント要素についてはほとんど言及されていないに等しい状態である。プロジェクトマネジメントの重要性が非常に高い大規模開発では、マネジメント要素について十分に言及されていない開発方法論の適用は非常に難しいのである。内容の是非はともかく、IBM全盛で、ほかに選択肢がなかったからこそスタンダードとなったウォーターフォールモデルを超える共通認識が存在しないと、教育上のよりどころが見いだせない。

 

 そうなると、SEの一番の情報源は隣の席に座っているSEとなる。もはや、ここで経験則にいかざるを得ない状況が見られる。しかし、情報の交換可能性には限界があり RSR ダウンサス スプリング Ti2000HALFDOWN フロント リア全後セット ヴォクシー ZRR70W 19/7~22/3 T665THD、そのSEの経験からくる情報が100%伝わるわけではない。教育によって伝えられるのは70%が限度とされている。二世代を経ると70%×70%=49%で約半分。四世代を経ると、1/4以下の内容しか伝達できない。もともとの情報が中途半端な経験則からきた情報であるうえに、カセットテープのダビングを繰り返していくように、さらに劣化したコピーが作られるにすぎない。素人に毛の生えた連中が、数年過ごすと先輩として君臨し、それを素人が横目で見ながら見よう見まねで仕事をしているような状況からは早く脱するべきだろう。

 

 隣のSEから得た情報を基に、そのジャンルに関する体系的な知識の習得をすることが大切である。何よりも自らが自発的に学ぶ姿勢が問われることは言うまでもない。

 

普及しない知識体系

 

 前述したように、システム開発に必要なのは中途半端な経験ではなく、体系的な知識である。正しい知識を持ち、それが業務による実践を経て消化され、本来の能力として定着する。システムを開発する企業にとって競争力を持つために一番必要なことは、人材育成である。人材教育に投資できない経営者は、会社ごっこをしているにすぎない。

 

 さらに言えば、一般的な教育体系が存在しない以上、各企業は必要に応じた教育体系を作るところからがスタートである。専門家としての教育をしていないから「ひと山いくら」の技術者しか生まれない。そこを乗り越えるためには、企業は顧客ニーズを把握したうえで適切な教育体系を構築する以外に道はない。

 

 システム開発に関わる者すべては、適切な方法論・技術・手法を用いて、業務モデルをシステムという枠組みの中に収めていかなければならない。「同一のプロジェクトは、ひとつたりともない」という言葉の意味するさまざまな変化に対応しながらシステムを構築するには、対応できるだけの体系的な知識を持ち、的確にそれを適用していくことが重要なのである。

 


すべてのソフトウェア構築には、本質的作業として抽象的なソフトウェアの実態を構成する複雑な概念構造体を作り上げること、および、偶有的作業((フレデリックによると、偶有的とは、偶然発生したとか災難などの意味ではなく、副次的とか付随を意味する言葉であると定義している。))としてそうした抽象的実在をプログラミング言語で表現し、それをメモリスペースとスピードの制約内で機械言語に写実することが含まれる。
『人月の神話 新装版 狼人間を撃つ銀の弾はない』フレデリック・P・ブルックス Jr.著, 滝沢徹/富沢昇/牧野祐子訳, ピアソンエデュケーション, ISBN4-89471-665-8

 

 フレデリックの言葉は、陳腐化のスピードが比較的遅い、あるいは普遍的なものが「本質的」なことであり、陳腐化のスピードが速いものが「偶有的」なものであると言い換えることができる。

 

 本節で体系的知識といっているのは、まさにフレデリックの言う「本質的なこと」を意味する。すなわち、ソフトウェア技術者が持つべき核心となる知識である。さまざまな知識体系はまだまだ日本国内では一般的と呼べるほど普及しているとは言えないが、この10年ほどの間に世間には優れた知識体系が豊富に出てきている。

 

 これらの知識体系は説得力を持って語られることが多いが、システム開発業界全体から見た場合、決して普及しているとは言えない。特に開発方法論について聞きかじって話をする人はたくさんいるが、原著なり詳細な解説書なりを読んだうえで、その思想、メリット、デメリット、適用可能なプロジェクトのスタイルなどの要素に対して理解している人はまずいない。普及しない理由はどこにあるのだろうか?

 

 第一に、本章の論点である、システム業界に身を置く人間が勉強していない、勉強する習慣がないということが挙げられる。システム開発の基礎、あるいは本質といったことへの関心は非常に低く、最新の技術動向のフォローやプログラミング言語・統合環境などを利用するうえでのテクニックなど、雑誌レベルの情報収集をしているにとどまっている。そのため、開発方法論に無知な者があふれている大海の中に、ポツリポツリと孤立した無人島の唯一の住人として、勉強家が独学の限界の中で知識だけを蓄え暮らしているという構図ができ上がる。独学者は、インターネットの普及でたまたま同好の士と同じ島で暮らすことも可能になってきたが、現実の開発の中では自分の担当部分ぐらいしか己の知見を生かせず悶々としている。開発方法論に関心を抱く者は孤独である。

 

 「システム業界が利用する技術は変化のスピードが速い世界であり、それらを迅速にキャッチアップするのは難しい。業務の中で覚えていくのが一番の近道だ」という考え方がある。開発工程自体には大きな変化はないが、技術変化のスピードとエンジニアリングの考え方を一緒にとらえているのかもしれない。本節の冒頭でも述べたように、システム開発を取り巻く諸要素の陳腐化スピードの間には大きな差がある。表層的な技術の変化とプロジェクトマネジメントの「本質的」な部分を混同するのは、粗雑な議論である。

 

 そもそも業務システム開発で用いられる開発工程のモデルは、いまだにたいていの場合、ウォーターフォールモデルか、その亜流であるV字モデルである。DOA(Data Oriented Approach)、RAD(Rapid Application Development)、RUP(Rational Unified Process)、XP(eXtreme Programming)といった開発方法論があるが、業務システム分野においては、それらを適用したプロジェクトはほとんどない。正確に言うと、一部の先進的あるいは挑戦的な試みの中にあるにすぎず 【店舗塗装サービス】【200 ハイエース ワイド セカンドハウス】ハイエース 200系 ワイドボディ リアガーニッシュT-1 ステッカーボム(カラー)、ごく平凡な開発現場で適用されることはない。開発方法論を教え込むことだけでも大変な作業であるからだ。つまり、業務システム開発における開発工程はもう30年以上も変化していないのである。*3

 

 第二に、前述したとおり、システム開発に関わる技術者やマネージャが経験則で生きてきたという事実が挙げられる。

 

 そもそも、教育でカバーすべき体系的なものと現場でスキルを高めることが、きちんと分類されるような文化を持ち合わせていないのである。経験則だけで長い間生きてきたために、仕事のスタイルを変えることへの抵抗感の強さは並ではない(「今までの自分なりのやり方でないと工数もかかるし品質も落ちる」という定番の言い訳はあるにはあるが、しょせんは言い訳にすぎない)。変化に対応していくことができなくなっているのである。

 

 第三に、システム基盤の大幅な変化により設計思想が変化していくが、その段階で技術の継承が行われなくなり、結果として開発工程への意識がおろそかになったという観点がある。

 

 ダウンサイジングの波が押し寄せ、メインフレームやミニコンの全盛時からUNIXワークステーションを利用する環境に大幅にシフトした時代、その技術革新には大きなインパクトがあった。ただし、それはシステム基盤が変化しただけのことで、ソフトウェア工学の観点から見たら微々たる影響であったはずだ。

 

 しかし、その技術革新は大きく取り上げられ、新参のUNIX系の技術者がもてはやされることとなった。技術のみにフォーカスした結果として、メインフレーマが持っていた大規模開発のマネジメントや開発工程、ドキュメンテーションなどの考え方が継承されずに軽視されてしまったといえよう。

 

 第四に、開発方法論とマネジメントスタイルがリンクしないという問題がある。

 

 ウォーターフォールモデル以降に出てきた開発方法論のほとんどは技術者からのボトムアップの方法論である。開発方法論全般がそうであるため、意識されることは少ないが、いわゆる開発局面へ偏ったものになっている。

 

 そのため管理面への配慮が不足がちな傾向がある。方法論自体は理解できても、その方法論を適用してプロジェクトを進めた場合に、プロジェクトマネージャがどのようにマネジメントしていくかということを想像できないのである。結局、たとえ優れた開発方法論であっても、実際のプロジェクトでの採用は見合わされることになってしまう。

 

運命からの脱却

 

人材育成

人材教育のスタートは、システム開発の全体像を学習することである。要件定義からシステムテストまでのエンジニアリングプロセスと、計画・実施・終結といったマネジメントプロセスの両者がどのように成立しているかを理解する必要がある。

 

 特に重要なことは、

 

  • プロジェクト全体でどのような人が参加しているのか?
  • その責任と役割は何か?
  • その作業が「何のために」行われているのか?

 

などの、OJTで遭遇するであろう、さまざまな作業の前提となる事柄である。

 

 プロジェクトの経験が少なければ、全容は漠然として理解には至らないが、OJTという体験をもって、疑問や理解につなげていくことができる。

 

 しかし、経験の少ない技術者が、OJTの中でシステム開発の全容を理解するためには、まず自社が標準化された作業プロセスを確立している必要がある。さらに、標準化された作業プロセスが、一般的なソフトウェアエンジニアリングの考え方と、どのようなつながりを持っているかが明確になっていなければならない。

 

 標準化されたプロセスが存在せず、行き当たりばったりでプロジェクトを進めていた場合、システム開発の全容を漠然と理解したにすぎない状況の中では、OJTを実施したとしても、自分が行っている作業がシステム開発の全体のどこに位置しているものかを理解することが難しくなってしまう。

 

 人材育成の最初の段階では、標準化された作業プロセスを理解し、標準化の範囲内の作業であれば、きちんとした成果物を作成できるレベルになることを目標とすればよいだろう。

 

 標準化の順守は、システム開発の基本中の基本だが、安直に続けていると単純作業の繰り返しになってくる。システムの特徴や特性、方式の変化などにより開発作業が標準化から乖離したとき、その変化に適応できることが必要だ。つまり、この段階ではエンジニアリングプロセスやマネジメントプロセスの体系的理解を必要とする。ところが、「教育体系が確立されていない」と書いたように、すでに存在する体系を実務に結びつけ、どのように教育していくか OKD プラズマダイレクト SD326011R メルセデス・ベンツ R350 W251 272(DOHC V6) シングルプラグ車 3500cc、という方法論がない。さらに、実務に追われて十分な研修を行う時間がない、システム開発で十分な利益を生み出せず教育にコストをかけることができないなど、教育のハードルは非常に高いものになっている。

 

 企業が技術者に自己学習を望むのであれば、少々の費用負担と報奨金の支給などによって資格取得を強制することであろう。システムアナリスト・システム監査技術者・PMPなどの体系的な学習が必要な資格取得を強制することで、ある程度体系的な知識を身につけることができる。

 

知識体系

 システム開発における標準的な知識体系としては以下が挙げられる。これらは、ユーザ企業のシステム担当者から下請けの開発会社のプログラマに至るまで、システム開発に関わる人すべてが学習する価値のある知識体系である。

 

  • SWEBOK( Guide to the SoftWare Engineering Body Of Know ledge、ソフトウェアエンジニアリング基礎知識体系)
  • PMBOK(Project Management Body Of Knowledge、プロジェクトマネジメント知識体系)
  • CMMI(Capability Maturity Model Integration、能力成熟度モデル統合)
  • ITIL(Information Technology Infrastructure Library、ITインフラストラクチャライブラリ)

 

● SWEBOK

 SWEBOKは、1993年にIEEE Computer SocietyとAssociation for Computing Machinery(ACM)が設立したSoftWare Engineering Coordinate Committee(SWECC)が作成した知識体系のガイドである。SWEBOKそのものが知識体系なのではなく、知識本体のどの部分が一般的に受け入れられているのか、またそうした部分を系統立ててトピックとしてアクセスできるようになっている。

 

 ソフトウェアエンジニアリングの知識本体について、SWEBOKでは以下に示す5つの目標が掲げられた。

 

  1. 世界に向けてソフトウェアエンジニアリングの系統的な視点を推進すること
  2. コンピュータサイエンス、プロジェクトマネジメント、コンピュータエンジニアリング、そして数学のような学問分野との対比でソフトウェアエンジニアリングの位置づけを明確にし、境界を確立すること
  3. ソフトウェアエンジニアリング分野の内容特性を明確にすること
  4. ソフトウェアエンジニアリングの知識本体へトピックでアクセスできるようにすること+ カリキュラム開発および個人に対する資格証明と認証教材の基盤を提供すること

 

 SWEBOKは知識領域として以下を定義している。

 

  • ソフトウェア要求
  • ソフトウェア設計
  • ソフトウェア構築
  • ソフトウェアテスティング
  • ソフトウェア保守
  • ソフトウェア構成管理
  • ソフトウェアエンジニアリングマネジメント
  • ソフトウェアエンジニアリングプロセス
  • ソフトウェアエンジニアリングのためのツール、および手法
  • ソフトウェア品質

 

● PMBOK

 PMBOKはPMI(Project Management Institute,INC.:プロジェクトマネジメント協会)が策定したプロジェクトマネジメントのプロセスと知識体系である。ほとんどのプロジェクトに適用でき、価値と有用性が幅広く同意されていることをまとめたものである。

 

 PMBOKは、知識領域として以下を定義している。

 

  • プロジェクト統合マネジメント
  • プロジェクトスコープマネジメント
  • プロジェクトタイムマネジメント
  • プロジェクトコストマネジメント
  • プロジェクト品質マネジメント
  • プロジェクト人的資源マネジメント
  • プロジェクトコミュニケーションマネジメント
  • プロジェクトリスクマネジメント
  • プロジェクト調達マネジメント

 

● CMMI

 CMMIは米国国防総省の要請のもとでカーネギー・メロン大学ソフトウェアエンジニアリング研究所(CMU/SEI: Carnegie Mellon University,Software Engineering Institute)により開発された、企業全体にわたってプロセス改善を支援するための統合された枠組みである。CMMIの段階表現では、以下に示す成熟度レベルが規定されている。

 

  • 成熟度レベル1:初期
  • 成熟度レベル2:管理された
  • 成熟度レベル3:定義された
  • 成熟度レベル4:定量的に管理された
  • 成熟度レベル5: 最適化している

 

 日本国内のシステム開発プロジェクトのほとんどはレベル1の状態である。つまり、場当たりで無秩序、そのすべてが技術者の力量に依存し、プロジェクトの成果を腕力でどうにかしているという状態である。

 

 レベル2は、要件が管理され、プロセスが計画され、実施され、制御されることが可能な状態である。開発プロジェクトの具体的な目標として、まずはレベル2相当が達成できることを目標にすべきであろう。

 

 CMMIはプロセス改善活動という、多くの時間とコストを必要とする改善活動である。本来は手段であるべきプロセス改善活動が、手段から目的へと変わってしまうような危険もある。また、組織はレベルを下げることを極端に嫌う傾向があるため、その組織自体が挑戦的なプロジェクトに手を出すことができなくなるという弊害もある。

 

● ITIL
 ITILは英国商務省(OGC:Office of Government Commerce)が所有し、英国出版局(TSO:The Stationary Office)が出版している。品質の高いITサービスの計画・開発・提供・維持に必要なプロセスを、サービスレベル合意書における定義と合致するように構築していくアプローチに関するベストプラクティスを集めたフレームワークである。その範囲は、システムの取得プロセス全体、つまり、企画・予算化・計画・調達・開発・運用・評価のすべてにわたり、以下の7冊に分冊されている。

 

  1. Service Support:サービスサポート(通称:青本)
  2. Service Delivery:サービスデリバリ(通称:赤本)
  3. Security Management:セキュリティ管理
  4. The Business Perspective:事業の展望
  5. ICT Infrastructure Management: ICT(Information & Communication Technology)インフラストラクチャ管理
  6. Applications Management:アプリケーション管理
  7. Planning to Implement Service Management:サービス管理の導入計画立案(通称:緑本)

 

 ITILの中核をなす概念がサービスサポートとサービスデリバリである。サービスサポートは、日常的な運用とユーザへのサポートが記されたもので、サービスデスク・インシデント管理・問題管理・構成管理・変更管理・リリース管理などが含まれる。サービスデリバリは、システム運用管理に関する計画と改善について記されたもので、サービスレベル管理・ITサービス財務管理・キャパシティ管理・ITサービス継続性管理・可用性管理などが含まれる。

 

● ITSS

 日本国内において、スタンダードの位置に近づきつつあるのが、独立行政法人情報処理推進機構(IPA)が開発した「ITスキル標準(通称、ITSS)」である。

 

 ITスキル標準(以下、単に「スキル標準」という)は、各種IT関連サービスの提供に必要とされる能力を明確化・体系化した指標であり、産学におけるITサービス・プロフェッショナルの教育・訓練などに有用な「ものさし」(共通枠組み)を提供しようとするものだ( 【送料無料】 195/55R16 16インチ OZ SツーリズモWRC 7J 7.00-16 DUNLOP ダンロップ ルマン V(ファイブ) サマータイヤ ホイール4本セット 輸入車 フジコーポレーションhttp://www.ipa.go.jp/jinzai/itss/itss1.html)。

 

 ITSSには欧米の教育体系を焼き直したにすぎないものが多く(またそこから日本の実情に合わせているとは考えにくいため)、筆者は否定的な見方をしている。

 

 日本ではほとんど知られていないが、欧米諸国でも同様のスキル標準が存在する。

 

  • 米国のITスキル標準:National Workforce Center for Emerging Technologies(NWCET)

    http://www.nwcet.org/
  • 英国を中心とした欧州のスキル標準:The Skills Framework for the Information Age(SFIA)

    http://www.sfia.org.uk/

 

 本章では知識体系について簡単に述べたにすぎないが、その必要性については、以後の各章で理解できるだろう。

 

コラム:テコ入れの難しさ

 

 あるSIベンダには、経営トップ直結の部長として、社内の火を吹いたプロジェクトのテコ入れのみを担当している管理職がいる。それなりの権限を持ったうえでプロジェクトの問題点を整理し、利用可能な品質のシステムの運用を開始するまでの時間をいかに短縮するかが、その使命である。十分な権限を持ったうえで火消しに入るのは、一見して有効な対策に見える。しかし、実際にプロジェクトを正常化するのは容易なことではない。

 

 システム技術者は、問題点の調査や追究を猛烈に嫌う。個人の成績評価がもともとあいまいなため、問題点の調査や追究をされることが個人の責任を追究されることにつながりかねないからである。当然、火のついたプロジェクトの中を社長直結の部長に見られるのは、事業部としての立場が危うい。そのため毎回のように、事業部長以下プロジェクトの参加メンバが敵に回ってしまうという、本末転倒な事態が発生しているのである。プロジェクトの内情をヒアリングしても、まともな情報が出てこない。あやふやな返事が繰り返される。

 

 しかし、部長は自分自身がプロジェクトの最終責任を取るためにプロジェクトに参加していること、プロジェクトを終結させることが目的であって、処罰を行うことが目的ではないこと、プロジェクトを誰かの責任問題にはしないことなどをアピールしながら少しずつ情報を引き出し、必要なリソースの投入などを行ってきた。

 

 長い努力の末に、崩壊しかかっているプロジェクトのメンバにも、その真意が理解され、徐々にその活動が軌道に乗り、火消しプロジェクトを回復させるまでの時間は短縮されるようになってきた。組織がどのような姿勢で問題の解決にあたるか、というのが重要であることを表した事例だと思う。しかし、本質的な解決が、プロジェクトに火がつかないことであるのはいうまでもない。

 

 

 


*1 最近は、丸投げでITガバナンスが崩壊していることに気づき始めたユーザ企業の一部では、EA(Enterprise Architecture:業務システム最適化)やITガバナンスなどをキーワードにシステム系の人間を採用する動きがある。しかし、もっとも重要なのは丸投げのカルチャーを変えることであって、システム系の人間を発注側として雇用することではない。単にシステム系の人間が開発側から発注側に回っただけで、そこに依然として丸投げ文化が存在しているとしたら、システム系の人間はユーザ企業にとって何の役に立つというのだろうか?

*2 したがって、現在の日本では、結果責任としてとりあえず動くシステムが開発できるものの、優れた設計者のきちんとした仕様書ですら、そのままの仕様でプログラミングされることはほとんどない。
*3 1975年に初版が発売された『人月の神話』(フレデリック・P・ブルックスJr.著、ピアソン・エデュケーション、ISBN4-89471-665-8)は、古典としてではなく、今でも説得力のある文献として読まれているくらいである

シェアしてくれると嬉しいです!
ツイート

2.4. 人手余って人材足らず ハッピィ・エンジニアリング関連ページ

2.1. 丸投げ文化
ソフトバンククリエイティブから刊行されたハッピィ・エンジニアリングが無料で読めるサイトです。
2.2. 価格破壊+やらされ仕事=低い満足度
ソフトバンククリエイティブから刊行されたハッピィ・エンジニアリングが無料で読めるサイトです。
2.3. 中間搾取でボロもうけ
ソフトバンククリエイティブから刊行されたハッピィ・エンジニアリングが無料で読めるサイトです。
2.5. 根性、根性、

215/70R15 98H TOYO TIRES トーヨー タイヤ PROXES CF2 SUV プロクセス CF2 SUV Laffite LW-04 ラフィット LW-04 サマータイヤホイール4本セット

、ド根性
ソフトバンククリエイティブから刊行されたハッピィ・エンジニアリングが無料で読めるサイトです。

{yahoojp} {happyengineering.org}
{yahoojp}jpprem01-zenjp40-wl-zd-66005