4M1E (Man, Machine, Material, Method, Environment) をキッカケに色々と

http://techon.nikkeibp.co.jp/article/TOPCOL/20060421/116459/
↑ココで知った言葉。4M1Eという奴。
人、マシン、材料、使い方、環境、ってとこかな。製造業なんかで不具合があった時に考えるポイントをまとめた言葉のようで、機械やら道具を作る製造業に限らず通用する言葉だね。
インターネット屋さん用に言えば、Materialはソフトウェアって事になるのかな。実にぴったりだ。

  • Man:オペミスなど
  • Machine: ハードウェアの故障など
  • Material(Software): ソフトウェアのバグなど
  • Method:使い方の問題
  • Environment: 高温多湿とか(笑)、動作環境全般

(笑)とかつけちゃったけど、部屋の温度が高すぎて正常に動作しない事は本当にある。42Uラックに1Uサーバ42台のせちゃったりする人だっていないわけじゃない(俺は絶対やんないけど)。と、そんな事だけではなくて、環境ってのは場合によってはOSのことを言うだろうし、また別な場合では利用者のソーシャルな環境を言うかもしれない。
この4M1Eの話で製造業の持つノウハウって奴に興味がわいた俺。製造業にはほとんど完璧と言えるような製造を行うための素晴らしいノウハウがあって、洗練された管理がそこに存在するという想像をした。少なくともソフトウェア業界よりもステキな何かがあるはず。
ロクな設計も工程管理も動作テストもサポートもなく、使うほうもロクにマニュアルを読まず、ロクな使い方をせず、ヒドイ環境で動かすような事が横行するソフトウェア業界(言いすぎです)がマトモになるにはどうしたら良いんだろう?ていうか何が悪いの?

  • 設計が出来ない素人が設計をやることがある
  • 仕様も把握できてないのにコーディングを始めることがある
  • イレギュラーケースを想定したテストを十分やらないことがある(テスト項目を考えられない素人が多い)
  • 意味もよく考えずコピペで済ますような素人コーダーが開発をやっていることがある
  • 工程管理がきちんとしていない以前に、開発している本人もいつ完成するやらよくわからない
  • マニュアルを書くのが下っ端の仕事になっていて、分厚いだけのマニュアルしか出来上がらない
  • 動作環境をきちんと考えられない素人が開発を仕切っていることがある(何故かとなりのパソコンでは動きません、とか)

ここで俺が考えた「何が悪いの?」という件、あくまで俺が考えた範囲だけど、原因はやはり「人」にあるように思う。開発環境が開発者フレンドリになりすぎたのか、大事な事を語らない初心者本が増えすぎたのか、理由はわからないけど、素人が多いように思う。素人である事そのものは否定はしないが、素人が素人のわかる範囲だけでやられる仕事が多い。これでは穴が出ても不思議じゃない。
さて、製造業ではどうなっているんだろう?と想像。

  • 設計は熟練した玄人が行い、経験やノウハウを持った複数人が互いに確認する体制がある
  • 仕様は必ず紙に起こし、顧客の要求仕様に照らし合わせて仕様の決定を行う体制がある
  • テスト仕様や手法が整備されており、テスト実績が十分管理されている
  • 開発の品質を管理する手法が整備されており、品質を保てない製法は行われない
  • 製造に関わる全ての工程が管理されており、納期やコストに対する不確定要素は可能な限り排除されている
  • 体系的に整備されたマニュアルが存在し、過不足なく必要な情報がきちんとドキュメント化されている
  • 製品が使用される環境がよく考えられており、確固とした動作保証環境が存在する

ほんとに完璧にできてんの?という疑問もわくけど、カイゼンカイゼン言ってるとこは、もっとすごい事やってると思うよ。それこそ想像を絶するほどのカイゼン
要求仕様があって、製品仕様があって、開発仕様があって、運用仕様があって、いろんな管理があって、っていうのがきっとあるべき物づくり。ソフトウェア開発でもインターネットサービスでも、どこかに管理が欠けてるとこがあるんだと思うね。
ソフトウェア業界にそういうのが欠けてる理由はたぶん

  • 動作環境が発展途上(ハードウェアもOSもネットワークも新しくなり続ける)
  • 基礎となるべき情報や技術や環境が変わる(long型のサイズが変わるなんて思わなかったし、ICMPプロトコルがブロックされるなんて思わなかったし、100Mbpsの回線がご家庭に届くなんて思わなかった)
  • セキュリティ上の脆弱性を利用した攻撃者のスキルが異様に上がっていたり(このことで開発側は変化を強いられていると言える)

こういう変化があるからなんじゃないかね。その変化についていけなかったり、そもそも範囲が広すぎたり、「ソフトウェア」とか「インターネット」とか、広すぎる要素を俯瞰して全てを把握できるなんてそれこそ神様の業なのかもしれない。神様になれないなら、それらを管理するための体系的な何かを編み出すしかない。その「何か」ってのが経験だったりノウハウだったりセンスだったり、明確な情報として残しにくい物なんだね。たぶん。
で、その「何か」ってのが製造業界はソフトウェア業界よりも進んでいるんでしょう。

さんざん素人素人と放言を吐いた俺も見る人から見ればまだまだ素人、っていう言い逃れはみっとないかもしれないけれど。
すみません、俺も素人です。