Ruby on Rails 受託開発2015年3月~2011年3月
Ruby on Railsを使い、クラウドとの連携など、新たな機能拡張を続けるEMCジャパン。そのシステムの基盤を構築するまでには、拡張性の低い既存システムに対する課題や未知のデータとの格闘など、克服すべき壁がいくつもあった。
EMCジャパンがCuonと共にどのようにそれらを乗り越えたのか、詳しく聞いた。
EMCジャパンは、データストレージ分野のハードウェア製品を中心に、グローバルに展開するEMC Corporationの日本法人です。情報インフラの設計・構築では世界で広く認知されています。
私の所属するマーケティング本部 マーケティング・コミュニケーション部では、日本市場における潜在顧客や既存顧客とのコミュニケーションをしっかりと取り、当社をアピールする業務を担って います。具体的には、広報・宣伝から、セミナー開催促進、既存顧客との関係管理などです
ハードウェアのリース事業において、各種リース機器のステータス管理を行う社内用Webシステムです。
現在、どの機器が誰と契約中か、その契約内容、設置場所など、管理方法が社内の部署ごとに分けられていたものを、システム統合して営業効率を高める目的があります。
また、新たに加わってくる営業メンバーへの引き継ぎや情報共有の効率化という目的もあります。元々、私達のような外資系企業では営業メンバーの入れ替わりも多く、新しいメンバーが顧客情報を即座に把握し、共有するツールが必要です。
システムが参照する元データは本国のマスタDB(Oracle、SQL Server)にて管理しています。これらのDBに接続し、それぞれのフォーマットからデータを抽出・加工して今回のシステムのMySQLに格納・利用する仕組みで、さらにリース事業に関わる独自の情報を付加できます。
どのようなデータが抽出元のDBに格納してあるのかが全く見えない状況から始め、情報の精査はシステムによる可視化が行われてから分かる部分が多くありました。そのため、従来のウォーターフォール型の開発ではなく、随時要件の変更が可能なアジャイル型の開発で実施しました。
プロジェクトの期間は約4ヵ月(2009年7月から11月まで)で、要件定義を随時実施し、プロトタイプの設計・開発に1ヶ月、その後の本番用システムの設計・開発に 3ヶ月という形で行いました。当社は主に私がプロジェクトを担当し、Cuonのメンバーはプロジェクトリーダー1名、プログラマー2名という体制でした。
Cuonには、当初のシステム開発が終了した現在も、内製化支援という形で依頼しています。私たちが自分でシステムの機能追加を実施することに対してソースレビューやアドバイス、時には実際の開発等の支援を頂いています。
はい。私が前任者よりプロジェクトを引き継いだ際に、他社がPHPで開発したシステムが既に存在していました。
ですが、既存のシステムでは対応できない部分や、使い勝手に対する改善要望が 多く出てきました。そこでそのシステムを開発した会社にカスタマイズを打診したところ、高額な見積もりが出てきて、対応も満足できるものではありませんでした。
高額な見積だった理由として、既存システムが拡張性や柔軟性に欠けていたことがあります。そのシステムを開発した会社でも拡張することが難しく、当然、私達も触れることができませんでした。システムを開発した際には、その時点でベストと思われるものを作ったと考えられますが、変化していくスピードにシステムが対応できませんでした。そのような経緯から、今回、システムを改めて1から開発することにしました。
システム開発会社に全て任せきりにならないよう、自社で内製化することを前提に、計画しました。内製化の目的は、自社での習得・拡張、ノウハウの蓄積やコスト低減です。
では、そのためにどのような開発のプラットフォームが良いかと考えた時に、Ruby on Railsを選びました。これには、私自身が以前、Ruby on Railsを触った経験があることに加え、既存システムの開発言語だったPHPでは、今回のような業務アプリケーション向きの機能が少なく、逆にJava等では複雑すぎて内製化に向かないという理由があります。
Ruby on Railsをキーワードに開発会社を探したところ、東京IT新聞のCuonの記事を偶然見つけました。まずは話を聞いてみようと思って問い合わせたところ、Rubyについての話で盛り上がりました。
次の2点が挙げられます。
• Ruby on Railsに対するフォーカス度合いと、チャレンジ精神が評価できた
• Cuonには、NTTデータに以前在籍していたメンバーがいることで、安心感・信頼感を感じた
「何でもやります」ではなく、Ruby on Railsにフォーカスするという会社としての姿勢と、当社の要望に対して新しい手法を一緒に考えて、一緒に作って行くチャレンジ精神が素晴らしいと感じました。
東京IT新聞の掲載紙面イメージ
インターネット上のWebサービス系の会社ではRuby on Railsを使う会社は多くあると思いますが、それに比べると、業務アプリケーションに使われることはまだ多くありません。業務アプリケーションを開発するには、その方面の経験・知識を持った人でなければ難しいと思います。その点 で、Cuonは、社長も含め、業務アプリケーションの経験が豊富で、任せるには安心できました。
これには3つ理由があります。
• Ruby on Railsを使ったアジャイル開発に同意して頂き、開発の進め方も工夫して頂いたこと
• 開発費が最も安かったこと
• 内製化の計画を前提に協力いただいたこと
今回のシステムでは、抽出する対象のデータ構造を調査すれば調査するほど、未知のデータが現れてくるため、最初に全てを決めるウォーターフォール型開発は向きませんでした。
まずは動くものを作り、試すことを繰り返していくアジャイル型開発である必要がありました。それにはRuby on Railsが適していました。
この点で、CuonがRuby on Railsにフォーカスしていることが評価できました。
Ruby on Railsで開発を行う会社は、Cuonの他にもあります。実際に、相見積もりではCuonの他に、既存システムを開発した会社と、Ruby on Railsの開発を行う会社の計3社に打診しました。
その中で、Cuonは、群を抜いて安かったです。
Cuonを探したきっかけでも触れましたが、私は、システムは自分達で改善していけることが重要だと考えています。
しかし、開発会社からの観点では、最初にシステムを開発し、次のフェーズでは内製化支援という切り替えを行うことは難しいと思います。
Cuonは、それを試行錯誤しながら、支援の仕方を一緒に考えて頂ける姿勢が素晴らしいと感じます。
いいえ。最大の理由は1番目の「アジャイル開発への理解」です。
ただ安いだけでは発注しません。安さには理由があるはずです。Ruby on Railsで進めて、効率的な工数と金額を合理的にCuonが算出できたことが重要です。それはCuonのRuby on Railsに対する深い理解から来るものでしょう。
他の会社の見積もりは、Ruby on Railsにも関わらずウォーターフォール型と同じような工数・金額で、単純にプログラム言語をRuby on Railsにしただけの見積りにも映りました。
次の事が言えます。
• フレンドリー、かつ協力的で、プロジェクトを進めやすかった
• プログラムのソースコードが頭から次々に出てくるので、システム開発にかけるプロフェッショナル精神を感じた
開発に関しての考え方の芯の部分はぶれずに、かつ、こちらの要望に対して柔軟に対応して頂きました。要望は常に変わることを理解して頂き、協力的でした。
また、ソースコードが頭から次々に出てくる点は、私達の辞書を見ながらの開発とは違い、プロフェッショナル精神を純粋に感じます。その他、アジャイル型開発の進め方に関しても、プロフェッショナルとしての工夫が随所に見られました。
実際にプロジェクトを経験して、2点あります。
• 次々に出来上がる機能を実際に使うことで、要望や抽出元データを明確化でき、要件を詰められた
• 開発プロジェクトの会議中、実際のシステムをプロジェクターで投影して操作しながら、その場ですぐに修正して確認できるスピードの速さを実感した
特に1点目は、印象的です。現場の人間に実際にシステムを使ってもらうと、考慮が必要な制約、業務、データなどが次々に出てきました。この量は当初の想定を超えるものでした。
間違いなく大きな手戻りになっていたか、予算の関係で戻ることも出来ずに終わっていました。実際にウォーターフォールで厳密に開発していたら、要件定義だけで1年かかったかもしれません。
アジャイル開発を実施するという最初の判断が間違っていないことは確実でした。
当然、続々と現れる要望やデータ項目に応じて、早く完了するために妥協するべき機能も出てきました。
ですがユーザーの観点からは、機能の不足や不具合があったとしても、運用などで回避可能なものであれば、そこまで重要視しません。逆に、運用を開始するま でのスピードを重視しています。一部機能が未実装でもまずは早く開始することで、機会損失を減らし、フィードバックを早く多く得て、改善していくことが重要です。
この観点から、アジャイル開発のスタイルとCuonの姿勢が、今回のプロジェクトの特性や私たちの考え方に適していました。
はい。3点あります。
• Cuonメンバーの高いスキル
• 柔軟な対応
• 整備されたインフラ環境
1点目、2点目はプロジェクトを通して感じたことと同様です。設計思想を理解し、内製化しやすいプログラムを作って頂きました。
3点目に関しては、プロジェクト管理ツールや、バージョン管理ツールがCuon社内に用意され、それを私たちがログインして使える環境を構築して頂きました。
発生した仕様変更や新たに判明したことなどを都度更新することで、常に共有することができました。定例ミーティングも実施しましたが、そういったツールのお陰で改めての説明は不要でした。
順調に稼動しています。社内からも徐々に、そのシステムの価値が認知されてきました。
追加したい機能などの要望も出てきていますが、内製化しやすい設計のお陰で、私達のほうで様々な機能を追加できています。SalesForceとの接続機 能も追加することができました。当然、内製化支援をして頂いているお陰で、様々なアドバイスを頂いていることも助けになっています
今後も、機能を拡張していこうと思います。例えばセミナー申込者に対する受講票の発行機能はSalesForceにもある機能ですが、これを自前で作っていけば、ライセンス料が不要になります。他にも、CMS(コンテンツマネジメントシステム:Webサイト管理・更 新システム))のような機能も追加しています。Ruby on Railsは、機能拡張を柔軟にできるという特徴を持っていますが、内製化を通じてそれを実感しています。
今回、お陰さまで私達の要望を自分達で実現できるプラットフォームを作れたので、様々な機能を私達で追加できています。Cuonには今後も、内製化の面で支援を頂き、また、任せる所は任せて行きたいと思います。
更に、Ruby on Rails自体の普及や、開発環境の容易な構築方法、見積もり手法の確立も含めて、様々な面でRuby on Railsの発展を牽引していくことをお願いします。
Cuonには、それができるだけの潜在力があります。
2010年創業以来のRuby on Railsによる開発実績をベースとした社内開発フレームワーク”Cuonology"。本フレームワークを活用しお客様のご要望を満たすシステムを高品質・短納期で実現いたします。
「WebサイトのUIをよりリッチしたい」、「フロントエンドの開発と、バックエンドの開発を効率的に分離したい」といった理由により、JSフレームワークの利用が増えています。
Rubyベース米国のオープンソース・ヘッドレスeコマースプラットフォーム「Spree Commerce※1」を基盤に、ECサイト構築から運用保守までトータルでサポートする新サービスです。