SSブログ

いきなりプログラミング [プログラミング]

いきなりプログラミング実践中。
いきなりプログラミングとはその名の通り「いきなり本番稼動環境でプログラムを作っちゃう(機能追加する)」こと。

今の時期、アクティブユーザーがごく限られていて、アクセスがあってもせいぜいデータ参照しかない WorkGroup 単位のとある情報共有システムでの話。

コツは、
1.ロジック(スクリプト)は戻せるようにしておく
2.データは、バックアップを取っておく
3.データの不整合が起きないように、RDBMS の制約はちゃんと設定しておく
4.RDBMS の UPDATE文 DELETE文に WHERE 句が付くように注意
の4点。
1.は、普通の環境であれば、CVS とか Subversion とか使うんでしょうが、
今回のは Zope の Undo 機能で戻せるのでそれを使っています。
3.4.をちゃんとしてれば、コーディング時の不具合でデータがおかしくなるってことは意外とないもんです。
(・・・なんて、油断している今が危ないが)
ZSQL で必ず WHERE 句とか <dtml-sqlgroup where> とか書くようにしとけば 4. は間違えなさそうですが、ASP とか PHP で文字列を繋げていって SQL 文を作るような場合には事故がおきそうな気もちょっとする。

ちなみに、だいたいの要件を聞いて勝手に判断して動作も決めてるので、プログラミングは仕様の策定とプロトタイプも兼ねています。ユーザーは「だいたいこんなことが出来るといいな・・・」という話をしたら、次に話をするときには動いているのを見ることになります。

先に動いているところを見せちゃうと、だいたいは「これでいいや」となりますし、そうならない場合にも、当初とは全然違う要件を言い始めたりするので、実際に動いているものを見る前に、ユーザーと入念な仕様策定をすると無駄な労力になることが多いです。
また、テストデータで動かしてもらっても、真剣さが違うし、本番環境になったときに「あっ、こういう場合はこうだった」と言われたりするので、できるだけ本番環境を使うのが良いです。

大事なのは、「あっ、なんかやってるな・・・」と思いながらも気にせず使ってくれるようなユーザーを巻き込むこと。
「表示が時々乱れるのは気にしないで」とお知らせしておいて、機能が追加された単位で
「~の機能を追加しました」ってお知らせすると、コード作成と、結合テストが同時に進むわけです。
(今どの機能を作ってるかは事前にお知らせしないとさすがに混乱します)

最大の利点は、移行作業とか移行テストのが無いとだと思ってます。

ずいぶん乱暴なやりかただなぁ・・・と思っていたが、はてなも似たようなもんか
http://d.hatena.ne.jp/hatenadiary/


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0