ak備忘録

レガシーブログ

プロとアマの違い

色々あって僕はプログラマーという現代でいうところの何の変哲もない職をやっているわけですが、
プログラマーにおけるプロとアマの違いって結局は
「モノをちゃんと完成させる」
というところしかないのかなと思います。

モノをちゃんと完成させるというのはもちろん締め切りを守るという意味もありますが、
細かいところで言うとプロジェクトの進め方にも当てはまるものだと思います。

例えば自分がツールを作っているとします。
アマのときに良くやりがちなのがツールに『俺ルール』を作ること。
つまるところ、機能としては入っているんだけどちゃんと整ってない。
使う側としては分かりにくいようなルールのこと。
ただ、自分がプロだと自覚があるのであればツールは誰でも使えるようにちゃんと作ります。

なぜなら、最終的に自分が楽になるからです。
自分にしかわからないルールがあると、必ず分からないことがあったときに作った自分に質問がきます。
この対応に時間がさかれてしまいます。

処理を中途半端に作っていると、必ず自分のところに「問題があるんだけど」と相談がきます。
この対応に時間がさかれてしまいます。

小さなことかもしれませんが、プロジェクト全体でみるとこの時間的損失は大きいのです。
時間だけではなく信頼的損失も徐々に大きくなります。
何かを作っても「きっとなんか問題あるんだろうなぁ」と疑われ始めるとチームの信頼関係にも問題が生じます。

結局のところ、俺ルールを作らず、中途半端にならず、ちゃんと作り終わる。
というのは、面倒なようで実はそのあとに控えていたであろう様々な面倒事を解消するのです。

他にもドキュメントとかも例にあげます。
個人製作やよほど小さいプロジェクトでもないかぎり、チームメンバーはせいぜい10人以上はいると思います。
その中で自分の作ったツールを扱う人が3人いたとします。
ただ、大体プロジェクト終了まで3人で終わることはありません。ほぼ確実に増えます。

チームメンバーに何かを伝えたいときにドキュメントにまとめるという作業は、実は面倒です。
ただこの面倒事も、結局は自分を楽にするためにあるものです。

何か質問があったら「ドキュメントを見てください」で終わりますし、
新しいメンバーが入ったら「一通りドキュメントに目を通しておいてください」で終わります。

毎回毎回、相手の席まで行ってあーだこーだ説明をする手間が省けます。
結局のところドキュメントを完成させることで、後々の面倒事を解消し、プロジェクトをスムーズに進められます。

今回はツールやドキュメントを例にあげましたが、
細かいところを言うともっと色々と例はあるかもしれません。
ただ結局のところ、その細々とした細かい部分を1つ1つ「ちゃんと完成させる」。
それが、プロジェクト全体を見たときに、プロジェクトを無事に「完成させる」ということにつながると思います。

それをちゃんと考えて1つ1つの作業をやるかやらないかが、プロとアマ違いなんじゃないかと思います。