軽いプロフィール から 愚痴へ

軽くここにもプロフィールを書くと、関東在住の30代のおっさん技術者。現在フリーでをやっていて確か今期で7期目になります。

主に小企業をターゲットにシステムの開発保守をしています。中小じゃないのがポイントです。あくまでもターゲットは小で。やっぱり経営層とシステム担当者が同じか近い位置にいないとダメかなと。小回りを利かせた超低価格でお届けしています。その代わり端折るもんは端折りまくります。システムのドキュメントやソースコードはすぐには納品しませんし、育てるシステム開発ということで保守も前提となります。つまり、売りきりではなくサービスの提供と考えています。

こういった小さい企業はほんのちょっとした自動化するバッチ程度でも喜ばれることが多いです。確かにこういった層はかなりの数存在はしていると思います。ただ、普通にシステム開発となるとどんな小さいシステム会社でも一千万こえるのはわりと珍しくありませんし、500万きることはまずないでしょう。小さい会社だとそんな金額急に捻出はできませんし、楽になることがわかっていてもまずシステムに投資しようという考えは出てこない。そこがいやなのです。

小さい会社は小回りがききやすい分、システムの方針の変化も大きいです。実際最近納品したシステムはたった2ヶ月の間に2回ほど大きい変更が入っています。でも、世の中そんなものだと思うのですよ。設計して、1年後に出来上がったときにはすでに顧客は先を見ていて陳腐化しているかもしれません。売りきりではシステムが活かせないことも多いと思いますし、単純に「これは追加で金額が発生します」とかWin-Winになりにくいと思います。



とまぁ、いってることだけは綺麗なんですがぶっちゃけ大変ですね。ターゲットが小企業ならば大幅に安い金額を実現しないといけないのですが、なかなか実現は難しいです。たとえば3箇所くらいを月15万でシステムやネットワークの面倒を見るとかできるといいんですけどね。

ですから、とにかく開発効率のいいフレームワークやライブラリ、開発環境は貪欲に探します。そして現状それは開発環境はNetBeans、DBはPostgreSQL、鯖はglassfishフレームワーク等はJSFEJB3JPAという選択肢でした。JSFEJB3JPAは一見ヘビーそうに見えますが、NetBeansを必ず使うという前提の上でなら業務アプリは個人的にはSpringやSeasar2より軽い開発ができると思います(6.1ではSpringサポートされるのでどうなるか見ものですが)。

たとえば直近のシステムではこの環境で2ヶ月で約35画面、約10帳票を作成しました。もちろん、別途ビジネスロジックもあります。この期間は実装のみではなくDBの設計からでです。とにかく動く画面を作って早めに見せるプロトタイプがJSFはしやすいのが利点でした。開発期間がブラックボックスになりやすいシステム開発において開発途中の画面を見せれば顧客はしっかりと食いついてくれます。EJB3を使うことにより、トランザクション境界がわかりやすく、どこにロジックを持つかがはっきりします。フロントエンドをJSF以外に変えることも容易でしょう。

問題がないわけではないですが、NetBeansを使うならばVisual Web JSFは業務アプリを開発する点においてかなり強力な無料のツールです。ツールで作りやすい画面等を設計してそっちに仕様を引っ張れる環境ならば圧倒的開発効率を生み出します。ツールってのはやはりその実装するべき仕様にあわせて選択するべきだとは思います。本来そのフレームワークではこの実装は困難だが、無理やり何とか実装したとかはあるべき姿ではないと思います。そしてそういったツールの選択をすぐに変更できるほど人はできてません。技術習得にはやはり時間はかかるものです。結果、ツールに合わせた設計をするしか選択がなかったりします。

ですから、上流設計と呼ばれるもの(上流とかいう言い方は好きではありません)と実際に現場でコーディングする人は剥離してはならないと考えています。ドキュメント経由での開発ではそのバックボーンが見えてきません。なぜこのシステムが必要なのか、これを使うことによってどういったメリットができるのかそういう感覚的なものはドキュメントでは伝わりにくいでしょう。そしてそういうところがわかっていれば、こういう風に作れといわれたが、こういう設計はまずいとか、ここは運用でカバーできそうだとかいろんな想像の余地が生まれます。


次のステップはWin-Winになるためにも、システムを使うことによって得た利益が開発側に還元される仕組みの構築となるわけですが、これはなかなか敷居が高いです。たとえば売り上げの1%とか業績や規模に関連した数値が入るとわかっていれば開発側の士気も向上するでしょう。システムを売ることが目的ではなく、システムを使っていただいてそこで利益を上げていただくのが目的となれば顧客と開発側との目的も一致します。一致しない限りSIerに未来はないと思うのです。


お会いしたことはないですが、id:habuakihiroさんとかまともに会社を経営してらっしゃる方が見たら、なに甘い考え方をしてるんだとか張り倒されそうですが。

だが、それがいい。といわれたいものです。