【新人エンジニア向け】「わからないことがわからない」原因と対処法エンジニアになって2ヶ月が経ちました。エンジニアとして仕事を進める上で、とても悩んだことがあります。それは「わからないことがわからない問題」です。今回は、自分の経験を元に「わからないことがわからない原因」と「その対処法」についてお話します。※株式会社イーツー・インフォは受託開発をやっているため、その経験を元に書いていきます。※お客様とのMTGを仮定して書いていきます。僕は、次の問題にとても悩まされました。MTGで何を喋っているのか全然わからない最近、お客様とのMTGに参加する機会が増えてきました。そこで、とても困ったことがあります。MTGに参加しても何について話しているのかが全然わかりません。はーどこーでぃんぐ?ますたー?えいりあす?ぶいぴーしー?これが僕のスタートでした。次に、わからないことがわからない問題が起きました。「何がわからないのか言語化ができず、質問もできない状態」です。「わからないことがあるなら人に聞いたり、インターネットで調べれば良いじゃないか」と思うかもしれませんが、それでもわかりません。何がわからないのかがわからないから、社内のメンバーも困ってしまいます。僕はこの問題にとても悩まされました。「わからないことがわからない」4つの原因わからないことがわからない原因を自分なりに考えてみました。僕の経験からわからない原因は4つあると思っています。原因1:専門用語に必要な前提の知識が足りていないから「専門用語に必要な前提の知識が足りていない」状態です。システム開発の現場では専門用語がたくさん出てきます。専門用語を理解するには、必ず前提となる知識が必要になります。自分の経験を元に話します。僕は「エイリアス」という意味がわかりませんでした。MTG中に、「取得するエイリアスを〇〇から〇〇に変更して〜」という話が良く出ていました。エイリアスの意味はその場でインターネットで調べたり、人に聞けばわかります。みたいに出てきます)でも、言葉の意味がわかっても、わかりません。エイリアスについて理解するには、そもそも「データベースの知識やデータベースを操作した経験」が必要になるからです。データベースの知識がないのに、エイリアスの意味を人に聞いたり、インターネットで調べてもわかりません。エイリアスは、データベースの中の一部分でしかないので、データベースという前提の知識がないと何の話をしているのかわからないので、わからないことがわかりません。原因2:お客様のことを理解できていないから「取引しているお客様のことを理解できていない」状態です。具体的に言うと、以下のことを理解していないことが原因です。1.どんな商品やサービスを提供している会社なのか2.誰のための商品やサービスなのか3.どんな問題を解決する商品やサービスなのか取引をしているお客様のことについて理解していないと、わからないことがわかりません。原因3:システムの仕様を理解できていないから「システムの仕様について理解できていない」状態です。仕様とは、何を作るかをまとめたものです。(仕様を記載した書類を仕様書と言います)具体的には、以下の2つことを理解していないことが原因です。1.業務フローについて理解していないから業務フローとは「仕事の手順」のことです。ここでは、「お客様がシステムを使う時に手作業でやる手順」のことになります。具体的には、以下のことが理解できていない状態です。1.システムを利用する人は誰なのか2.利用者がいつシステムを利用するのか3.利用者がどういう場合に使うのか2.機能について理解していないからシステムの機能について理解ができていない状態です。具体的には、以下のことが原因です。1.機能の種類について2.機能の役割について開発をするシステムの仕様を理解していないと、わからないことがわかりません。原因4:要求の仕様を理解できていないから「要求の仕様について理解できていない」状態です。要求仕様とは、お客様から「〇〇をしたい」という要求の内容をまとめたものです。具体的に言うと「〇〇の不具合を修正したい」という修正の要求や「〇〇という機能を追加したい」という機能追加の要求などになります。こちらも理解していないと、わからないことがわかりません。要求仕様については、「原因3:システムの仕様」を理解している前提で話が進むので、システムの仕様を理解していないとわかりません。「わからないことがわからない」場合の4つの対処方ここからは、それぞれ4つ原因に関する対処法について書きます。対処法1:専門用語に必要な前提知識を理解するシステム開発の現場では専門用語がたくさん出てくるので、まずは、専門用語について理解することが重要です。僕は理解する上で2つのことを意識しています。1.大枠(全体感)から理解する専門用語は一つ一つ繋がっているので、先にわからない専門用語に必要な前提知識の大枠(全体感)をとらえておくことが重要です。「エイリアス」の意味がわからなかったらまずは「データベースとは何か?」という大枠(全体感)を理解します。大枠(全体感)を理解してから、「エイリアスとは何か?」といった詳細を理解していきます。2.実際に手を動かして経験する専門用語について理解することも大事ですが、実際に手を動かして経験することが重要です。自分で書いたり、試したり、動かしたりして練習をすることで、知識が身に付いていきます。1.の例でいうと、データベース設計やデータベースを操作する経験をすると理解が深まります。対処法2:お客様のことを理解する取引しているお客様のことを理解する上で、僕は以下のことを意識しています。1.どんな商品やサービスを提供している会社なのか理解する2.誰のための商品やサービスなのか理解する3.どんな問題を解決する商品やサービスなのか理解する対処法3:システムの仕様を理解するシステムの仕様を理解する上で、以下の3つのことを意識しています。1.業務フローを理解するお客様が行う業務全体の流れを理解します。3つのことを意識しています。1.システムを利用する人について理解する2.利用者がいつシステムを利用するのか理解する3.利用者がどういう場合に使うのか理解する2.機能を理解をするシステムの機能全体について理解します。2つのことを意識しています。1.機能の種類を理解する2.機能の役割について理解する3.システムを実際に操作してどう動くのか経験をする1.と2.が理解できたら、最後に実際に手を動かしてどう動くのかを経験します。仕様書やドキュメントなどを読むことも大事ですが、実際にどう動くのか操作して経験することが一番重要です。触ってみて、どんなシステムなのか全体感を理解します。対処法4:要求の仕様を理解するお客様の要求について理解します。3つのことを意識しています。1.要求の内容を整理する2.何をしたいのか目的を理解する3.何が問題なのか理解するもし、要求の仕様についてわからない状態であれば、おそらく対処法1,2,3が理解できていないと思うので、まずはそちらを優先して取り組んでみてください。点と点が線で繋がる日が必ずくる新人エンジニアが現場に入ると、最初はわからないことだらけで苦労することがとても多いです。わからないことがわからない状態というのは、点と点が線で繋がっていない状態だと思っています。次のように点をたくさん作っているようなイメージです。プロジェクトを経験していくうちに、「あ、あのときにこれと同じこと言ってたな、聞いたことあるな、やったことあるな」という形で点と点が線で繋がる日がきます。繋がらないこともあり時間がかかる場合もありますが、繋がる日は必ずくるので、ここで紹介した対処法を是非、実践してみてください。2019平成最後のお正月も無事明けました。本年もよろしくお願いいたします。2019株式会社イーツー・インフォ株式会社イーツー・インフォは、横浜でWebシステム開発・Webサイト構築を行っている企業です。