『システム開発のスピードを上げたいが、いつも遅くまで残業をしてしまう。』
これは多くのITエンジニアが抱える悩みであり、メンバーのスキル不足や人手不足などの理由も一因でしょう。
しかし、世界の一流IT企業で働くエンジニアの視点から見れば、その原因は日本の一般的な仕事のスタイルにあると推察されます。
そこで今回は、牛尾剛氏の著書『世界一流エンジニアの思考法』を参考に、システム開発のスピードを向上させるための方法について解説していきます。
目次
試行錯誤はせず、的確なアプローチを選定する
方法
何か問題を解決するときに、仮説を立て、アプローチを考えたうえで行動するということを意識しましょう。
悪い例
ケース:ソフトウェアの開発中や稼働中のシステムに対してエラーが発生した
アプローチ:手あたり次第に修正を加えてみる。
この方法は、簡単なエラーや既知事象に対するアプローチとしては効果を発揮することがあるが、今まで経験したことのないパターンに陥るとかなりの時間を費やしてしまうことになる。
解決したとしても、解決した理由が分からないためノウハウも残らず、次同じ事象が起きた際にも同じように時間をかけてしまう。
良い例
ケース:ソフトウェアの開発中や稼働中のシステムに対してエラーが発生した
アプローチ:エラー箇所を分析し仮説を立て、対策を練り一つずつ潰し込みをするように修正を行う。
この方法は難解な問題に対しての解決スピードを向上させることができる。
また解説に至るまでのプロセスがそのまま、次同じことが起きたときの手順にもなる。
より少ない労力で価値を生み出す
方法
課題やタスクに対して優先度をつけ、本当にやるべきことのみに集中する。
無駄なプロセスを省く。
悪い例
もともと決まっていた要件から、追加で顧客が出してきた要望に応えようと工数ばかりがふくらみ、メインの機能がおろそかになった
上司の評価を気にして、上司レビューに使用する資料作成に過剰な時間を費やす。
良い例
開発工程の途中で顧客から追加要望が上がってきたが、追加すべきものとそうでないものを切り分ける。
また、追加すべきと判断したものもプロジェクトの状況によっては取り込まないことを顧客と合意する。
上司レビューに使用する資料の準備には簡単な議事(決めたい事)と設計書(ありもの)、簡単な補足資料など必要最低限のものをそろえるだけ。
最速で失敗する
方法
直面している課題に対して、自分の考えや対処方針を素早く整理し、上司や有識者のフィードバックを受ける。
レビューは2回以上に分けて実施する。
悪い例
課題に対して、自分1人の力で長い時間をかけ対処方法を考え、計画書を10割仕上げて上司レビューに臨む。
しかし、対処方法に致命的な欠陥が存在し、1から計画を作り直す必要があるとわかり、大幅な手戻りが発生した。
良い例
課題に対して、自分のわかる範囲で分析をし、解決案の候補を複数考えたうえで、3割程度の出来で上司に相談を持ち掛ける。
上司からフィードバックを受けた内容を加味して、計画作成中にも有識者に対処方法の相談を間に挟みつつ、最終レビューに臨んだ。
早期にレビューを行うことで、致命的な手戻りを防ぐことができた。
脳への負担を減らす
方法
定例的な作業やパターンがある程度決まっている作業は仕組化して、なるべく「考える」という労力を減らす。
その分、アイデアを出したり何かを生み出すことや今まで経験したことのない難解な問題に立ち向かう時に脳を使う。
※この際も、必要最低限の労力にするために過剰なインプットなどは避ける。
悪い例
毎週行う作業や重要でない作業に対して、毎回違う順番や方法でタスクを進めていき、毎回異なった成果物を作成する。
明確に改善をすることのない限り、この方法は得策ではない。
いつもと違うアプローチをとることで多少なりとも「考える」という時間が増え、重要なタスクへのパフォーマンスが低下する。
良い例
定例的に発生するタスクは、ツールで自動化したり、作業を手順化したりして、毎回同じフォーマットの成果物を作成する。
自動化や手順化によって削減された脳は、画期的なアイデアや難解な問題に対する解決策を考えることに使用する。
仕事を難易度別に考え、対処、自己研鑽を行う
方法
仕事の難易度を4つのレベルを意識したうえで、対処する。
また、自己研鑽を行う。
- レベル1 何もググらずに即実装できる
- レベル2 ググれば解決できる
- レベル3 マニュアルがあれば何とか対処可能
- レベル4 自分では無理
悪い例
レベル4のタスクに対し、長い時間をかけて対処方法を練ったが何も生まれず、他の人に依頼したら一瞬で解決した。
よく使うコマンドやコードをいつもググってコピペをしており、調べる⇒作るという時間が積み重なっている。
良い例
レベル4のタスクに対しては、早期に有識者の助言を得たり、外部に委託したりする。
レベル2に達しているスキルが多く存在する場合は、調べることや思い出すことに対しての労力を減らすことを考え、レベル1までに到達するよう勉狂する。
まとめ
今回はシステム開発において仕事のスピードアップに必要な仕事術について解説しました。
今一度、上記にて紹介した内容5つについておさらいしておきましょう。
- 試行錯誤はせず、的確なアプローチを選定する
- より少ない労力で価値を生み出す
- 最速で失敗する
- 脳への負担を減らす
- 仕事を難易度別に考え、対処、自己研鑽を行う
日本の企業ではこの考え方と全く逆のことをして生産性が下がってしまっている人が大変多く見受けられます。
もちろん、何が正しいかは人それぞれ、ケースバイケースであるという側面もありますが、何かを変えてみないことには成長はありません。
ぜひ、今回紹介した5つの仕事術の内、1つでも実践してみてください!
本記事以外にも、ITエンジニアにとって重要なスキルについて解説した記事を書いています。
以下のリンクから内容を見ることができますので、ぜひご覧になってみてください!
2023.05.20
【大手企業が推奨】未経験エンジニアが身につけるべきITスキル5選
未経験からシステムエンジニアを目指す方が陥りやすいのが、どんなITスキルを身につければいいのかわからないという問題です。 前職や学生時...
コメント