仕事を覚えることをプログラミングに例えて考える

概要

プログラミングにかぎらず、仕事をしていて、プログラミングと同じだと感じることがいくつもありました。 そこから、仕事の仕方をメタに捉えてプログラミングと同じように考えることで仕事の進め方も良くなるのではないかと考えました。 今回は、プログラミングをやったことある人を対象に、仕事の仕方について抽象的に考えてたことを残します。

これが理想的な働き方だとして提案するのではなく、仕事の仕方についてメタ認知して良くすることにつながればと思っています。

プログラミングの進め方

例えば、amazonからコンピューターサイエンスの書籍のランキングからタイトルとISBNを毎日集めてきて、年月日.csvで保存しておくプログラムを作るとします。 そのとき、1日目ならまだしも、2日目、3日目と動かすときに、日付をハードコーディングしておいて、毎日ファイル名を書き換えて実行したりしないですよね。 そこは、毎日、変更が発生すると考えて日付は実行した日が書き込まれるようになると思います。

次に、例えば、先ほどのamazonのランキングをコンピューターサイエンスだけではなく、ビジネス・経済も集めてくることになったらどうするでしょう。 集めてくる指定先として、カテゴリの部分を固定にするんではなかく可変に変更するのではないでしょうか。

プログラミングだと、何をどの手順で実行するのかが明確であり、こうやって動作を抽象化しやすいと思います。

仕事の進め方

これが仕事に置き換わると、議事録を取るときに上司から「XXさんの発言は要約せずに一字一句書いておいて」と言われます。 ここでは、進め方として「XXさんの発言は要約せずに一字一句書いておく」になると思います。 別の会議でも、同じ上司から「YYさんの発言は要約せずに一字一句書いて」と言われます。 次に、進め方として「YYさんの発言は要約せずに一字一句書いておく」になると思います。

ここまでみると、会議の議事録では、「要約せずに一字一句書き取る対象がいる」と理解できます。 たとえば、毎回指定される人が部長であれば、脳内では、「部長の発言は要約せずに一字一句書き取る」と覚えているかもしれません。 こうやって、抽象化しながら進めていきます。

ここで、上司にどうしてその人を指定しているのか聞かないとロジックはわからないですね。 しかし、プログラミングをやっていいる人でも、プログラミング以外では、人は勘違いして対象を別の人に設定したり、 ハードコーディングしてしまったりしているのではないでしょうか。

仕事の進め方をプログラミングで考える

仕事の進め方をプログラミングで考えるときに、定期的に仕事をしている時にどんなルールで判断をしているか考えてみるのが良いのではないかと思います。 普段よりも、1段メタに捉えることで、自分の仕事のルールをリファクタリングすることができると思います。 得た経験を抽象化して使いまわせる知識にしましょう。