top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
blancoDbおよびblancoDbDotNetの開発版について更新しました。Antタスクにバグがありました。
私が最近手がけているのは オープンソースというジャンルのソフトウェアです。私は会社員という立場において blanco Frameworkを紹介するときにはオープンソースの開発フレームワークと紹介するようにしています。一方で私はフリーソフトウェア (日本語で言うところのフリーソフトではありません) という位置づけにおいて blanco Frameworkに接しているときもあります。わたし個人として blanco Frameworkに携わっているときにはそれがフリーソフトウェアであるという認識を持って接しています。いずれにしても、GNU LGPLという世間的にはっきり認識された あるソフトウェアライセンスという基準のもとでさまざまな営みを行っているため オープンソースという概念を中心としていると言っても矛盾は ほとんど無いものと考えられます。
私が blanco Frameworkで行っているいとなみは、昔 私が一介の技術者として活動していたころとは かなり観点(ものの見方) が変わってきているように感じます。むかし Java言語が普及し始めたころは、私は純粋に Java関連技術を ひたすらあさっていました。Java関連技術は 日替わりのごときスピードで 新しいものが登場しては消えていきました。それら新技術を追っているのはとても刺激的で楽しいことでした。そして それら技術を追っていることが ビジネス的な成果・効果とも結びつきがあり 趣味と実益とが共存した、良い時代だったと考えます。
ところが、この1-2年は どうも新技術を追っているだけでは ビジネス的にうまく立ちゆかなくなってきました。新技術をどんどん消化していくだけではいろいろな局面で上手く行かなくなってしまったのです。とくに ちょうど1年程度前の日記なのですが、次に挙げる日記は そんな閉塞感を感じまくっている状況下で苦し紛れに書いたものです。(今ふりかえって初めてうまく表現できるようにも思えます)
この日記を書いた当時に、現状の blanco Frameworkのようなソフトウェア群を 1年間の間に作り上げることは全く想像していませんでした。そんな読みは私の能力には含まれていません。しかしはっきりしていたことは、それまでのようい 単にJava関連技術を追っていくだけでは ビジネス的に全く持って手詰まりであったという状況です。この状況は深刻に理解していました。とにかく 何か なんでもいいから変えていかなくては太刀打ちならないということだけははっきりしていました。(そういえば、、、日記のタイトルの後方にある「Debian GNU/Linux入門宣言」については、まったくもって今もなお入門レベルの技術しか有していませんね… そこの読みはハズれています。しかし重要なのはそのときに Debianを学んでおいたことが、オープンソースやフリーソフトウェアといったものにつながっているという点です。そういうところで、Debianを学んでいたことはとても有意義で役に立っています。)
その閉塞感を打破するために 苦し紛れに選択したのは下記の項目です。
オープンソース
ソースコード自動生成による劇的な生産性向上
活動を継続していく中で おのずと下記の項目が加わりました。
所定の様式から ソースコードや設定ファイルを自動生成
様式から各種自動生成を行うことを軸とした保守性向上
最近のものの見方は 第三次産業というよりは第二次産業です。私が携わるプロジェクトのサイズが相対的に大きくなってしまったのも重要な変化ではあるのでしょうね。とにかく「ニッポンのカイゼン」のようなイメージでソフトウェア開発を捉えるようになっています。例えばだれかが設計書を見ながら 統合開発環境を使ってJava言語の開発を行っているとして、いったいその人は 何の作業に どれくらいの時間を消費しているだろう、なんて見方をします。その費やす時間の最大の所を「カイゼン」していけば、トータルの時間が短くなる可能性があります。blancoDbが様式を入力としたのは、ちょうどそういう地味な改善活動の一環として実施されました。設計書を見てXMLファイルへと転記している作業そのものが全く持って改善可能な ムダな動きであると捉えたのです。ここを改善すれば、設計書がXMLファイルへと自動変換されて手順が一つ省けるのです。これにはドキュメントとソースコード/設定ファイルとのズレが、自動変換によって仕組みとして発生しなくなるというオマケの副作用であるメリットが付いてきました。 blancoResourceBundleや blancoCsvについても、問題点を分析して改善をするという 同じような改善活動の結果得られたものなのです。その活動はストップウォッチを利用して秒単位で継続的な改善を行っていく、あるいは行程の中での歩数や手の動きを減らしていくといった、第二次産業の製造業ではごく当たり前のいとなみなのです。
今の私の活動は、そういった「カイゼン」の工夫を Java言語および関連技術を用いて実現していくということそのものなのです。私は今では 新技術を知る楽しみには身を置いておらず、むしろ秒単位あるいは指の動き単位での「カイゼン」を行うことによるトータルな生産性・保守性が向上していくことに対する快感に身を置いています。第2次産業的な営みによる快楽です。blanco Frameworkを用いて ソフトウェア開発の生産性・保守性が がばっと改善されたときの気持ちよさといったら、これはもう たまらないのです。(そして、最近あった快楽が blancoAntTaskによる劇的な開発生産性・保守性の改善です。くどいですね :-P)
というようなことが ようやっとハッキリと自分で認識して理解できました。「カイゼン」そのものも やはり技術なのですけれども、1年以上前の私の立ち位置における技術とはずいぶん趣が異なるものなのです。そして最近は、Java関連の新技術を 全くと言っていいほど追っていません。なんとか時間を割いて 少しずつは追っておきたいのですけれどもね…
関連する日記
blancoDbおよびblancoDbDotNetの開発版について更新しました。Antタスクにバグがありました。なんと Antタスクのうち SQL様式を入力とした処理が動作しませんでした。恥ずかしい内容のバグでした。試してみて動かないと悩んだ方には大変すみませんでした。
blancoDbについても、次期安定版を近日中にリリースしようと思っています。(その矢先に このバグが見つかったのですが…) RC版を出した時には、試験関連でご協力をお願いいたします。
参考までに blancoDbおよびblancoDbDotNetのAntタスク定義書を示します。
blancoDbのためのAntタスク定義 http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/*checkout*/blancofw/blancoDbEE/meta/db/program/blancoDbTask.xls
blancoDbDotNetのためのAntタスク定義 http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/*checkout*/blancofw/blancoDbDotNet/meta/db/program/blancoDbDotNetTask.xls
ちなみに、私はblancoAntTaskが かなり気に入っています。
電文処理定義書が かなり気に入り、かつ blancoDb系で恥ずかしいバグを出したことなどをきっかけとして、「ストリーム処理定義書」を構想しはじめました。 blanco処理定義書シリーズの第2弾ということになります。処理定義書のストリーム版として 所定の様式に記入した上で Antタスクを実行するとストリーム処理のための抽象親クラスが出来上がるというものです。とてもblancoAntTaskに似ていますね… (苦笑)
ちょっと前までは、「なんでも処理定義書」みたいなものは作れないものかと思案していたのですが、現時点では 全くその逆で「○○処理定義書」というのを具体的な処理ごとに どんどん次から次へと様式を新規作成して行く方が、現実的な業務処理を記述する上では効果が大きいのではないかと考え始めています。(それもこれも blancoAntTaskの効能を知ってしまったからです。あんなシンプルなものが、あんなに絶大な効果を生み出すのですから)
ストリーム処理定義書とともに欲しいのが blancoEclipsePlugin定義書です。簡単にアンケート形式による 所定の様式に値を埋めていくだけで blanco風のEclipseプラグインのソースコードが ずばばっと自動生成できるというものです。これがあれば、blancoの各種タスクを気軽に Eclipseプラグイン化することができるものと期待しているからです。