Contents
エンジニアの思考法【システムファースト】
ITエンジニアとして働いていると、様々な価値観をもったエンジニアに出会います。
- 仕事とプライベートをきっちり分けたいエンジニア
- 自宅でもストイックにプログラミング学習を続けるエンジニア
- 好き嫌いが激しく偏った技術にしか興味をもてないエンジニア
などなど・・・
今日は、エンジニアとして覚えておきたい一つの価値観として「システムファースト」という考え方を解説します。
システムファーストとは
システムファーストとは、自分が担当しているITシステムを第一に考えた行動理念のことです。ITシステムを最優先に据えて、その他の要素はITシステムにとって貢献する登場人物であるとみなす考え方です。
システムファーストの考え方として、優先順位はこのように表します。
優先順位の考え方
- 自分よりチームを
- チームより組織を
- 組織よりお客様を
- お客様よりシステムを
システムを最上に据え、より上位のものを優先するという考え方がシステムファーストです。しかし、下位であるからと言って優先しなくて良い、という考え方ではありません。
ひとつずつ解説します。
自分よりチームを優先する
システムファーストの考え方では、「自分」が最後に優先されるものとして定義します。
人は多くの場合、自分のことを最優先に据えてしまいますが、それは当然のこと。自分の人生ですから、自分を最優先に考えることは当然ですし、自分を大切にするべきです。
しかし、自分だけを優先していると、周囲からは自分本位な人物として映ります。そのような人物には共感が得られず、関わる周囲の人物から信頼を得ることができません。その結果、優先したいはずの自分が不利益を被ってしまうのです。
人の目を気にしすぎる必要はありません。ただ、他者を優先した方が、結果的に自分に利益をもたらします。目先にある自分だけの利益に囚われず、利他の精神で周囲に貢献すると、巡り巡って周囲の人々は自分を尊重してくれるようになります。
いつも「あのメンバーが豊かになるにはどうすればよいのか」を考えると良いでしょう。それは優しさであり、そう考えている事は、行動の中で相手に伝わるものです。伝わったなら、いつか相手も自分に優しさを返してくれることもあります。
「自分」を最後に優先するのは、その方が恩恵を受けやすいからという理由です。
仕事はチームで行うことがほとんどです。
まずは自分の欲を心に一旦しまっておき、チームがどうあるべきかを考えると良いでしょう。チームがうまく動くことが、結果的に自分のためにもなります。チームの一員である自分の貢献度は、チームが成功していない限り語られることはありません。
チームより組織を優先する
システムファーストの考え方では、「チーム」より「組織」を優先されるものとして定義します。
自分を取り巻く「チーム」だけの利益を追求してしまうと、場合によってはそのチームの上位組織が不利益を被る可能性があります。
例えば、「チーム」を優先するあまり、作業範囲以外のタスクや、他チームから依頼された予定外の作業を断ったとします。結果、もともと予定されていたタスクを終えたチームメンバーは早く帰宅でき、チームとしての仕事は一見問題ないように見えます。
しかし、その上位組織から見たときには、そのチーム外のタスクが適切に処理されておらず、他チームは依頼先がなく困り果てて疲弊しているように見えます。その結果、未処理タスクが増え、他チームは疲弊し進捗が遅れるようなことになれば、「組織」が不利益を被ることになります。
「チーム」には役割がありますから、作業範囲以上のタスクを積極的にやらなければならないという事はありません。しかし、チーム間で処理しなければならないタスクもあるはずです。「チーム」を優先するあまり、そのようなタスクを他チームと押し付け合っては、「チーム」の評価は下がり、「組織」は不利益でしかありません。
組織よりお客様を優先する
ここで言う組織とは、ITシステムを開発する「プロジェクト」のことです。
「プロジェクト」と「お客様」では、お客様、つまりITシステムを必要としている人々を優先します。
プロジェクト本位なシステムを作ってしまうと、お客様が本来欲しい機能が実現されなかった、などと言う結果になりかねません。
お客様の要件や要求を重要視しなければなりませんが、ITシステム開発のプロジェクトは長期に渡ることも多く、お客様から遠く離れた場所で開発することも多く、次第にお客様要件が曖昧になってしまいます。
プロジェクトマネジメントは、プロジェクトを監視し続けるあまり「お客様」を見失わないよう細心の注意が必要です。
お客様よりシステムを優先する
意外性のある考え方かもしれませんが、「お客様」よりも「システム」を優先するという考え方が、システムファーストです。
これは、エンジニアとしては担当者からマネジメントまで、ITシステム開発に関わる全ての人に持って欲しい考え方です。
例として、システム開発中に発生したとあるシステム障害の結果、対応するためにはハードウェアの増設が必要であることが明らかになったとします。
ハードウェアの増設には数億円の費用がかかり、購入するお客様にとっては大きな損失です。しかし、ここでその増設を行わなければ、システムは安定して稼働する事はありません。
もしここで「お客様」を優先し、「システム」の不具合を放置すれば、将来的にはお客様や、その取引先の企業がうまく動かないシステムに振り回されて不利益を被ることになるでしょう。
ITエンジニアとしては、その「システム」を如何に安定させるかを最優先し、提案します。それが、例え一時的にお客様に不利益を被る内容だったとしても、「システム」を利用する全ての人が豊かになるよう優先するのです。
「お客様」か「システム」かの二択があった場合は、迷わず「システム」を優先すると良いでしょう。良くあるのは「お客様のために障害を隠しておく」であるとか、「お客様にはこの仕様を説明しないでおく」と言ったことがあります。
先日の東証システム障害では、ハードウェアに想定外の仕様変更が加わっていたことが分かりました。仕様変更を行ったベンダーが、導入される「システム」の安定稼働を真摯に捉えていれば、お客様に提言し、今回の障害を防げた可能性があります。
システムファーストの流用性
この考え方は、ITエンジニア以外にも流用することができます。例えば経営者であれば以下のように考えることが出来ます。
- 自分よりチームを
- チームより会社を
- 会社よりお客様を
- お客様より社会を
他者や社会を優先する事で、自分が得られる恩恵は拡大していきます。
自分だけを優先した自己中心的な考え方よりも、他者優先の優しい人物の方が好まれることには、疑問の余地がありません。現実にも、その行動理念が社会全体を豊かにし、より良い生活を人々にもたらすことになります。
ぜひ普段の仕事の考え方として取り入れて頂けたら嬉しいです。
ありがとうございました。