会社で作業をするにしても自宅で作業をするにしても、作業をする環境というのは、とても重要なことです。 できるプログラマとそうでないプログラマ、プログラミングをする人としない人との間では、 この点に関する認識が間逆といってもいいほどに違います。
まず、できるプログラマは、当然のことながら、作業場所の環境についてこだわりをもっています。 彼等に「作業場所に必要な環境はなんですか?」と尋ねると、 きっと彼等なりのこだわりを兼ね備えた返答が返ってくると思います。
しかし逆に、そうでないプログラマや、プログラミングをしない人にその質問をすると、 「パソコンがあって、プログラミングをするためのソフトが入っていればいい。 あ、インターネットに繋がっていると便利だね。」 というような回答が返ってくると思います。
まぁ、この答えも間違いではありません。確かにパソコンがあって、プログラミングをするためのソフトが入っていれば、 プログラミングはできないことはないです。 では次に、できるプログラマの答えを挙げます。
できるプログラマの返答例:「できれば個室がいい。そうでなければ、なるべく割り込みの少ない環境で。」 「作業するためのまとまった時間を用意してほしい。」 「電話は必要あるものだけをまわしてほしい。」「雑音の少ない環境がいい。」 「あまりチーム間の移動が激しいのは嫌。」「プロジェクトのための学習期間がほしい。」
はい、両者には一目瞭然の違いがありますね。 まず、できないプログラマの回答には、プログラミングをすることに対するこだわりがあまりありません。 とりあえず仕事であれば、給料をもらうためにそこにいる。作業効率はまぁ会社の方針に従わなければしょうがないし、 作業が遅れるのは嫌だけど、そのぶん残業代もらえればいいや。といった考えからくる答えだと思います。
それに対して、できるプログラマの回答には、プログラミングをするにあたり、 たいへんなこだわりがあることがわかります。 いろいろなこだわりがあるとは思いますが、そのたいがいが、 よいプログラムをつくるため、また、高い生産性を得るために彼らが導き出した彼らなりの答えです。 できるプログラマの回答のすごさをあまり分かってもらえてないといけないので、一応、 上述した、できるプログラマの回答例に、どれだけの意義があるのかを解説します。
できるプログラマのこだわりには、ある程度の共通点があります。 それは何かというと、プログラミングにおける天敵は、割り込みだ ということを認識しているということです。
例えばAさんがあることを実現するためのプログラムを記述するために考えを巡らせていたとして、 10ステップくらいでそれが実現できるが、そのうち5ステップ程度まで思考を進めていたとします。 しかしそこでBさんがAさんに話しかけました。 するとAさんは、よほどお偉いさんでない限り、Bさんの話に対して、なんらかの受け答えをすることになります。 そしてその受け答えが終わり、さてさてとAさんはさきほどの作業にもどることにします。 しかしそこでAさんがまず考えることは、「さっきは何をしていたんだっけ」から始まり、 「そうだプログラミングの作業をしていたんだ。で、何について考えていたんだっけ。」 という思考を経た後、ようやく「そうそう、さっきこういうことを考えていて、ここまで考えたんだった。」 という考えに至ってから、ようやく先ほどの作業の続きができるようになります。
では、AさんがBさんに話しかけられたことによって損失した時間はいったい幾らだったでしょうか。 単純に考えると、
の分だけ時間を損失したことになります。 そしてさらに、Aさんが損失したのは時間だけではありません。
先ほど高まっていたAさんの集中力も、割り込みによっていとも簡単に破壊されてしまいました。 この集中力の破壊というのは、かなり集中しているとき、 また、話しかけられたことが作業となんら関係のない世間話であった場合に起こります。 それまで疲れも他の楽しいことも忘れて、鬼のように作業をしていたときに話しかけられると、 「ふぅ、休憩でもしようかな」となってしまいます。 1日のうちで、鬼のように集中できている時間は貴重です。 集中しようと思っても、なかなか集中しきるところまではいけませんし、 筆者の考えでは、集中しているときとそうでないときでは、 同じ人間でも作業のはかどりは倍くらいの差が生まれると思っています。
つまり、より厳密に考えると、割り込みによって発生する損失は、 割り込まれている間消費する時間 + 割り込み以前の思考を取り戻すのにかかる時間 + 割り込み前に集中状態にあったならば、ふたたび集中するまでにかかる時間 ということになります。 割り込みがいかにプログラマにとって大敵かということがわかって頂けたでしょうか。
割り込みが少ない環境が、いかに重要かを理解して頂けたでしょうか。 では早速、作業場所の環境改善に取り掛かってください。 ここではオフィスの場合と自宅の場合に分けて考えてみます。
オフィスの場合、割り込みの大半が、外部からの割り込みです。 例えば同僚に話しかけられたり、お客が訪れたり、室内の騒音(作業の音や、他の人同士の話し声、笑い声)などです。 残念なことに、日本のIT業界(その他もそうですが)の大半が、これらの割り込みが多発して、 それを上層部が問題に思っていないのが現実です。
改善させるのはなかなかに難しいのですが、もしも読者の方が改善させることができる権限のある位置にいる方ならば、 是非改善してください。 たいていの場合、そのような位置の方は、プログラマの環境がどうであろうと、 接自分には関わりがないような方だろうと思いますので、少しばかり後押ししておきます。 それにはお金がかかるかもしれませんが、その分プログラマの作業効率が上がり、残業時間も減って、 長い目で見れば経費は浮くはずです。(プログラマ側のストレスもだいぶ減る)
また、もしも読者の方が、今のオフィス環境が最悪だと思ったとしたら、 それを改善させることができる位置の役職の上司等に相談するといいでしょう。 もしも改善が実現されないとしても、「こうこうこういう理由で改善してほしい。改善したらこういういいことがあります。」 という感じでうまく説明した場合、大抵の場合は上司からいい評価を得ることができます。 なぜならば、あなたが仕事をもっと効率的にこなそうとしている意欲が伝わるからです。
自宅の環境では、オフィスと異なり、他人からの割り込みというのは、ある程度自分の自由で防ぐことができます。 一人暮らしならば、アパート等で、 お隣の夫婦喧嘩や新婚さん(妄想してください)がない限りまず外部からの割り込みは発生しません。 家族暮らしであったとしても、話せばすぐにわかってもらえるはずです。 では、自宅環境における割り込みとは何なのか。 それは、内部からの割り込みです。 自宅環境の改善は、この割り込みを防ぐことと言っても過言ではありません。
では、内部からの割り込みとは、一体何のことなのでしょうか。 それは、自分が自分のしている作業に対して割り込むことです。 例えば、プログラミングに集中しているときに、ふと、「昨日の萌えゲーマジ萌えたよなー」というような、 全く別の考えが頭をよぎったとしましょう。 これも立派な割り込みです。 この時、あきらかに作業は進みません。 このように、内部からの割り込みの一番の原因は、自分にあることが多いのです。
しかし実は、内部からの割り込みは、自宅の室内環境を改善することによって、ある程度発生を抑制することができます。 もしも以下に列挙する事柄に該当する環境がある場合、直ちにそれを改善して下さい。
どうでしょうか。該当するものがあったでしょうか。 もしも該当するものがなかった場合、これ以上本ページを読み進める必要はありません。 読者の割り込みに対する考えは、筆者の合格ラインを満たしているからです。 該当するものがあった読者は、読み進めてください。
作業PCなどに、PCゲームなどの、娯楽的に魅力のあるプログラムがインストールされている場合、 作業をしているときに、ふとそのプログラムが目についてしまいます。 その時、たいていは「やりたいけどガマン!」と思うはずです。 そう思うこと自体が割り込みなのですが、何時間か作業をしていると、ある時 「ちょっと休憩にゲームでもしよか」と思って誘惑に負けてしまうことがあります。 そしてゲーム等を始めて気がつくと数時間が経過していた・・という事態が頻発します。 これでは作業に集中できないので、ゲームはできれば作業PCからはアンインストールして、 簡単には誘惑されないようにしましょう。PCが2台以上あれば、作業用とゲーム用で完全に分けてしまうのがいいでしょう。 「PCが一台しかないけど、そのゲームをするのが人生の些細な楽しみなんだよぅ」という場合、 ゲームのアイコンをスタートメニュー等の目につきやすい場所から排除して、 直接C:\program files\game\...exeとアクセスしなければ開始できないようにすることで、 割り込みがかなり減るはずです。
プログラミングは、結構体力を消耗する作業で、疲れが溜まると思います。 そうしたときにふとベッドが目に入り、一歩、二歩でゴロンとなれる位置にベッドがあった場合、 絶対ゴロンしてしまいます。 そして目をつむったら最後、目を開けてみると、1時間ほど経過しています。。 そうならないためにも、 作業場所とベッドは、少なくとも5秒以上時間がかかる位置関係にしてください。 そうすることで、作業をしているとき、ベッドへ意識が向くことがぐっと減るはずです。
テレビをつけながら作業をする・・・。 これでは集中できません。 これは割り込み以前の問題ですので、テレビ等はつけないで作業をしましょう。 当然、作業場所からテレビが見える状態だと、テレビの誘惑もあるので、 テレビには背を向けるくらいの位置関係が好ましいです。
作業場所で作業をするのは、体に負担がかかると感じる場合は、改善したほうがいいでしょう。 例えばおしりがいたくなるとか、足が窮屈だとか思う事自体が割り込みであり、 集中を妨げています。 筆者がお勧めするのは、きちんとした机と、座りやすい椅子を用意することです。 どちらも、洋式でなければなりません。 筆者も以前は和式(床に座る形)で作業をしていたことがありますが、全然はかどりませんでした。 そうして 体への負担をなくすることで、作業に没頭することができます。
以上のことは、どれもある1つのことを実現するために実行してもらいたいのです。 それは、作業空間をつくるということです。 作業空間とは、作業をするためだけに存在する空間で、そこでは頭のスイッチは切り替わり、 他のことは一切考えない空間のことです。 そのために、いくつか実行していただきたいことを記述しましたが、それ以外にも、 この作業空間をつくるということを心がけて、読者なりに工夫してみるといいでしょう。