プログラミングのスピード
今日は、午前中は社内ミーティングを3つ行い、午後は集中してプログラミングをしていました。13時から18時くらいで、C言語のソース約1000行を書いた感じです。
今日作ったものは、今日の13時に作り始めたプログラムで、18時に一応一通りの仕様を満たした状態のものができあがり、新たに書いた分が1000行くらい、ソケット関連と文字列関連、ログ出力関連は自作ライブラリを使って作り上げました。
開発したものは、動画ストリーミングデータのキャプチャシステムで、RTSPでサーバにコマンドを送信し、UDPのストリーミングデータを受信してファイルに蓄積する、というものです(真っ当な目的で使うものです)。スレッド3段階構成で、設定ファイル・データファイルを合わせて3つ扱います。
これがほぼ私の限界性能です。5時間で1000行ですね。プログラム構成なども今日作りながら考えましたので、ゼロから作ってこのくらいです。ベースがあるものの改造とかならもう少し書けると思いますが、ほぼ休みなくキーを叩いていたので、まあ、大体このくらいが限界でしょう(実は途中気分転換にオークションでロードバイクのタイヤを落札したりしてましたので、30分くらいはサボっていて、他にメールも何通かやりとりしているので、実質は4時間くらいかも)。仕様的に間違えていなければおそらく大きな問題はないレベルのプログラムになっています。いつでも見せようと思えばお客さんに見せることができるレベルです。
この仕事の見積が、大体1人月くらいです。まだこれからサーバと結合しての確認や、ドキュメント作成もありますので、作業量としてはまだまだですが、開発自体の目処は1日でつけた、という感じです。このくらいのスピードでできれば、受託開発でも儲けることができますが、動画ストリーミング関連やスレッド・ネットワークプログラミング関連の知識が乏しいと、1ヶ月かかってもできないかもしれませんね。
私の場合、今、他に製品関連の急ぎの仕事を2つ抱えていますので、片っ端から目処をつけていかないと、それぞれ別個の約束を守れなくなります。さらに次々とミーティングの約束なども入りますから、このくらいのペースでプログラミングは片付かないと追いつきません。まあ、そういう理由から、私が得意で、私がやるのが一番早いものだけを選んでやっているようなものですが。
当社メンバーは大体こんな感じでプログラミング仕事は片づけていきます。そのおかげで、受託開発も製品開発・販売も両立できているのですが、他社の方と一緒に仕事を進めると、スピード感の違いにかなり戸惑うことがあります。これは最近のことだけではなく、受託開発をはじめた頃から同じ印象で、最初に出向に行かされたときには、半日で私の1週間分の仕事を終わらせて、マネージャーがやらせることがなくて困った、という感じでした。
なんでもそうだと思うのですが、ある一つのことだけをじっくりやれば良いという状態になると、不思議なことに、予定した期間いっぱいいっぱいかかってしまうか、もしくは間に合わないものなのです。他にもやらねばならないことがたくさんあるからこそ、片っ端から効率良く片づけるものだと思います(限度はありますが)。さらに、後で問題が起きるとますます時間を取られるので、最初から質も高いことが多いと感じています。
派遣などで常駐してしまうと、自分に与えられた仕事だけを決められた時間でこなせば良いので、とっとと終わらせるような人はほとんどいません。やることが多い人ほど効率が高いものだと感じています。これは仕事だけではなく、生活全般に当てはまることで、仕事以外に、人付き合いや趣味などがたくさんある人ほど、実は効率が高い人が多く、「仕事が忙しくて他のことはできない」と言っている人ほど、のんびり時間を使って仕事をしている気がします。
まあ、いろいろと反論がある内容だと思いますが、片っ端から仕事を片づけてくれる当社のメンバーたちを見ていると当たっていると思いますし、そういう人の方が活き活きしていて良いな、と感じるのでした。