見出し画像

駆け出しエンジニア必見!問題に直面したときにあるといい5つの力

こんにちは!SES/エンジニア派遣で企業のIT課題に伴走するアウルキャンプ 広報のコーホーちゃんです🦉

今回は、未経験からエンジニアとして走り出すメンバーも多いアウルキャンプが大事にする、現場で役立つ5つのスキルをお伝えします。

直接的に業務に関係する技術・知識でなくても、多様な現場で自分のレベルを上げていく中では必要不可欠ともいえる力。現場に入ったばかりのエンジニアの方やこれからIT就職を目指す方は、ぜひご一読ください!

(解説:アウルキャンプ代表 永野


0. そもそも「問題」ってどういう意味?

「これは問題だ!」という場面をよく見かけますが、「問題」の定義って実は曖昧ではありませんか?そこではじめに、この記事における「問題」を定義してみます。

理想の状態と今の状態とのギャップ=「問題」  とします。

1. 問題を切り分ける力

さて、現場で「なぜかこの部分が動かない」、「想定の結果と違うんだけど!!」という問題が起きたとします。こういったときは、ひとつの原因だけではなくいくつかの要素が絡んでいるケースが少なくありません。

1-1. 問題の定義

なので「なぜかここが動かない」と相談を受けたら、まずは「問題を定義」します。この場合、理想の状態とズレを出さないためにも、まずは問題を定義します。

たとえば自分は「茶色で40センチの手触りの良いクマ」のぬいぐるみが欲しかったのに、友達がプレゼントしてくれたのは理想と異なるクマでした。この場合の問題は「欲しかったクマのぬいぐるみとは異なるクマがプレゼントされた」ことです。

欲しかったクマのぬいぐるみと異なるクマがプレゼントされた!

1-2. データ収集

次に、問題に関連するデータを集めます。もらったクマがどのように異なるのか、具体的な特徴や、大きさ、色などのさまざまな側面からデータを探っていきます。

1-3. 問題が発生した要因の特定

問題に関する情報やデータを集めたら、問題を起こす原因となりそうな「要因」をリストアップします。「ぬいぐるみの種類についての伝え方」や「友人が自分の好みを誤解していた」、「欲しかったクマのぬいぐるみが売り切れてた」、「あえてのサプライズだった」など、ブレスト的に要因を上げていきます。

1-4. 要因を分析してみる

それぞれの要因について発生する確率や可能性を考慮し、もっとも可能性が高い要因を特定します。

1-5. 仮説を立てる

特定した要因が、今回の問題の原因であるかを検証します。たとえばこの場合だと、友人のプレゼントの選び方の背景や理由を尋ねて実際の要因を確認します。
可能性を一つずつ潰していくと「ここだ」という場所が見つかってきます。一つずつ確認していく作業は一見遠回りですが、結局その方が確実で早いというケースは非常に多いので、このやり方をぜひ試してみてください。

1-6. 解決策の策定

要因ごとに具体的な対策を考えていきます。今回の経験を元に、次回以降のプレゼントの交換方法や希望の伝え方を見直すなど、解決策を策定します。

(あくまで仮定の話です。実際にプレゼントを頂いたら何でも嬉しいです!(筆者談))

 

2. 想像と事実を切り分ける力

問題を切り分けた上で、問題がなさそうな土台のチェックから入ろうとすると、「え?そこは問題ないと思いますよ?」と言われることがあります。それに対し『問題ないと思う』ではなく『問題はない』と断言できるようにしよう、という会話をよくします。

想像や思い込みで「ここは問題ない」と断言してしまうことは、業務に慣れてきた段階で増えてくるのではないでしょうか。「それは確認した上で断言しているの?それとも想像?」と聞いて初めて「( ゚д゚)ハッ!……確認はしていません」と気が付いてくれることも。

チームで仕事を進める中では、自己の想像と事実を切り分ける力はもちろん、誰かの中にある想像と事実を切り分ける力も大切になってくると考えます。
 

3. 探す力

問題にぶつかったときにWebで解決策を検索する人も多いと思いますが、インターネットで情報を探すことにもスキルが要ると考えます。

何を入力して検索するかによって、検索結果は異なってきます。エラーメッセージの中からキーワードを選んだり、期間を指定したり、サイトを指定したり、「Stack Overflow」を見に行ったり、Githubの「Issue」を探してみたり......大体の場合は、英語で書かれた原文のほうが情報量が多いです。数多の手段があるからこそ、どれを選択すべきか見極めるスキルこそが、探す力ともいえます。

こういうサイトには多分載ってないだろうとか、この翻訳は原文を見てみるほうが良さそうだとか、この人の記事なら信頼できるなどの見極めもあります。

また、社内のドキュメントを探す力も重要です。社内でストックされていた情報を共有すると、「え?そんなの知らなかった!」と言われることも多いですが、企業によって情報のため方や検索の仕方、コツも異なるので、早いうちから社内での情報の得方は握っておくと良いと思います。

情報の探しやすさに幅はあれど、自ら探しにいく姿勢が重要です!


4. 公式ドキュメントを読む力

解決策は、公式ドキュメントに書いてある場合も多いです(例:SpringBootの設定を外部からどう与えるか)。なので公式ドキュメントには一旦目を通しておいて、必要なときには「たしかあそこに書いてたなあ」とチェックできる基盤を持っておく。一度も読まないままに進めて、やはり自分の想像で動かしている人が実際には多い印象です。
 

5. ソースコードを読む力

目の前にソースコードがあるのに「このスクリプトが動かないんですよね……」と言われるときも多くあります。「ソースコード読んでみたけど、こうやったら良さそうだよ」とアドバイスすると、「ではこの場合はどんな風に動くんですか?」と聞かれるんです。ほほう、自分で読むということ想像しないのかと内心思いつつ、「では一緒にこのソースコードを読んでみようか」と導くわけです。

Githubでソースコードが公開されてるプロダクトであれば、実際に見にいくといいと思います。私もVagrantの動きが気になったときやGitLabが気になったときは、そのソースコードを見に行って「ほほぉ〜」となったりしていました。

コンテナの中身がどうなっているのか分からない!という人もいますが、「それGithubにDockerfileがあるから、読んだら大体わかりますよー」って話したりもします。


以上、現場で役立つ5つのスキルです。

エラーメッセージを読む力、はもういいよね。


 
アウルキャンプでは、現在エンジニアメンバーやSES営業などのメンバーを積極採用中!未経験からの出発も応援します。
 
当社の仕事やメンバーに興味を持ってくださった方は【 こちらのフォームからぜひお気軽にご連絡ください。会社のこと、応募者様のこと、フラットにお話ししましょう🦉!


いいなと思ったら応援しよう!