受託開発は、エスエムジーの業務の中心となっている仕事です。受託開発といっても、実際にどのようなシステムを開発するかはお客様によって様々です。エスエムジーでは創業以来、特に「集中監視制御システム」を中心としたミッション・クリティカル・システムの開発を得意としています。当社のミッション・クリティカル・システムの代表的なソリューションとして、MCCoreがあります。
エスエムジーの受託開発は「最前線でお客様の声を聞き取る」ことをモットーとし、業界のピラミッド構造にとらわれずに、ユーザーからの要望を直接聞き取り、自社で直接開発まで行っています。
特に Java による集中監視制御システムの開発では、IT 業界で Java の利用が導入されてきたばかりの2000年頃からノウハウを蓄積しているため、お客様からも高い信頼を得ています。
最初に説明したように、ソフトウェア開発の中心は「人」です。仕様書もコンピュータを動かすプログラムも、人間が手作業で作るため、個々のエンジニアの能力によってどうしても品質が上下してしまいます。エスエムジーでは、お客様に対して常に安定した品質のシステムを提供できるよう、CMMI に沿ってプロジェクトを進めています。
エスエムジーでは、業務の柱の一つとして受託開発を行い、要件定義から設計、開発、テストまでを一貫して行うことで自社の技術力を高め、常にお客様から信頼を得られる会社となることに努めているのです。
CMMI(Capability Maturity Model Integration)とは、米国カーネギーメロン大学のソフトウェアエンジニアリング研究所(SEI)が開発したソフトウェア開発能力の成熟度を示すモデルです。簡単にいうと、組織のソフトウェア開発をレベル1~5(レベル5が最高)の間で認定しようというものです。CMMI では、ソフトウェア開発の手順や管理の方法などを各組織が決めて、その通りに実施することを求めています。エスエムジーでは、2004年頃から CMMI に対する取り組みを始め、2005年4月に当時国内最小規模でレベル3を達成しました(達成当時の記事)。レベル3以上の認定は非常に難しく、世界中でもレベル3以上を達成している組織は 1400 程度しかありません。
ソフトウェア開発にとって、フレームワークは非常に重要な要素です。現在のソフトウェア開発では、毎回すべてを最初から作っていては、予算、期間、品質すべての面でお客様の要望を満たすことはできません。
そこで、似たようなシステムについてはあらかじめ基本となる部分をつくっておき、これにお客様固有の要望の部分を追加してシステムを完成させます。この基本となる部分のことを「フレームワーク」と呼びます。
自動車にたとえるならば、フレームと呼ばれる骨組みの部分を複数の車種で共通化して、コストを下げ、品質を上げることに似ています。
基本となる重要な部分をフレームワークに集中させて流用できるようし、高い品質をもったフレームワークを提供することができれば、エンジニアのスキルや人数にあまり影響されずにシステムを開発できるようになります。
フレームワークを用いれば、高品質かつ効率的に開発ができます。
もちろん、逆にフレームワークを開発するには非常に高いスキルと豊富な経験が必要になります。一つのフレームワークでさまざまな要件を満たすためには、どのような要件があるのかを知っていることが必要です。そのためには、現場で様々なシステム開発に携わった経験が必須となります。また、フレームワークでは一つのソフトウェアで様々な機能を提供する(これを汎用性といいます)ため、通常のソフトウェア開発よりも一段も二段も上の技術が求められるのです。
エスエムジーでは、長年集中監視制御システムに関わったノウハウを元にして、集中監視制御システム開発用フレームワーク、「GNMS」を開発・販売しています。また、GNMS をより汎用化し、集中監視制御システムだけではなくミッション・クリティカル・システム全般で利用できるようにした「MCCore」を開発・販売しています。
また、受託開発の一環として同業他社のフレームワーク開発を請け負うこともあります。一般に IT 産業では業種別(たとえば、金融業界や、電子政府といった具合に)にフレームワークを独自に開発し、その分野のシステム開発を効率化することが多いのですが、先ほど説明したとおりフレームワークは簡単に開発できるものではありません。そこで、エスエムジーがフレームワークの設計・開発を受託開発として請け負うのです。これはもちろん、自社でのフレームワーク開発経験がなければできない仕事です。
近年のソフトウェア開発では開発コストを下げるため、「オープン化」といって様々な会社の提供するコンピュータや OS、ミドルウェアなどを組み合わせて実現することが多くなっています。
これに対し、昔はコンピュータのハードウェア・OS など同じ会社が提供したもので開発することがほとんどでした。オープン化によってそれぞれのメーカーに競争が生じ、コストが下がるわけです。また、最近では「オープンソース」と呼ばれる無償で利用できる OS やミドルウェアを採用する例も非常に増えています。オープンソースの著名な例としては、Windows に代わる OS として利用が増えている「Linux」(リナックス)が有名です。
このように選択肢が増えることでシステム開発のコストが下げることは、非常に良いことなのですが、一つ大きな問題があります。それは、組み合わせの数が膨大になったことで、予想できない問題の発生が増えたことです。
昔はハードウェアから OS、ミドルウェアまでトータルで提供されていたため、問題が生じてもトータルサポートの一環として販売元(「ベンダー」といいます)がサポートしてくれました。しかし、現在では様々なベンダーの製品を組み合わせるため、各ベンダーとしてもそれを利用して開発したシステム全体までサポートできなくなっているのです。さらに難しいのが、先ほど紹介した「オープンソース」の存在です。オープンソースは誰でも無償で利用できる反面、万一問題が発生しても誰もサポートしてくれません。あくまでも自己責任で利用する必要があるのです。
このように、ソフトウェアの構成が複雑化している現状では、ひとたび厄介な問題が生じると、その原因究明や解決に何週間、あるいは何ヶ月もかかってしまうこともあります。
最近では、証券取引市場や銀行の ATM システムのダウンなど、私たちの生活の身近なところにシステムトラブルが影響を及ぼしています。このような問題は、私たち利用者にとって迷惑であるばかりか、提供する側の企業にとっても何億、何十億円という損害を出しかねない大きな問題です。
さて、そこで登場するのがエスエムジーの障害解決サービス「JaTS」です。「JaTS」では、エスエムジーの中でも特に経験を積んだ障害解決のエキスパートが、お客様からの依頼を受けてシステム障害の解決を行うという非常に珍しいサービスです。
自分たちの開発したシステムではなく、他社の開発したシステムの問題を解決するのですから、その難易度は非常に高いものです。最初に説明したように、オープン化されたシステムでは様々なベンダーの製品が利用されていますから、それぞれの製品に関する知識はもちろん、現象から目に見えない原因を導き出す論理的思考能力、火事場となっている現場でプレッシャーに耐える忍耐力、そしてエンジニアとしての勘までが総合的に求められる仕事です。
このように非常に大変な仕事ですが、それだけに無事問題を解決した際には、お客様に非常に喜んでいただき、絶大な信頼が得られるのが大きな魅力です。
また、エスエムジーのトラブルシューターは人数が限られているので、残念ながらすべてのお客様の要望に応えられるとは限りません。そこで、現在、開発・販売しているのが「ENdoSnipe(エンドスナイプ)」という製品です。ENdoSnipe を利用することで、専門技術をもったトラブルシューターでなくとも、ある程度ソフトウェアに潜む問題を発見することができます。つまり、JaTS で培ったノウハウを、ソフトウェアの形にして提供しているわけです。ENdoSnipe は、新しい技術やアイデアをふんだんに盛り込んで開発していますから、このような製品開発に興味ある人にとっては、非常に面白い仕事でしょう。
最初にお話ししたように、ソフトウェアは人間が手で作らなくてはならないものであり、開発するシステムが大規模なものになるほど、より多くの人手がかかります。
プロジェクト失敗を防止する手法である「開発予報」。その実現ソリューション『DevCast』を
当社では提案しています。
そこで問題になることは何でしょうか。それは、全体の状況が掴みにくくなるということです。プロジェクトの進行を管理するマネージャと呼ばれる立場の人は、さまざまな事柄を気にしなくてはなりません。予定通りの品質が確保されているか、予算はオーバーしていないか、予定通りに作業は進んでいるのか・・・、悩みの種は尽きません。なお、ここで挙げた3つの心配事は、一般に「QCD(Quality,Cost,Delivery)(品質、コスト、納期)」と呼ばれていて、システム開発に限らず製造業一般で重視されている要素です。
さて、このように QCD を確保するにあたって、とりわけソフトウェアで難しいのは開発対象が目に見えにくい、ということです。システム開発における最終的な成果物は、仕様書などのドキュメントであったり、コンピュータを動かすための何十万、何百万行にも渡るプログラムであったりします。しかし、これらもコンピュータの中に電子化されて保存されるため、たとえば作成した文書やプログラムが印刷物として目の前に山と積まれていく・・・といったことはないのです。
目に見える建築現場と目に見えないソフトウェアわかりやすい比較対象として、ビルやマンションの建築現場を想像してみましょう。ビルやマンションの建築では、大勢の人が関わります。しかし、最終的にできあがる建物は、私たちが見たり触ったりできるものですよね。素人の私たちが周りで見ていても、少しずつできあがっていく様子がわかります。
一方、ソフトウェアは形がないため、現場で実際に働いている人間たちにすら、できあがっていく様子がわかりにくいのです。さらに大変なことに、現在のシステム開発では、IT 業界のピラミッド構造やオフショア開発のため、様々な会社で様々な人たちが分担して開発をしており、時には海外の人々と協力し合って一つのものを作ることもあるのです。
このような状況で QCD を確保するのは非常に難しく、プロジェクト管理者の悩みの種になっています。
そこで、エスエムジーが提案しているのが「開発予報」という考え方です。エスエムジーの提供する「PROMA-C(プロマシー)」というサービスでは、各種ドキュメントやプログラムなど、システム開発における成果物をすべてエスエムジーの提供するサーバ(コンピュータ)へ格納します。
PROMA-Cがプログラムを自動レビューします。
これらの成果物をコンピュータが自動的に調べることで、今までは目に見えなかった状況がわかるようになります。たとえば、誰の作業がどの位進んでいるのか、プログラムにバグはないか、一定の基準にしたがってプログラムが書かれているかといったことが自動的に調べられ、問題があればプロジェクト管理者に問題点としてレポートされるようになります。
このような作業は、いままで「レビュー」といって人間がチェックしなければなりませんでした。しかし、何百ページにおよぶドキュメントや何百万行ものプログラムを人間の手で完全にチェックするのは不可能です。これらの作業を少しでも自動化し、プロジェクト管理者がプロジェクトの見通しやすくすることで、システムの品質を上げる手助けをするのが、PROMA-C の目指していることなのです。
PROMA-C の目指すサービスは、世界でもまだあまり例がないため、新しいアイデアが生かしやすい分野でもあります。また、ネットワークの特性をふんだんに利用することから、インターネットに興味のある人の参加も期待しています。あなたのアイデアとやる気を、ぜひPROMA-C に生かしてみませんか?
エスエムジーの技術コンサルティングは、エスエムジーの中でも特に経験を積んだエンジニアがお客様の抱える技術的な問題について、解決策を提案するサービスです。
このコンサルティングは、エスエムジーと同じようにソフトウェア開発を行う企業を対象としています。取り扱う問題には様々なものがあるため一概にはいえませんが、例として以下のようなものがあります。
・自分たちの仕事にあったフレームワークを開発したい!でもどうやって設計すればいいの?
→ フレームワークの設計ノウハウを教えます!
・いま話題の○○を開発に使ってみたい!でも本当に使えるの?
→ 利用する上での課題を一緒に挙げて、調査を行います!
・世の中には便利なツールがたくさんあるのに、うちのエンジニアは全然使ってない・・・もっとみんなが使ってくれるようにしたいんだけど。
→ 現場のエンジニアが簡単に使えるようにまとめて、導入セミナーも行いましょう!
本質的な問題改善を提案します。
お客様から相談される問題は本当に多岐にわたるため、それらの問題を一緒に共有するためには経験と知識が求められます。それだけに、一緒に悩み抜いたすえに問題を解決できたときの達成感は非常に大きなものです。お客様となる企業はエスエムジーの何十倍以上の規模を持つ大企業が多いですから、自分の担当する問題が解決したときの影響力も非常に大きなものになります。
また、フレームワークの例など開発が関係するような案件では、お客様からの信頼を得られると実際の開発の受注につながる例もあり、技術コンサルティングは営業活動の一環にもなっています。
エスエムジーでは次世代の人材を育てるために、教育活動に非常に力を入れています。
基礎から最先端の技術に渡り、丁寧にレクチャーします。ぜひご利用ください。
一方で、会社だけの枠ではなく社会全体として捉えてみると、IT 業界はまだまだ発展途上であり、技術の移り変わりが非常に激しい業界です。このような中で、一人一人のエンジニアが技術力を上げていかなければ、業界全体の技術力向上にはつながりません。
しかし、エンジニアが個々人の努力で多岐にわたる技術を身につけていくのが困難なことも、また事実です。
そして残念ながら、たとえ情報系の学部/専攻を卒業
していたとしても、そこで学んだことが即戦力とは
ならないほど、大学で教える内容と実際の現場で使われている技術は乖離してしまっています。
エスエムジーでは、社内教育で培ったノウハウを生かし、主にエンジニア向けに各種基礎技術や最新技術について短時間で知ることができるセミナーをサービスとして実施しています。
また、技術コンサルティングとあわせて、お客様の実情にあった内容のセミナーを独自に企画・提案し、テキスト作成から講師派遣までを行っています。短いものでは2時間程度から、ときには2日間に渡ってみっちり基礎を学習するセミナーまで、さまざまな内容を企画しています。
学生さん向けには、毎年各大学やエスエムジーのオフィスで Java の無料セミナーも開催しています。プログラミングを学びたいという方はもちろん、エスエムジーの教育サービスに興味ある方は、ぜひ参加してみてください。
教育サービスは、「人に物事を教えるのが好き!」「テキスト作成やプレゼンテーションが得意!」という人に、ぜひお勧めしたい
業務です。




