エンジニアなら誰しも必ず修羅場に遭遇する。
技術的な課題、差し迫る納期、予期せぬトラブル────こうした修羅場を乗り越えることで、エンジニアとして大きく成長できる。
Nucoのメンバーたちは、困難な局面をどのように乗り越えてきたのか。
本記事では修羅場を切り抜けるための秘策を、インタビューを通して探っていく。
確かな技術力が状況を打破する鍵になる
困難な状況でもブレない実力派、柴田さんにインタビューを行った。
―初めて遭遇した修羅場について教えてください
柴田:初めての修羅場は、クライアントの社内向けデータ処理システムを最適化するプロジェクトで経験しました。プロジェクトの中盤あたりで、クライアントから急に新しい技術を導入したいという要望が出たんです。その技術というのは、リアルタイムで大規模データを処理できる公開されて間もないフレームワークで、詳しい人材が社内にはほとんどいない状況でした。
情報も時間も限られていて、当時自分は一年目で経験も浅かったので、かなり焦りながら業務を進めることになりました。
―そんな状況で、どのように対処しましたか?
柴田:最初は頭が真っ白になりましたが、まずは導入する技術のキャッチアップに取り組みました。
普段から新しい技術やツールについて軽く調べていたおかげで、手を動かしてみたところある程度理解でき、すぐに実装に取り掛かることができました。日頃の学習でベースになる仕組みを理解できていたことで、無事にスケジュール内で新しいフレームワークを導入することができました。
また、想定よりも早く作業が進み余裕ができたので、クライアントの要求を超えるためにアルゴリズムの最適化と負荷分散の調整も行いました。単に新しい技術を使うだけでなく、システム全体のパフォーマンスを向上させるためにどの部分がボトルネックになっているのかを特定し、改善策を考えました。
最終的には、クライアントから想像以上の成果との評価をいただくことができました。
―柴田さんにとっての修羅場を乗り越える秘策を教えてください
柴田:ありきたりですが、日頃から技術に関心を持って、こまめに勉強しておくことが本当に大事かなと思います。
新しい技術はゼロから学ぼうとするとどうしても時間がかかってしまいますが、ベースとなる知識をしっかり理解しているとキャッチアップのスピードが全然違います。上記のプロジェクトを納期内に間に合わせることができたのは、日頃の知識の積み重ねのおかげだと思います。
勉強の方法としては、普段は記事とか技術書を斜め読みして、土日とか時間が取れた時に仕組みを理解するために精読するようにしています。さらに余裕があれば、実際に動かしてみたり、Qiita等で記事にまとめて公表したりすることもあります。自分は今のところアウトプット駆動型で勉強を進めていますが、人によって捻出できる時間や技術レベルが違うので、自分に合った勉強方法を見つけてそれを継続することが大事だと思っています。
ソフトスキルが生み出す信頼と連携の強さ
抜群のコミュニケーション力でチームを牽引する田口さんにインタビューを行った。
―最近遭遇した修羅場について教えてください
田口:あまり思い出したくないのですが、最近で言うと大規模なECプラットフォームの改修プロジェクトでのトラブルが大変でしたね。リリース直前になって、特定の機能が想定以上に負荷をかけてしまい、システムの動作が極端に遅くなっていることが判明したんです。
このままでは絶対に納期に間に合わないし、クライアントにも大きな迷惑をかけることになると分かり、正直なところかなりのプレッシャーを感じながらの作業となりました。
―そのような緊迫感のある状況で、どのように行動しましたか?
田口:兎にも角にも、まずは問題の箇所を特定するのが最優先だと考えました。チーム全体で効率的に原因究明を行うために、予想される原因、試したこと、検証結果等を箇条書きで整理し、分かりやすい形で情報共有することを徹底しました。結果としては、データベースのあるクエリがボトルネックになっていることが判明したので、すぐにクエリの効率化とキャッシュの導入に取り組みました。
メンバー全員がカバーし合いながら作業を進めたことで、何とか問題を解消することができました。
技術面だけでなく、コミュニケーション面でもチーム全体が一丸となれたことが、トラブルを切り抜ける鍵だったと思います。
―田口さんにとっての修羅場を乗り越える秘策を教えてください
田口:情報は箇条書きでまとめると言うように、相手に伝わりやすいコミュニケーションを常に心がけることが大事かなと思います。問題が発生した時に、正しい情報を分かりやすく相手に伝えられるかどうかがチーム全体の進行に大きく影響します。普段から、非常時の訓練だと思って文面をまとめていますね。特に、エラーの内容や試した解決策を相手に分かりやすく伝えるよう心掛けています。
いずれは非常時でも自然と実行できるように、これが染み付いて無意識レベルでできるようになるのが理想です。
また、拾えそうなタスクは積極的に拾う、詰まったら直ぐに分析・報告を上げることを意識しています。こういった行動は効率的に進捗を生むだけでなく、皆が「自分たちはチームなんだ」という一体感・信頼関係を築くために必要なことだと思います。普段からチーム内で進捗や課題をオープンに話し合う文化があったからこそ、トラブルが起きたときにも即座に問題解決に向けて協力できたのかなと考えています。
努力に裏打ちされたメンタルが支えになる
常に冷静な判断力でプロジェクトを成功させる佐久間さんにインタビューを行った。
―最も印象に残っている修羅場について教えてください
佐久間:一番印象に残っている修羅場は、インフラのクラウド移行プロジェクトですね。
既存のオンプレミスのシステムをクラウド環境に移行するというもので、トラフィックが非常に多いシステムだったため、失敗すれば莫大な損失が出るという緊張感が常にありました。
もちろんトラブルは絶対に起きるだろうと覚悟していましたが、実際にその場に直面すると、想像以上のプレッシャーが襲ってきます。それでも冷静に素早く対処することが求められました。
―極度の緊張感の中で、どのようにして難局を乗り越えたのですか?
佐久間:一番肝が冷えたのは、データ移行中にサーバーのレスポンスが急激に遅くなるというトラブルでした。一瞬パニックになりかけたのですが、「いつも通り、一つ一つ段階を踏んで対処すれば大丈夫だ」と自分に言い聞かせながら原因を分析しました。最終的には、メンバーと協力しながらアルゴリズムの再調整やシステム負荷を軽減するための調整を行い、無事に問題を解決することができました。
―佐久間さんにとっての修羅場を乗り越える秘策を教えてください
佐久間:自分にとっての秘策は「メンタルの強さ」、これに尽きます。技術力ももちろん大事なんですけど、身に付けた力を最大限発揮するためには、非常時でも逃げ出さずに粘り強く解決に持っていくメンタルの強さが必要不可欠だと思っています。
じゃあどうやってメンタルを鍛えたら良いのか、という話で言うと、「勉強を習慣化する」「自分で決めたことを必ずやる」の2つが重要だと考えています。
前者に関してですが、業務時間は成果を出すことを第一に作業しなければならないので、最初のうちは曖昧なままとりあえずコードをコピペしたり、言われた作業をそのままやるだけだったりとかが多いと思います。ですが、それだと根本的な理解ができないんですよね。理解していないと定着しない。定着しないので、成長を実感できない。成長を実感できないので自信が付かず、メンタルも強くならない。
この負のサイクルを防ぐためには、自分が何をしているのか常に理解しながら作業している状態にならないといけないのですが、そのためには勉強の習慣が必要不可欠です。
また、ただ勉強するだけでなく、その記録をつけておくことも重要かなと思います。困難に直面して、自分が最後までやり切れるか分からなくなった時に、勉強の記録がこれまでの積み重ねの証拠になり、大きな支えになります。
後者の「自分で決めたことを必ずやる」というのも、自信を付けてメンタルを強くすることに直結していると思います。普段から、やると決めた難しいことや面倒なことを投げ出さずに取り組んでいると、自分に対する信頼が生まれます。難しい局面でも「自分ならやれる」と思えるようになったり、むしろ逆境の時こそ見せ場だな、と感じるようになるんです。自分も最近では、修羅場が楽しみというか、日頃の成果を発揮するチャンスだと思えるくらいにまでなりました。
修羅場を乗り越えるために必要な「秘策」は、結局のところ毎日のコツコツとした努力であることが分かった。
技術力はもちろん、チームでの連携を支えるソフトスキル、そして日々の努力に裏打ちされた強いメンタルを積み上げることで、どんな修羅場も乗り越えることが出来る。
Nucoでは、日々の努力の重要性を理解し、実践しているエンジニアが多数活躍している。
磨き上げたスキルで心強い仲間と共に修羅場を乗り越え、大きく成長することを目指している方にぜひエントリーしてほしい。