検索
特集

「ソフトウェア品質向上の”変”2016初夏〜FinTech、IoTを見据えた”テスト自動化の勘所”」セミナーリポート(前編)ゴールドマン・サックス、マネーフォワードのサービス開発の在り方とは(1/2 ページ)

ITサービスをリリース・改善するスピードが、ビジネス差別化の要件となっている今、サービス開発の在り方にも変革が求められている。では具体的に、どのような変革が必要なのか? @IT編集部が6月に主催したセミナー「ソフトウェア品質向上の”変”2016初夏」からそのポイントを紹介する。

Share
Tweet
LINE
Hatena

 IoT、FinTechトレンドも本格化している近年、刻々と変化する市場に合わせて、顧客の求めるITサービスをスピーディに開発・改善することが、差別化に不可欠な取り組みとなっている。だが求められているのはスピードだけではない。サービスの安定性やセキュリティなど、さまざまな側面の“品質”も確実に担保できなければ、収益・信頼を失墜させることになってしまう。

 では、「スピードと品質の両立」をこれまで以上に高いレベルで求められている今、サービス開発はどうあるべきなのか? ――2016年6月15日、@IT編集部が開催したセミナー、「ソフトウェア品質向上の”変”2016初夏」で紹介された解決策や各種実践事例に、そのポイントを探る。

基調講演〜ゴールドマン・サックスの品質管理と人材育成

ALT
ゴールドマン・サックス・ジャパン・ホールディングス テクノロジー部 ヴァイス・プレジデントの上原玄之氏

 米国 ニューヨーク州に本社を置く世界有数の金融機関、ゴールドマン・サックスは想像以上の“テクノロジー企業”だ。金融市場でのビジネスを支える各種システム開発のために、同社にはグローバルで8000人以上のエンジニアが在籍。70のデータセンターで構成するプライベートクラウドで、11万8000以上の仮想サーバ、約7万7000のデータベース、22PBのストレージを運用している。これらを支えているのが同社テクノロジー部となる。

 基調講演、「ゴールドマン・サックス、テクノロジー部が語る FinTech時代、グローバルビジネスはこう“開発”する」に登壇したゴールドマン・サックス・ジャパン・ホールディングス テクノロジー部 ヴァイス・プレジデントの上原玄之氏は、「アプリケーション開発、プラットフォーム開発、インフラストラクチャ運営、テクノロジーリスク管理を行うチームをそれぞれ設置しており、Open Compute Project、Open Container Initiative、Java Community Process - Executive Committeeなど、グローバルな取り組みにも積極的に参加している」と解説。競争が激しい金融市場におけるテクノロジー活用の重要性を、同社の組織体制と取り組みを通じてあらためて印象付けた。

 同社で開発されたプラットフォームの具体例として「Marquee」「Symphony」「Orbit/Lagoon」が挙げられる。Marqueeは同社内で開発されたさまざまなアプリを顧客に提供するためのプラットフォーム。一例として投資判断を支援するアプリケーションが挙げられる。顧客は自身の投資スタイルに応じて、興味ある金融商品を選択したり、その詳細情報(過去のパフォーマンスやベンチマークとの比較など)を参照したりすることができる。同社内で使われてきたリスク管理機能、分析機能も利用できるとして顧客から好評を博しているという。

ALT
投資判断を支援するサービス「Marquee」の画面イメージ

 Symphonyはゴールドマン・サックスをはじめ、複数の金融機関が参加するクラウドベースのコミュニケーションプラットフォーム。当初は社内アプリケーションとして開発したものだったが、Symphonyと名称を変え、ゴールドマン・サックスその他の金融機関などで共同出資されたSymphony Communication Services Holdings LLCで開発を継続。一部の主要コンポーネントはオープンソースとしてGitHubで公開されるなど、さらなる進化を目指している。

 Orbit/Lagoonは、スマートフォンなどのモバイルデバイスで安全に業務メールやファイルを取り扱うためのプラットフォーム。Lagoonはモバイルセキュアコンテナであり、その中で動くメールクライアントなどのアプリ群の総称をOrbitと呼んでいる。同社ではBYODを積極的に実践しているが、「私物デバイスでも業界最高峰のセキュリティ基準を維持しながら、生産性を落とさない仕組みの開発に成功した」という。こちらも現在、Synchroness Technologiesと共同ベンチャーを立ち上げ、社外にも広く提供しているという。

ALT
ゴールドマン・サックス テクノロジー部 ヴァイス・プレジデント 伊藤博志氏

 このように、さまざまなソフトウェアの内製に取り組む同社だが、続いて登壇したテクノロジー部 ヴァイス・プレジデント 伊藤博志氏は、「一般論として、大小さまざまなエンジニアリングチームが開発を進めていく中で、ソフトウェア品質を均一かつ高いレベルで担保するのはなかなか難しい問題だ」と話す。

 「例えば情報共有ができていないために、他のチームと似たようなものを開発してしまう“車輪の再発明問題”や、異動先の開発ライフサイクル、ツールがこれまでとは違うために慣れるのに時間がかかり、生産性が低下してしまう問題、マニュアル作業でヒューマンエラーが発生してしまう問題などが挙げられる」(伊藤氏)

 こうした課題に対し、同社は「技術」と「人材」の両面から解決に取り組んでいる。その1つが「全社のチームが使う“共通のプラットフォーム”の構築」だ。

 再利用性向上の例として、同社内で開発された3つのプラットフォームが紹介された。1つは、金融商品のモデル化やリスク計算に特化した自社開発の言語・プラットフォーム「SecDB」。2つ目は、UIにおけるボタンデザインや各種機能など、さまざまな開発プロジェクトで共通してよく使われるものを「パーツ」として用意するフロントエンド・プラットフォーム「Web UI Took Kit」。

ALT
開発のスピードと品質を高いレベルで両立させるための「共通プラットフォーム」

 3つ目は「バックエンド・プラットフォーム」。ドメインモデルを共有することを目的とした自社内開発のモデリング言語や、ドメインモデルを基にREST APIを自動生成するフレームワーク、業務システムの実装を容易にするワークフローエンジンなどを用意している。

 すなわち、各開発プロジェクトでよく使う言語、機能、デザイン、ワークフローなどを標準化し、全社的に利用することで、ソフトウェアの再利用性を向上させるとともに、あらゆるチームの開発成果物に統一感あるUXを実現するなど、まさしく開発のスピードと品質を両立している格好だ。

  また、開発ライフサイクル管理においても、全プロダクトで共通プラットフォームを使用することで効率化を図っている。数値やグラフで品質を可視化することで、すぐに問題を把握、改善に取り組める仕組みなども作った。さらに「開発のトレーサビリティも確保することで、監査時の透明性と効率化を実現している」という。

ALT
ゴールドマン・サックスが考える「ソフトウェアの品質向上を目指すうえで必要不可欠なもの」

 コード品質については、定量的に計測可能な領域と、定性的な領域に分けて管理している。「定量的な品質」とは、コードスタイルや重複度、複雑性、テストカバレッジ、パフォーマンスなどが該当する。ビルドでの検査には、OSSの静的解析ツール「FindBugs」や「CheckStyle」、JavaScript用構文チェッカー「JSHint/ESHint」などを使用。静的解析ツール「SonarQube」を使った可視化も行っている。

 その他、パフォーマンス計測(メモリの使用量や速度など)など、ユースケースに応じてさまざまな検査項目を組み合わせて品質管理を実施。一方、定性的な品質――例えば可読性や拡張性、安全性、テスト容易性などについては、設計レビューやコードレビュー、ペアプログラミングなどで向上・維持を図っている。「例えば、バージョン管理システムにコミットする手前で変更をCI(継続的インテグレーション)ツールでビルドし、テストを通ってからコミットする仕組みや、コミット前にコードレビューする仕組みを導入している」(伊藤氏)。

 一方、人材面では“学ぶ文化”を浸透させ、エンジニアが常にモチベーションを持って技術力を高められる環境作りを心掛けているという。「ソフトウェアを作るのはエンジニアであり、管理体制を敷くだけでは品質向上につながらない」ためだ。

 具体的には、社内SNSやチャットシステム、ドキュメンテーションサイトによって、プロダクトや技術の最新情報、過去の情報を共有している他、コミット数やレビュー数、SNSへの貢献度などをポイント形式で数値化し、ランキングを可視化している。また、社内カンファレンスやハッカソン、イノベーションアワードの開催など、“エンジニアが自律的に成長する仕掛け”も実施。この他、新卒の社員には1〜2か月のグローバル研修や短期開発プロジェクトへの参加を、社員向けにはエンジニアリングの基礎研修や語学研修などを用意しているという。

 「ゴールドマン・サックスのソフトウェア品質や開発ライフサイクルの改善は、継続的に実施している。技術と人材の両輪を強化することが、各種施策をより良いものに進化させると考えている」(伊藤氏)

セッション2〜開発とテストを一元管理して効率化を図る

 開発のスピードと品質を両立できない原因の1つとして挙げられるのが、テストフェーズを要件/リリースと別々に管理していることだ。その結果、テストの進捗状況や不具合発生率などを、プロジェクト/要件ごとに分析したくてもできず、テスト結果や検出した不具合の修正状況を正しくトラッキングすることも難しくなってしまう。スプレッドシートでテストを個別管理している場合は、プロジェクト全体を俯瞰して開発を進めることも困難になる――。

ALT
リックソフト 西日本支社 ソリューション2部、栗本英一氏と祖父江良二氏

 こうした課題に応えるのが、リックソフトの提供するテストマネジメントツール「Zephyr(ゼファー)」だ。

 セッション2「テストマネージメントツール『Zephyr(ゼファー)』によるシステムテスト作業の変革」では、リックソフト、西日本支社 ソリューション2部、栗本英一氏、祖父江良二氏が登壇。これまで同社が取り扱ってきたAtlassianのソフトウェア開発支援製品群にZephyrを組み込むことで、品質を維持しながら短納期でのソフトウェア開発を実現できるという。

 Zephyrの「Zephyr Enterprise Edition」は、100カ国以上、7000社で導入されているテスト管理ツールだ。オンプレミス版、クラウド版があり、Webベースの管理画面を持つため、モバイルデバイスからの管理も可能だという。開発元のD SoftwareはAtlassianともパートナーシップを組んでおり、Zephyrとの親和性は非常に高いという。

 Zephyr Enterprise Editionでは、テストの実行計画からテスト担当者のアサイン、進捗確認までを管理できる。プロジェクトや要件、リリース単位でテストを登録・管理できる他、役割に応じたロールの設定、チームメンバーとのチャット機能、トレンドグラフや不具合の検出・対応状況などをリアルタイムに確認できるレポート機能などを持つ。課題、テスト、結果をひも付けて管理することで、プロジェクト全体を掌握し、効率的なソフトウェア開発環境を構築することが可能だ。

 また、効率化の手段として注目を集めるテスト自動化にも対応。例えば、「Bamboo」などのCI/CDツールと連携して単体テストを自動実行し、生成されたテストケースとテスト結果をZephyr Enterpriseに記録してレポートで確認することができる。「Selenium」で一連のブラウザ操作をスクリプト化し、スクリプトをZephyr Enterpriseのテストケースに登録、テストを実行したら、その結果をZephyr Enterpriseに記録する仕組みも構築できるという。

 両氏は「今一度、ソフトウェア開発環境を見直して、Zephyrでテコ入れ可能かどうかを検討してはいかがだろう。テストやテスト管理は、まだまだ効率化の余地がある」と締めくくった。

       | 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る