2008/02/24

お茶を濁す週末

本当はMacBook Airセカンドインプレッションという記事を書いていて、「VMware FusionのWindowsとMac OSを切り替えて遊んでる動画」を貼り付けようと思ってたんですが、なんかいろいろと(貼り付けるのが)面倒なことになってるので代わりになんか思ったことでも書いてお茶を濁します。

最近気がついたというわけでもないんですが、SI系職業プログラマはやっぱり向いてないなぁーと。まぁもともと職業プログラマ自体が向いてるとは言い難いのはわかってたんですけどね、なにぶんどこまでもいい加減なので。

職業プログラマ、と限定して向いていないなぁと思っているのは、普段自分で(日曜プログラマとして)コード書くときはおおよそテストファーストで書くのに、業務だとうぉーたーふぉーるというヤツに倣わなきゃならないから。

うぉーたーふぉーるというやつに従うと、仕様書書いた、コード書いた、単体テスト作った、単体テスト作ってる途中に実装漏れに気付いた(レポートかいてビルドやり直し)、単体テスト中にバグ見つけた(バグレポートかいてビルドやり直し)という感じになってしまって、つまんないバグとかつまんないミスでバグレポ書くのが苦行すぎるんです。それを全部自分でやるわけですから…。

でも、別にバグレポ書くのが苦行というわけではないんです。単に後からバグが発覚するに決まってるような製造方法で作ってるというシステムが元々よろしくないのに、そこをチェックリストとかでお茶を濁さなきゃならないことが苦行なわけで。

結局少なくとも仕様書からコードまで自分で書くのであれば、マスターアップするまでが(テストも含めて)コーディングと考えれば、別に工程に上とか下とか区別つけてる必要ないと思うんですよ。プログラム書けないえらい人が自分が「上流」って言いたいだけでしょ? とか思ってるコーダーの人もそれなりにいるんじゃないかな。私は仕様書も書かなきゃならない人なのでそうでもないんですけど。

まぁそこはやっぱりうぉーたーふぉーるというやつなので仕方ないんですけども、個人的にはウォーターフォールのよいところは仕様書書いてるえらい人とコーディングしてる下働きの人が全くの別人でもちゃんとモノができてくるという点なのかなぁという風に思ってます。たしかに、そうやって分担するのであれば各工程がちゃんと分離されてないと次に進みませんからね…。

そういう視点で考えると、仕様書を自分でかいて、コーディングも自分でやって、さらに単体テストも自分でやるような開発スタイルにそれを適用しても時間だけだらだらかかるだけという気がしないでもないです。プログラマにプログラム以外のものを書かせても効率があがるわけがない、と。

古くさいやりかたしかできない業界がいつまでも長続きするとも思ってないので、ダメだとおもったらそこで見限ればいいだけなんですがね…。そんなことを考えながらテストでバグだしてレポートに何書こうとか考えていた金曜日。

なんかこれだけで終わるとアレなのでもうちょっとなんか書いておこうかな。

とりあえずキャッチーなタイトルです。これよんで自分の立場にあてはめて思ったのは、別に報われなくてもいいんじゃないかなぁとか。むしろ報われるなんて思ってないというか。もちろん報われた方がいいにきまってますけど、そのためには自分で環境を変える必要がある。

実のところ、ここでいう(ハードな)技術者とソフトウェア技術者っておかれてる状況が違うと思うんです。たとえば、半導体技術者って趣味で半導体つくったりなんてとうていできなさそうですけど、ソフトウェア技術者はやろうと思えば趣味でソフトウェア作るぐらいのことはできるんですよ。

ソフトウェア技術者的にはべーつに仕事上で報われないような処遇になっても、とりあえず日々飯食って自分の時間がちゃんと確保できてればいいんじゃないかなぁーと。問題はここで、結局毎日残業する羽目になって自分の時間が確保できないというのが一番報われてないと思いました。そういう意味では(早く帰れるなら)間接業務に回されたってオレは全然気にしないかなー。

そう考えるということは「仕事なんかより趣味のほうが重要で意味がある」と思ってるってことなんで、じゃあ会社行く意味って給料もらうだけ? って話になるんですけど、いまのところそんな感じだなぁ。個人的にはプログラムを書くことの意味は「自分の知ってる情報を発信する手段」「自分の考えを表現する手段」だと思ってるので、SI系職業プログラマをやってても別に外に向かって情報発信してるわけじゃないし、だれかになんかを表現してるわけからあんまりやりがいがないというか。

そんなわけで、職業プログラマやってるよりなんかのメディアで記事書いてたほうが幸せに仕事できるんじゃないか? とか最近ちょっと思いました。いや、昔からそう思ってるんですがね…。私としてはプログラミング言語でも日本語でもどっちでもいいけど、それで書いたことを「発信」できなきゃ全然意味がないーというところでしょうか。

ソフトウェア技術者は技術的なチャレンジがしたければ家でとかプライベートでいくらでもできるので、今の職場では別に仕事でいきなり技術的チャレンジをする必要はないと思ってます。技術的チャレンジをしたところでそこに報いがあるわけじゃないですからねー。そういう意味では「だから技術者は報われない」というのは非常に正論だなぁと思いました。

逆にちゃんと理解した上で「おお、それすげー」と言ってくれる人がいるってだけで十分報われるし、それなら仕事で技術的チャレンジをする価値がすごくあると思うので、そういう風土があるところにだったら転職したい。

理想は今の職場がそうなることなんだけど、技術的にすごいことをやっていてもえらい人は技術者じゃないのでそれに気付かないっていう。むしろ「それってちゃんとできるの?」とか「それってちゃんと間に合うの?」ばっかりで技術面には無関心(?)なのでこれはもうあきらめてる。技術部門のえらい人なんだからできるかできないかぐらい自分で技術的視点で判断すればよいのにね。

という感じでお茶を濁してしまったので、MacBook Airの動画はきっと明日にでもなんとかします。

うされもん @acidlemonについて

|'-')/ acidlemonです。鎌倉市在住で、鎌倉で働く普通のITエンジニアです。

30年弱住んだ北海道を離れ、鎌倉でまったりぽわぽわしています。

外部サイト情報

  • twitter
  • github
  • facebook
  • instagram
  • work on kayac