有能なプログラマ

はてなの質問にこんなのがあった。

有能なプログラマが嗜んでいる言語・技法・テクニックとは何ですか? この場合の、"有能なプログラマ"の定義については以下のURLをご覧ください。 http://d.hatena.ne.jp/fromdusktildawn/20070217/1171679191 すなわち、「つまらない仕事の生産性」をあげるための手法を質問しているのだと思っていただいて結構です。 注意:上記のような「つまらない仕事の生産性」を上げるためには、もちろん心構えや生まれ持ったものも大きいでしょう。 それを答えていただいてもかまいませんが どちらかというと、技術的な面を聞きたいです。 プログラマを大工に例えるならば 一流の棟梁の道具箱に何が入っているのかを 聞いているのです。

それに対して、この記事。
http://d.hatena.ne.jp/fromdusktildawn/20070217/1171679191#seemore

たとえば、定期的にサーバのデータのバックアップを取る退屈な作業があるとします。

無能なエンジニアは、定期的に手動で、コマンドを打ってバックアップを取ります。

しかし、有能なエンジニアは、たとえば、ネットワークにつながっているサーバ同士で、定期的に自動的にバックアップを取り合うようなスクリプトを仕込みます。

そして、そのスクリプトがきちんと動作していることを、一発で確認するためのスクリプトも用意しておきます。

これによって、バックアップ作業自体がなくなり、また、バックアップ作業がきちんと行われているかの確認作業ですら、一瞬で終了するようになります。

ようするに、有能なエンジニアは、そもそも全体的なアーキテクチャフレームワーク自体の構造を作り替え、仕事自体を無くしてしまいます。また、残った仕事も、極限まで自動化してしまいます。

こうして、「誰にでも出来るつまらない仕事」をさせたとき、有能なプログラマと無能なプログラマで、生産性に桁違いの差が出るのです。

おー。よかったよかった。私も学校でM田先生に、
「学校の職員用サーバに、もしも異変が起こったらこれまでの
データがパーになるから大変だ。そういうときのためにHDDを
買うつもり。あとはなんとか定期的にバックアップとってくれるかな?」

といわれてたのである。で、他の先生方に状況を確認してみると、驚愕。
これが学校の実態である!とびっくりするかもしれないが・・。

一応、弁護しておく。学校の先生には、パソコンは支給されず、
でも情報教育はやれといわれる。そして文書はワードで作れといわれる。
職員30人が1台の支給パソコンを使っている状態。

でも、情報教育はやれといわれる。
だから、パソコンを自費で工面しなければならないのである。
さらに、個人情報がどうのという理由でインターネット接続禁止なのである。
Windows Updateできないんすけどー。その方が危険かも?と
思ったりする。そして自費である個人用パソコンを使っていると、
「そもそも自費のパソコンを持ってくるな」というお触れが市役所から来る。
「インターネットで調べ物や教材を使いたければ、パソコン室にいけばよい。」
「それがいやなら30人で順番を待て」というのが、
市役所の見解。

わざわざメールをチェックしたり、教材を作ったり調べ者をするたびごとに、
1階から3階まで行ったりきたりしろ。というのである。

それが嫌なら、順番を待てなんて、パソコンを利用するのに、順番カードをつかうなんて、
この市は30年前のパンチカード時代かい?
とここまで言い訳をしておく。

  • そもそもパソコンを使っていない。(論外)
  • サーバにはデータを入れていない。(信頼がないなぁ。)
  • サーバに入れている中で重要データはUSBに入れている。(普通。でもUSB自体にロックをかけよう)
  • サーバに入れているデータは定期的に自分のPCにコピーしている。(お前か!トラフィックを無駄にふやしているやつは!)

そして誰もミラーリングしている人はいなかった。

エンジニアで言えば、全員無能レベルになる。
まぁエンジニアではないので、仕方ないか。

ので、私は一応有能エンジニアよろしく、
サーバ間で、rsyncソフトウェアRAIDを実装したのである。
引用でいうところにスクリプトを組んだのである。

しかし、

そして、そのスクリプトがきちんと動作していることを、一発で確認するためのスクリプトも用意しておきます。

はしてなかったなぁ。一応rsyncは自動的にそうなるのかも知れないが、
rsyncを実行するたびにメールを発行するみたいなので、障害がいつ発生したのかは、わかるが。

早く有能になりたいです。