VBAでお困りではありませんか?

VBAの保守が難しい理由

VBAは言語として難しいのでしょうか?いいえ、そんなことはありません。マクロの記録をすれば操作をVBAで記録できますし、学校によっては高校でも教えているくらいとっつきやすいものです。ではなぜ保守が困難なのでしょうか?理由のひとつ、それも根本的なものは、簡単に作れてしまうからではないでしょうか。

一般的に他のコンピュータ言語では

  • 標準的なロジックやパターンが提供されている
  • コーディング規約がある
  • 設計書が作成される
  • テスト方法が確立している

等が整備されていることが多いです。VBAの用途としてちょっとしたツール程度なら要らないのかもしれませんが、システムとして業務に利用するのであれば上記のようなモノがないと「我流」で行うしかありません。

業務を進めると保守が入るのは世の常です。それも即対応が求められる事が多いため、そのうちに担当者にも手が付けられなくなってしまう、ということがよくあるのです。

保守が重要な理由

システムは会社にとって重要で、利活用していくものです。保守費の高いシステムは金遣いの荒い配偶者を迎えること、保守の遅いシステムは怠け者の配偶者を迎えること、というように捉えてみてください。あまりに酷いと離婚の原因にもなりかねません。良い配偶者はその逆のはずです。システムだって同じ事で、保守のしやすさは時間も費用も小さくし、更にシステム利用者のストレスも軽減させる効果があり、そのシステムと長く付き合っていける。それって重要ですよね。

VBAをとりまく環境

ビジネスはスピードも重要ですから「やりたいことをすぐ実現したい」というのはよく分かりますし、書籍やインターネット上の情報もそういう傾向が非常に強いです。動くコードを切り貼りすれば作業は効率よく進むのですからそれも一つの手でしょう。

しかし、そういう方法をとり続けると、そのシステムを誰が保守できるのでしょうか?個人の責任で済むのならいいのですが、会社としてそのシステムにどう責任を持つのか、となると、説明責任が果たせないモノは困ります。また、保守が難しくなると保守にかかる費用も時間もかかることは配偶者の例で前述しましたが、それでは本末転倒です。

このHPの役割

VBAの世界でも他のコンピュータ言語と同様に標準的なものを用意し、それに改訂を重ねていける事が必要ではないかと考えています。その具体的なアクションが、こちらのブログです。ただ、ブログは時系列に並ぶのでまとめにくいこと、カテゴリーを複数持たせにくいこと、ダウンロードできるファイル形式に制限があること、等がありました。そこで、HP形式としてまとめるべくこのサイトを立ち上げました。ただ、時間の関係等でなかなか作業は進んでおりませんので、当面はブログの方が情報が多いでしょう。

私自身、VBAではちょっとしたツールから、企業の中核を担うシステムの構築までと、幅広く経験があります。その中で調べたり失敗を通じて学んだノウハウがあります。その中で「保守のしやすさ」という観点での構築方法を中心に、情報を発信できればと考えています。

なお、参考までですが、開発効率の良さと保守のしやすさは両立します。VBAを用いている方、VBAのシステムを使っており費用削減に頭を痛めている方であれば、必ずや有益な情報になるものと信じております。

このHPの特徴

上記にも少し出ましたが、このサイトの特徴は

  • 保守のしやすさに重点を置いている
  • クラスモジュールの利活用に特に力を入れる
  • ヘルプや他サイト、書籍で学べる情報はあまり載せない

になるでしょう。

VBAのシステムが稼働している会社様へ ご提案

マネージャー以上の方が考えるべきこと

コンピュータに詳しいからと本業以外にVBAのシステムも依頼しているケース

よく「○○さんの作ったシステム」とか呼ばれたりしていることもあります。その場合、よほど軽微であるか、きちんとシステムの作業分も報酬に上乗せしたりしていなければ危険です。というのも

  • 修正に関して、個人の技量による部分が多く、知らない部分で時間を多く取られてしまう可能性がある
  • どんな修正であれ、時間を取られるため、本業に支障がでる可能性がある
  • 担当者にしか分からないため、病気、退職等の際に保守ができなくなる
  • システムに何か問題があったときの責任体制が確立されていない場合が多く、担当者の責任になることが多い

というリスクを孕んでいるからです。人知れず苦労もしているはずです。特に費用も時間も人材もないなら、折に触れて感謝の言葉を掛けてメンタル面を支えるようご配慮されることをお勧めします。こちらのサイトはそういう人たちに特に活用して頂ければと考えております。

外部の専業のベンダーや担当者にVBAのシステムも依頼しているケース

IT業界では、VBAが軽視されている傾向にあるようです。どうやら「簡単で誰にでもできる」と思われているようで、技術者の単価も比較的安いようで、技術的にも業務の内容を理解する上でも、残念ながら良い技術者が割り当てられることは少ないようです。その対策として、契約前に確認しておいた方が良いだろうことを挙げておきます。なお、自分たちでどういう回答ならよしとするかは考えておくべきでしょう。また、入札形式を取る場合は入札者に予め基準を示す必要があるでしょう。

  • 標準として、どんな成果物があり、何が納品されるのか?
  • 要件の確認は何を以て承認できるのか?
  • 稼働開始時、具体的にどういう作業がどう変わるのか?
  • 運用に当っての注意点はあるか?システムにメンテナンスが入ったときはどう反映するのか?
  • 運用費、保守費がかかるとして、いつから幾ら掛かる予定か?

立場にもよりますが、システムを担当してきたなら経験しているであろうことです。このあたりの回答が曖昧であったりすると後でこじれることも結構あるはずです。持論ですが、良い技術者なら単価を上げても充分にペイできます。値段だけで決めると、後で期間や費用の追加が出てくる事がありますのでそのあたりは充分に見極めて下さい。

雑談 私の感じている危機感

IT業界の人材不足

IT業界は人材不足による危機的状況だと思います。不景気だから?いや、人手はおそらく不足していません。要するに真っ当な技術者がもの凄く不足しています。

技術に関する勉強不足

技術に関して不勉強な輩も居ます。それも少数ではありません。

仕事場で覚えたことしか知らず、分からないことを分からなくて当たり前、会社が教育してくれないからと言う輩もいます。インターネットサイトでちょろっと調べるならマシな方ですが、それでも体系的な知識が付くはずもありません。よって、なかなか力が付かないのでしょう。

参考まで、経済産業省の基本情報処理技術者といえば、経験1年くらいが想定です。これに合格しない技術者が凄く多いです。数年前に業界別の合格率を見ると、IT業界は全体の平均より下回っていました。本業の技術者が合格しないってどういうこと?と思うでしょう。恥ずかしながらそういう状態で技術者を名乗る輩もたくさん居るのです。よく「情報処理試験は役に立たない」とかいう輩もいます。ええ、実務でそれほど意識することはないでしょう。しかし、「基本」ですから。そのくらい知っていないと恥ずかしいってことだと思います。

業務に関する勉強不足

業務に関して勉強する人の方が珍しがられるのかもしれません。そのくらい業務に関しては不勉強な輩、多いです。

顧客から要件を聞き出すには、相手の言っている事が分かる必要があります。が、どの業界にもその業界用語、つまり専門用語があります。その用語すらまともに理解しようとしない技術者、多いです。そうすると、設計書も書けないし、設計書を鵜呑みにしてプログラムを実装するしかなくなってくる訳で、そういうプロジェクトではしっかりとしたレビュー体制でもなければ末恐ろしい事になります。

そういう輩はたいてい「そういう理解ではなかった」とか「それは範囲ではない」とか、責任逃れをするのも特徴です。

コミュニケーション不全

自分の考えたことだけを遠そうとする輩もいます。自信があるのでしょうね。

ただ、顧客の生の声を否定してまで自分の考えを押し通そうとする輩、多いです。例えば携帯電話の着信に対し名前を登録すると、読み仮名も登録してくれますよね?出ない場合はその読み仮名を修正もします。これって一般の人からすれば「当たり前のこと」でしょう。しかし、ある現場で携帯方式を提案したところ「そういう入力は危険である」と技術者の強い反対に遭い、唖然としたことがあります。訂正の方が少なく、それで二重入力の手間を減らしたい、という常識的な欠落していたりします。

これは一例ですが、世間を見ないで机上で考えた事だけの意見を言う技術者も多いです。

このようなベンダーや技術者を避けられるようご注意下さい。他にも危機を感じていることはあります。いずれ追記するなりしようかと思います。


Copyright http://www.vba-manners.info