今月は以前に作った、ある経費管理システムの追加開発をしています。
えーっと、一人の孤独な戦いです。
追加開発とは、前に作ったシステムをシステムAとします。
2ヶ月くらいでシステムAを作り、お客さんに納品します。
で、実際にお客さんがシステムAを使ってみて
「こんな機能が欲しいなー」
とか
「ここをもっとこうして欲しいなー」
などといった新たな要求が、わんさかと出てくるのです。
皆さんの身近なものに例えると、携帯電話。
皆さんの使い始めた携帯電話の機能などで
「もっと、こーなって欲しいーなー」
とか、
「このボタンのデザインが、こうだったらなー」
とかいろいろ使ってみてから気付くことはたくさんありますよね。それと同じようなものです。
さて、そういったシステムAでは実装されていない機能を
「新たにシステムAに組み込んでシステムA+を作ろうぜ!」
というのが追加開発です。
実際、組み込むのはそれほど大規模なシステムでないため、労を要さないのですが
一番メンドクサイのが、どこまでを追加開発要件として取り込むかということです。
大規模ではないと書きましたが、追加開発の対象となっているシステムは
ある企業の経理部で使用するものなのですが、全国に支店が20支店ほどあり、その中で使われているシステムなのです。
本部統括型のシステムなので、中央のシステムを組む(変更する)だけでよいのです。
内容的には、経理部が営業部支援のために作るシステムなのですが、全国の営業部の声をヒアリングして、全ての要件をシステムAに組み込むのことは、できないことではないですが、少し現実的ではありません。
そこで、経理部と営業部の偉い人が話し合って、どんな機能を組み込んだらいいかなぁーと話し合うわけです。
んでもって、経理部から私たちにお話がやってくるのです。
もちろん、営業部・経理部の方はシステムに詳しくないため、企業内の情報システム部に間に入ってもらって現実的な機能なのかを相談します。
さて、その追加開発なのですが、一番のボトルネック、つまりその追加開発を行うにあたり、一番の遅れが出るところが、その要件をまとめるというところなのです。
とりわけ、外資系の企業なので決定などに関しては部長さんたちがグイグイ決めてくれるのですが、内資系に多いのは、決定するのに、ものすごい承認フローを辿らなければいけい場合があり、なかなか開発までいけないことがあるんです。
追加開発の背景はそんな感じで動いています。
で、実際に追加開発をするにあたり、一番怖いのが、システムAの機能・品質を維持しつつ追加するということです。
例えば、"機能a1"をシステムAに追加するとします。
「今までは、10秒で結果が表示されたのに、"機能a1"を追加したら10分もかかってしまったー」
とか、
「操作する画面が"機能a1"のところだけ違うから使いずらーい!」
とか、いろいろ出てくるものなのです。
ましては上記に挙げたことは、外側(インターフェイスや、ユーザーポータビリティなどと言います)のことであり、プログラムなどの内側(データフローやコード体系、数え上げたらキリがないっす・・・)にはもっと気を使うものなのです。
お客さんは、簡単に「機能追加」といいますが、私たちの間では「機能追加」が一番手間のかかることなんです。
実際、このシステムAは私ともう一人で作ったのですが、1ヶ月もかからず作りました。
が、追加開発となると、要件をまとめるところから、影響調査・開発などを含めて2ヶ月ちょっとの期間を設けています。
それだけ時間のかかるメンドクサイものなんです。
しかし相手の企業にとって、いい(効率の良い、投資対効果のある)システムを作っていくためには、このようなステップを踏んでいかなければなのです。企業内の社員のリテラシ(知識、教養、能力など)や、その企業の経営状況などによって変わってきますし、使っても効率の上がらない形ばかりのシステムを作ってもなんの訳にも立ちません。
よく、「その木だけを見ていたら森は見えない」とか聞きます。
目先のものに捉われてしまって、全体が見えなくなってしまうと、どんなにいいものを作っても何の意味がないということを肝に銘じながら追加開発をコツコツと全速力でやっています。
最新コメント