7月
03
2005

受託フリープログラマーの仕事の実験

ふぅ、ほぼ3週間かけてやっと90%ほど仕事を終わりました。

独立して初めてお金になる仕事をして、フリーの受託プログラマーの仕事の内容
がおおよそわかりました。

1. 開発の実験

仕事の内容は、Webの画面をつくる仕事です。画面のデザインは他の方が担当し
て、その画面にデータの入力をするとデータベースに反映されたり、そのデータ
ベースの内容を表示したり、一覧を計算して表示するものです。
業務用で使う画面といえば普通なものかもしれません。

画面数は13、テーブルは8ぐらい。
と楽勝ベースでこんなの急いでやれば2週間で終わるだろうという軽いつもりで
いました。

しかし、PHPとSmartyを思い出して慣れるのに4日ぐらいかかりました。
それまでいろいろ試行錯誤して、プログラムを何度も実験的に書き直しておりま
した。お客さんのプログラム作法に慣れるのも、上の4日と重なります。
Webのデータを、GETではなくてPOSTですべて受け取るようにして、入力チェック
もサーバー側で行うということでした。JavaScriptに慣れていたので、ほとんど
の処理をクライアント側で行うことが楽だったのですが、お客さまの仕様にあわ
せないといけません。

細かいところがたくさんあったり、仕様が固まっていないところがあったり、全
体像が見えないので理解が及ばなかったりする。そういうところは、普通のプロ
グラミングでもたくさんあるでしょう。まったく他の同様の仕事と同じだと思い
ます。

データをアクセスしたり、更新したり、集計するのに、SQLという言語を使いま
す。データが4つのテーブルにわたることがありましたので、少し複雑なSQL言
語を書くことがありました。SQLもホント久しぶりというのか、仕事の関係であ
まり使わなかったので、大変でした。SQLの久しぶりの勉強で、INNER JOIN,
LEFT JOINも、一時的にテーブルを作ったりすることもありました。

デバッグ環境も大変でした。
実はPHPのデバッグ環境は良く知りません。PHPエディタをつかって、文法エラー
をすくなくします。その後は、テストデータがないと本当に動いているのかどう
かわかりません。結局、ブラウザで画面を開いて、データが更新されているかど
うか、画面上にprintやprint_rとつかって、原始的なデバッグ方法に頼るしかあ
りませんでした。自分のPCにPHPの開発環境をおいて、1行ごと実行したり、変数
をチェックするようなことをしないといけませんね。これだけでも開発時間が
20?30%かわりますから。

でも、PHPという言語はいいですね。Smartyも使い方がだんだんとわかってきま
した。Smartyは列数が未定の表をつくるにはまだ大変なところがありますが、デ
ザインとプログラムの分離がある程度可能です。ある程度というのは、表示の都
合上、Smartyのテンプレートにプログラムの一部を持ってくることはあるからで
す。それにリンクはテンプレート側に書いたり、データの一時保存もテンプレー
トに記述する必要があるからです。

まだSQLやPHP, Smartyも勉強不足のところがあって、もっと効率的に記述するこ
とは可能かもしれません。でもPHPという言語は、ほんとうに簡単にできるんだ
なと実感しました。かつての端末でCOBOLやRPGなどを使うように、WebではPHPが
活用できると思います。JavaやJSPでは、システムが大掛かりになってしまいま
す。Microsoftでは、Active Server Pageが同じようなものかもしれません。

今回の開発は多くが初めてのような経験を得たため、パズルを解くような感じで
楽しみました。乗りかかった船ですから、次期開発も行うことになりそうです。
最初の仕事は、イニシャルコストが高かったのですが、次に同様のことをやれば
たぶん30%以上時間を減らすことができるでしょう。

2. フリープログラマーとして

東京で1回4時間くらい打ち合わせをして、設計資料とメールやチャットのやりと
りで行っています。昔親しかった友人から頼まれた仕事で、その友人の先にお客
さんがおります。

友人とは10年以上前に一緒に働いた経験があり、お互いがある程度わかっていま
す。また仕事も途中で投げ出さないけれど、フランクにやりあうという、昔の会
社の文化を共有しています。そういうところでは150%以上の意識をしてやりあっ
ているでしょう。当初、友人は私のことで、能力的にも意欲的にもやりとげるか
どうか心配して、私は仕事に関して能力的にも内容的にも不安なところがありま
した。

そしてお客さんは、私と一緒に仕事をするのは、もっと不安な部分があったと思
います。

今回の仕事は、このような時期にあまり興味のもてる仕事ではなかったので、一
度は断りました。しかし、東京では景気がよくなって、プログラマーは大手が
囲って不足しているそうです。全然知らない能力が足りない人よりも、地方で自
由にやっている私の方が、リスクがあるけれども採用するということだったらし
いです。私も悩んだのですが、友人との今後の関係を良くしたいし、実験的に
やってみるかというつもりになりました。

報酬については、交通費+αで勉強させてもらうつもりでよいといいました。失
業保険をもらっているし、「しばらく業務プログラマーとしては離れているので
きちんと実現できるかどうかわからない」ということからでした。

でも逆に、「きちんと仕事をやり遂げてもらわないと困る」と言われ、お金は私
の身の振り方が決まったときの出世払いということで適当に決めてもらいました。

設計書は非常によくつくられていましたので、90%ぐらいの要件はすべて設計書
に盛り込まれておりました。その後に送られてきたテスト設計書もよくできてい
ました。私自身、設計書の作り方に関して勉強になりました。

問題は残り10%のところで、メールなどではわからないことがあります。たぶん
直接話を聞いて、いくつか質問すればわかると思うことだと思いますが、まわり
くどくなったりします。コミュニケーションでは、このことをどうするかが課題
ですね。これさえクリアすれば、職場はどこでもかまわないのでしょうね。テレ
ビ電話や他の方法で解消できればいいのですが。

仕事の自由な時間も大いに助かりました。
子どものことや別件の用事も日中にあるのですが、そういう時間とは別に仕事を
することができます。またプログラムをつくるという作業は集中するので、隣で
騒いでいようと仕事をすることができます。アルゴリズムを煮詰めたりなど熟考
するときは、トイレに逃げ込んだり、外を歩いたりしますが。自宅でも可能なん
だなと思いました。自宅といっても、居間に机を置いていて、占有する部屋はな
く、たたみ二畳分のスペースなんですよ。

仕事に関係する書類や、その他の書類、自分が読む本などが、机の上に散乱して
大変ではありました。そこに事務用に使うノートパソコンと開発用のパソコンを
17インチモニタをつけて置いています。

良い実験になりました。
自宅で時給4000円ペースぐらいで仕事をする可能性も開けました(今回は、初期
コストがかかって3000円ぐらいかもしれません)。東京で仕事をしたり、客先で
仕事をすれば、もう少しベースがあがるでしょう。

でもたぶん同じような仕事は引き受けたくないかな。同じようなパズルを解いて
も飽きちゃうからね。次はもっと難解なパズルを解きたいと思います。

Written by in: 楽天日記 |

コメントはまだありません »


コメント&トラックバック




トラックバック URL

コメントのRSS feed