SS2010 WG5 ユーザ視点 ポジション・ペーパ
ゼリア新薬工業 熊野

自己紹介
平成元年にゼリア新薬工業の情報システム部に入社、主に社内の情報システムの開発～設計を行う。
携わってきた業務システムは、薬局・病院への販売システム構築・得意先（薬局）との EOS・EDIシステム、物流管理システム、BI/DWH システムなど。
SS2010 ワーキンググループでの議論にあたり今回の SS2010 は、サブテーマとして「ソフトウェア・エンジニアリングの変容と再生」とある。
このサブテーマに関して、ユーザ企業の IT 部門の視座から思うことは、そもそも、ソフトウェア・エンジニアリングなんて、現場ではほとんど存在しなかった、だ。
だから､存在しなかったものが変容し再生しなければならない、ということに違和感を覚えた。そもそも、多くの開発の現場でソフトウェア・エンジニアリングが存在していない、ということも含めて、反省と自戒をこめたサブテーマと考えることが妥当なのだろう。
ユーザ主導のシステム開発
ユーザ企業が SI ベンダに開発を依頼し、その情報システムが期待通りに作られているかは、ユーザインターフェースを確認することが中心になる。だから、内部の構造がどうなっていても問われない傾向にある。
結果、柔軟性・拡張性がなかったり、認知性の悪い情報システムとなってしまう可能性がある。
さらには、UI さえ期待通りに作られていればいいので、開発する SI ベンダも、エンジニアリングの方法に無頓着になっている気もする。
柔軟でない、認知性の悪い情報システムは、企業活動に悪影響を与え、さらに巨大なコストをかけて再構築を行うことにもなってしまう。
そうならないためにも、ユーザ主導でシステム開発を進めて行きたい。
また、クラス設計、エンティティ設計においても、自社の人間が設計にあたるほうが、現実に合致した設計が出来るだろう。これを SI ベンダに説明してモデリング～レビューを行うことは、多大なコスト・時間もかかる、
しかし、現実的にはユーザ企業で、ソフトウェア・エンジニアリングに精通しているところは少ないし、それを習得しようとしても道のりは遠いと感じる。
このようなギャップを埋めるために必要なことは何だろうか？
1 つには、ソフトウェア・エンジニアリングをベースとしたアーキテクトをユーザ企業の中に置く、または外部から登用することが考えられる。
そうすれば、UI だけの確認ではなくモデルを論じることも出来るし、対 SI ベンダとの折衝においても、目利きの役割を担うことが出来るだろう。
ユーザ視点でのシステム開発を行うにあたり、他にどんな解決策があるだろうか？SS2010 の中で議論をしたい。

ユーザ企業でソフトウェア・エンジニアリングを実践してきて思うこと
私は、上記のような考えの下、ユーザ企業の IT 部門でソフトウェア・エンジニアリングを実践しようと試みてきた。
その中で、ぶつかった壁や、思いについて書いてみる｡
・アーキテクチャ、パラダイムの変革
古い手続き型アーキテクチャに慣れた人員に、OO アーキテクチャを浸透させるのに時間がかかった。
これは合点がいく。しかし、そうでない若い人員でも OO アーキテクチャに馴染むのに同じように時間がかかった感がある。
これは、少し合点がいかない。OO アーキテクチャは、現実世界をコンピュータに上手に写像するための方法論であるはず。であれば、素直に考えると、OO アーキのほうがすんなりイメージしやすいと思うのだが、意外とそうでない。
何故だろうか？ソフトウェア・エンジニアリング、特に OOA の普及の難しさの問題は何だろうか？
・企業の中の言葉
企業の中で長年流通している言葉がある。この言葉がクラスや属性やメソッドの名前になることは多いだろう。
この企業内での言語ゲームを、そのままクラスの設計にするべきか？迷うことがある。正しい（一般的に流通している）言葉を使ったほうが、後世につながるモデルとなるだろう。しかし、現実世界とソフトウェアの世界との言葉のギャップの原因ともなる。
このような、クラス設計に関するノウハウ（?）は、いままでどんな本でも聞いた事が無い。
・エンジニアの育成
社内に優秀なエンジニアを育てたい、と模索をしながらやってきた。数年かけてそれなりの技術者にはなったが、何かが足りない気が、ずっと感じていた。
その足りないものは、社外に出て会話をすることなのだろうと、最近思う。
優秀なエンジニアの条件は、「自ら学習して、技術を取得できること」と考える。
そのためには、刺激が必要だ。刺激は社外の優秀なエンジニアと触れることでなされる。それは、ある種怒りであったり、憧れであったりというものである。この刺激を動力として、「自ら学習する」ようになる。
しかし・・・一般企業では、このように社外に出て刺激を受けてくる、ということにあまり積極的で無い気がする。
ユーザ企業の IT 部門は、自社の業務や運用が第一であるという前提がある。だから社外で活動をして、いくら儲かる？何の得になる？などという論理にもなる。
ユーザ企業の IT 部門の自立に対して、最も大きな阻害因子はこれかもしれない。

ユーザ視点でのプロダクト開発
ソフトウェアに限らず、利用者の視座でもの作りについて考えてみる。

昨今の話題を独占している、iPad、iPhone｡
このプロダクトは、技術的に日本のベンダが作れないものではない。しかし、このようなイノベーシ
ョンを起こすようなプロダクトが日本から出ていないことに問題と不安を感じる。
iPad について考えてみる｡（持っていないが･･･）
これはキーボードが無い。だから、PC のように知的生産のための道具としては使えない。もちろん、ソフトキーボードや外付けもあるのだが、PC には劣るという意味だ。
iPad は、いかに機能を減らすか、という点において、絶妙なバランスで設計されたのだろうと思う。
結果、瞬時に起動する、長時間のバッテリー持続という妙味を生み出した。
これは、やはりユーザに視点で設計・開発されたプロダクトだと感じる。某 OS のようにユーザが望んでいない、便利やキレイの押し売りで、重くなり、バッテリーも持たない設計とは、マインドが正反対であると感じる。この某 OS は、技術者の視点で開発されたとしか思えない。
・ソニー、ウォークマン開発秘話
日本発のイノベーションとして過去に存在したもので、思い浮かぶのがソニーのウォークマンだ。これは現在の iPhone に勝るとも劣らない革新的なプロダクトであった。
この開発秘話が下記の URL にある。
https://www.toyokeizai.net/life/column/detail/AC/802a52df9f3f305135ee7d2c8de1596b/
当時、このようなプロダクトは技術的には問題なく作ることが出来たらしい。しかし、ソニーの技術者はウォークマンの開発に大反対。こんなものは売れるわけが無い、という技術者のマインドがあったようだ。
しかし、当時の盛田会長が、自分の首を賭けて開発を推進したらしい。
盛田氏は技術者ではない。あくまでユーザの視点で、このプロダクトの革新性を理解していたのだろうと思う。

過去のエンド・ユーザ・コンピューティングの失敗
ここまで、ユーザが自らプロダクトを開発することが、理想であるような文脈で書いてきた。
であれば、実際のコンピュータシステムの利用者が、システム開発を行う、EUC の形式はどうか？
これは、当社でも長年行ってきたが失敗も多い。
その最も大きな点は、保守が出来なくなってしまう、不良債権システム化だ。MS-Access や、Notesで作られたシステムが、そのようになることが多い。
このような、不良債権システム化させないために、考えなければいけないことはなんだろうか？