Raspberry Pi & Python 開発ブログ ☆彡

Raspberry PiとPythonの基本的な使い方をわかりやすく解説。初心者、入門者必見!!

新型コロナウイルスもプログラミングも問題解決の方法は同じ

be in trouble

ブログ管理者のP.Hです!

連日、新型コロナウイルスのニュースが報道されていますね。私もそうですが、本当に感染しないか、感染していたら誰かに移してしまわないか心配です。問題が発生した時に、どのように考えてどう対処するか、という点に関してはプログラミングもコロナウィルスも同じだと思ったので、記事にしてみました。問題が発生したときにどういう道筋で解決していくか、参考になればと思います。

プログラミングでも何でもそうですが、問題はなるべく起こってほしくないですね。時間もかかるし、納期もあるので精神的にもストレスです。ただ、問題を解決した時には、充実感や満足感がとても大きく、問題解決を楽しめるようになります(毎回ではないですが。。)。難しい問題をメンバーでいっしょに知恵を出し合って解決した時には、いっきに結束が強くなります。この記事が、問題解決への助けになればと思います。

問題を解決する方法

私は問題が発生した時に、いつも下記の手順で問題解決を試みます。

  1. 状況、現状を把握をする
  2. 原因を調べる
  3. 原因に対する解決策を考える

それではそれぞれ、説明していきます。

状況、現状を把握をする

問題が発生した時に、大事なことは現状把握です。現象発生時の環境やどういう手順で操作すると問題が発生するか等、状況を把握をし、原因を調べていきます。現象が明確に発生する場合は、意外と簡単に問題は解決できます。手間がかかるのは、開発期間中によくあるのですが、環境や手順を変えると問題が発生しなくなってしまう場合があります。現象再現せず、ってやつですね。こうなると

  • 現象が発生しなくなる ⇒ 問題がなくなる ⇒ 何もできない

となり、頭を抱えてしまいます。ただ、この場合も環境、手順、再現頻度等、状況を調べ、どうやったら現象が発生するかを調べていくしかありません。問題解決時に、状況把握はとても重要なのです。

原因を調べる

問題を解決するために、原因を調べる必要があります。たまに、新人で根拠もなく"ここを変えたら直りました!"と言ってくる人がいますが、原因がわかっていなければ、問題を解決したとは言えません。
コードのどこかを変えて、たまたまうまく行ったかもしれませんが、何か違う使い方やタイミング等で、問題が発生する可能性がゼロとは言い切れません。なぜなら原因がはっきりしていないからです。問題を解決する時は、絶対に原因を特定する必要があります。もっと言ってしまえば、原因さえわかれば、この問題は対処しなくてもいいという結論になるかもしれません。

原因に対する解決策を考える

これはある程度経験のあるエンジニアなら、それほど難しくありません。大幅に設計変更をしないと解決できないという結論に至る場合もありますが、原因がわかれば、何かしら対応できます。新人エンジニアの方は自分で解決策がわからなければ、先輩エンジニアといっしょに対策を考えるととても良い経験になると思います。問題解決の作業はスキルアップに繋がります。

新型コロナウイルス拡大の問題も同じ

いま新型コロナウイルスで、大変な状況になっていますね。この問題も考え方は同じだと思うです。

  • 状況、現状を把握する

ここまで感染が広がってしまったのは、現状把握を失敗してしまったからだと個人的には思います。PCR検査をできる機関はあるのに、検査体制を整えなかったので、現状把握が全くできていません。

  • 原因を調べて、対策をする

正しく状況把握ができていない今、感染者の特定は難しい状況です。また、学校休校も本当にどれだけ効果があるかわかりませんね。根拠もなく対策をしないといけない状況なので、全部中止という対策しかなく、経済や国民への負担が大きく、納得できない人が多いのではないでしょうか。

問題に対処するタイミング

もうひとつ、時間軸について考えてみたいと思います。大きく3つのタイプに分かれると思います。

  1. 問題が発生して、自分で解決もできず周りに迷惑をかける
  2. 問題は発生するが、自分で解決できる(意外と評価される時がある)。
  3. 問題が発生する前に、未然防止する(意外と評価されない時がある)。

問題発生後に、問題を解決する

問題が発生しまったら、解決するしかないのですが、私はこうなってしまった時点で、自分の負けだと思っています。発生した問題を解決して評価される時がありますが(もちろんこの能力も必要)、これを繰り返しているようでは、品質や生産性は上がらないでしょう。

問題が発生する前に、対処する

私はこれが出来る人が一番評価されるべきだと思うのですが、こういう人は何事もなく仕事を終わらせるので、評価されない場合があります。なぜなら、目立たないからです。問題が発生して、解決すれば周りから凄いと言われるかもしれませんが、問題を未然に防いで淡々と仕事をしているため意外と周りに伝わりにくいのです。私は、物事の先を読み、未然に問題が起こることを防いでいる人の方が優秀だと思います。

新型コロナウイルス拡大の問題も同じ

これも同じですね。国の対応は、問題が起きた後に対処するという後手後手の対応だったと思います。これは説明せずとも皆さん感じているのではないでしょうか。また、

  • Jリーグや民間でイベント中止 ⇒ 政府がイベント中止要請
  • 北海道で学校休校 ⇒ 政府が学校休校要請

こういう順番を見ても、政府は対応が遅すぎると私は思います。新型コロナウイルスの感染を食い止める、ということより責任問題の回避を優先しているように思えてしまいます。

なんとなくですが、どんな仕事でも問題の解決方法の考え方は根本的なところは同じなのではないか、と思いました。重要なのは、

  • 状況を正しく把握して原因を調べること
  • これから何が起こるかを予測し未然に対処すること

なのではないでしょうか。当たり前のことですが、これを当たり前に行うことの難しさを再度認識して、これからも仕事をしていこうと思います。