「簡単」と「安易」の違い

仕事柄、他の会社や人が作った FileMaker システムの改修や解析を頼まれることがあります。
多くの場合、FileMaker で開発されたシステムは、仕様に関する情報が整備されていないので、ファイルそのものを開いて、仕様や動作の探求を行うことになります。

そこで、よく感じるのは、FileMaker の「簡単」さを生かして開発をしているというよりも、単に「安直」な開発で済ませてしまっているケースの多さです。

FileMaker は、非プログラマの人でもデータベースを作成できる環境として「簡単」さがよくアピールされています。確かに、そうしたメリットがあることに間違いはないのですが、それを一定の規模以上の“システム”として開発する場合には、気を付けなければならない注意点がいろいろあります。

例えば、業務システムであれば複数ゲストでの利用が普通だと思いますが、複数のレコードを一括処理するような機能であれば、排他制御に対するケアが必須です。FileMaker は、標準でトランザクション管理の機能がないので、そうしたケアを行うと、他のデータベースを使う場合よりも、かえって手間がかかってしまったりします。しかし、それを怠ってしまうと、「複数の人が同時に操作を行ったら、意図しない結果になった」という事態になります。

実際には、ユーザ数が少なかったり、ユーザ間で役割分担があって使う機能が重複していなかったりといった運用環境に助けられて、幸運にも問題が生じていなかったり、問題が生じる頻度が低いために「再現性がない」と対処療法で済ませていただろうシステムを結構見かけます。

全置換、レコード移動の Loop 内のフィールド設定、現在/対象レコードの削除、照合インポートなどが、きちんとしたエラー処理もなく、スクリプト内に無造作に置かれているのを見ると、暗澹たる気持ちになります。

他にも、処理速度、ネットワークトラフィックを考えていないシステム、誰でも管理者権限でアクセスできるシステム、操作性が統一されていないシステムなど、「安直」なパターンにはいろいろあります。

システムを開発するためには、開発環境以前に知っておかなければならないプログラミング一般の決めごと、注意事項、禁止事項があります。言い方は悪いかもしれませんが、FileMaker で開発を行っている会社には、単なる「ユーザ上がり」で、他言語、他データベースなら当たり前のマナーを知らずに、システム開発をビジネスとして展開しているところもあるようです。

そうした知識を持たないために「簡単」と「安易」の違いを理解することもなく、システム開発をビジネスとして展開してしまう恐さ。そして、普通のユーザにとっては、そうした会社を見分けることはとても難しいだろうという事実。う〜〜〜ん、どうしたらこうした状況が改善されるのでしょうかね。

別に何も解決策は提示しませんが(笑)、「安易なシステムは恐いなー」と思ったと日記には書いておこう。