そごうソフトウェア研究所

SOA、開発プロセス、ITアーキテクチャなどについて書いています。Twitterやってます@rsogo

モバイルアプリ向けプラットフォームAppPotをリリースしました

僕がNCDCの中でプロダクトオーナーを担当しているAppPotというソフトウェアが製品化されました。

f:id:begirama:20131018124306p:plain

AppPotはいわゆるMBaaSといわれるソフトウェアに含まれる下記のような機能を企業内で使い易いようにしたものです。

  • デバイス・サーバー間のデータ同期
  • Push通知
  • アプリを使用するユーザーの管理と認証

などなど


企業でこれまでPCを使ってやっていたような業務をタブレットを使ってどこでもできるようにするためには、既存のシステムとの連携が必須になります。

そこで、AppPotでは他システムと連携するためのアダプタを用意しています。


詳しくは製品サイトを見て下さい。
http://app-pot.jp/


現在、クラウド上でだれでも試せるトライアル環境を準備中です。できあがったら、使ってみてフィードバック下さい。


製品サイトの方では、誰にでも分かりやすいようにという制約がありますが、
個人のブログの中では内部のアーキテクチャや、プロジェクトの話しみたいなテクニカルな内容も書いていきたいなぁ。

日本の企業でのMEAP(Mobile Enterprise Application Platform)のニーズとは?

先日はモバイルアプリ向けプラットフォーム、MEAP(Mobile Enterprise Application Platform)とは何なのか。というタイトルでMEAPの概要を書きました。

今回は、日本のマーケットでのMEAPのニーズについて書きたいと思います。

f:id:begirama:20090605005119j:plain

企業マーケットにおいてこれまではモバイル向けのアプリは
さくっと低コスト、短期間で作成したいというニーズが高い状態でした。
理由としてはこのようなものがあったと思います。

  • 他のシステムから独立していることが多い
  • 既存の業務システムに比べて機能が少ない

例えば、カタログやデモを見せるだけのアプリや、
入力された情報に対してアプリの中で完結して結果を返すだけのアプリが該当します。


ところが、近年、スマートデバイスを一通り導入した企業では、
営業部門などの利用部門を中心にもっとコアな業務で
スマートデバイスでやりたいという要望があがっています。


その傾向を、MEAPの3つのメリットごとに整理してみると、

アプリに対する他システム連携のニーズ

既存の社内システムのデータをスマートデバイスから見る、
スマートデバイスから入力したデータを社内のシステムに
流し込むには、データの連係が必要になります。


社内システムはWebサービスのインターフェイスを持っているものもあれば、
ERPパッケージや、ホストのようなプロプライエタリなインターフェイスしか
ないものも存在するため、個別に開発するのは大変です。


また、社内システムに接続することから、これまで以上の
セキュリティが求められます。


共通機能を提供するニーズ

企業が持っているアプリが増えてきています。
ある企業ではプロダクトラインごとにアプリがあるので、
数十個のアプリが存在します。


これまでのスマートデバイスの導入期は、標準化よりもスピードが求められますし、
ベストプラクティスも無い状態でした。


しかし、アプリの数が増えてきて、導入期から展開期に入ると、
同じような機能や、画面展開の共通化をしたくなってきます。

コストも下げたい。

そのような時にモバイルアプリに必要な共通機能を標準化して
提供するニーズは非常に高いと思います。


また、認証や、データの暗号化を共通で提供することで、
個々のアプリ開発プロジェクトに品質が依存せず、
一定のセキュリティが保たれるというメリットもあります。
これもセキュリティに関するルールが厳しい日本の企業のニーズにあっています。


マルチデバイス対応のニーズ

こちらはどうでしょうか?
日本の場合は端末を社員に配ることが多く、個人の端末から利用を
許可している企業もメールと、Webブラウザからのアクセスだけだったりするので、
社内向けのアプリではあまりマルチデバイス対応のニーズは多くないように思います。



ということで、他システム連携、モバイルアプリ向けの共通機能の
提供という点ではMEAPのニーズは今後、増えてくると思います。

後は、クラウドベースのBaaSを使うのか、社内にMEAPを構えるのか、
どのタイミングで投資をするのかとうのが検討ポイントでしょう。


モバイルアプリ向けプラットフォーム、MEAP(Mobile Enterprise Application Platform)とは何なのか。

MEAPという言葉をご存知でしょうか?
最近、日経コンピューターなんかにもちらっと出始めていますが、
Mobile Enterprise Application Platformの略で、そのまま訳すと、
企業で使用するモバイルアプリ向けのプラットフォームです。


調査会社のガートナーが2008年のレポートの中で使い始めた言葉で、
ガートナーは以下の条件に当てはまる企業はMEAPを検討する価値があると言っています。
・3つ以上のモバイルアプリをサポートしている
・3つのモバイル用OSをサポートしている
・少なくとも3つのバックエンドのデータソース(既存システムとか)と連携が必要


MEAPとはアーキテクチャであり、考え方です。
別に、技術標準があったり、この機能を持ってないとMEAP製品とは言えないというのはありません。

とはいえ、一般的にMEAPをうたっている製品が良くサポートしている機能はあります。
次の図は以前社内の技術報告会で使った資料ですが、青い部分が良くMEAPを実装した
製品で提供されている機能です。
f:id:begirama:20130827150212p:plain

ここでは大きく4つの機能群に分類してみます。
1.サーバー側でどんなモバイルアプリでも必要になりそうな共通機能を
  提供することで開発コストを下げるための仕組み。
  認証、データのキャッシュや同期のようなアプリから使用される機能を提供する。

2.バックエンドのシステムに接続しに行くためのコネクター
  例えば、DBへのアクセスや、Webサービス、FTPなどにノンコーディングで接続できる、など。

3.複数OSでの開発を用意にするようなクライアント側のSDK
  サーバ側のAPIをクライアントから使いやすいように
  SDKを提供していることが多いようです。

4.アプリや、ユーザなどを管理するための管理機能

次回、MEAPのニーズについて書きます。

オフショア開発を選んだ理由ー世界中のエンジニアとチームを組む

今、NCDCのいくつかのプロジェクトでは、ベトナムで開発を進めています。
何故かというと、もちろんコスト面もあるのですが、近いうちに実現させたいなぁと思っていることがあるのです。それは世界中の優秀なフリーランスの開発者でチームを作って製品を開発することです。


日本だけではなく、グローバルで開発者を募ることで、ベンチャーでは普通雇えないようなデベロッパーを集められるんじゃないかと思っています。

f:id:begirama:20090323171858j:plain


どこかの企業に発注すると、エース級と、普通のプログラマーが混在したチームになります。これはしょうが無いですよね。自分もSIerに居たから良く分かります。

会社という仕組みの中では、ある程度の規模で人を集めるとなると、エースばかりを雇うことは難しい。そうすると複数のプロジェクトにエース達を分散させないと、プロジェクトの数がさばけない。


今の時点で、オフショアのラボ型契約で単価は安いし、メンバーは1人1人面談しているので皆、結構優秀です。

ただし、あるボスの下に所属している人から選抜するから、どうしてもエースばっかりは出してくれない。例えば、隣の部門から優秀な人を引き抜いてくれたりはしないわけです。


ですので、これから目指しているのは、自社メンバー主体で個人のデベロッパーを雇う。
個人のデベロッパーはグローバルから募集する、の2点です。


たくさんの問題が予想されます。
例えば、
・国民性や、言語の違いによる認識がずれてた
・リモートで作業することによる意思疎通のオーバーヘッドや、どう作業を管理し、評価するのか
・モチベーションをどう上げてもらえるか


今年はリモートで海外のエンジニアと仕事をすることに慣れて、自分達のスキルを上げないと行けないし、インフラを整えるための準備期間だと位置づけています。


こちらもどうぞ。
ベトナム・オフショア開発(準備編) キックオフに行ってきました

ベトナム・オフショア開発(準備編) キックオフに行ってきました

この週末は海の日で、三連休でしたね。
日本は休みだけど、日本以外は平日ということで、月曜日にベトナムのIT企業に訪問してきました。ベトナムまで行って、打ち合わせをした理由は、自社で新しく立ち上げたプロジェクトのキックオフのためです。

f:id:begirama:20130717210930j:plain
日曜日に移動して、月曜日の朝から夕方まで打ち合わせて、月曜日の深夜に日本に帰国するという日程でした。書いているだけで、思い出して疲れてきます・・・。
フォーはしっかり食べてきました。

事前準備

設計から一緒にやってもらえる会社を探していたので、少し前から、何社かに事前に担当してもらえる候補のエンジニアの方とインタビューをさせてもらっていました。
インタビューの観点としては、開発だけを依頼するのではないため、
・アーキテクトのロールができる人をアサインしてもらえるか、
・リモートでの開発でもコミュニケーションが取れそうか、
という2点です。

やっぱり経験のあるエンジニアは、こういう場合どうなるの?と良いポイントを質問してくるし、やったことないポイントでもこんな風にやったら行けるんじゃないの?という案が、筋のいい方式ですよね。

契約のタイプ

請負型と、ラボ型と良く呼ばれる2つのタイプがどこの会社もありました。
ラボ型契約では、何人かのエンジニアでチームを組む契約をして特に成果物を定義しません。今回は自社の製品を常に開発し続ける目的なのでラボ型を選択しました。ラボ型では生産性が、発注側のコストに大きく影響するので、特にエンジニアとのインタビューは重視すべきです。要件をどれだけでも追加、変更できますが、ちゃんとものができあがるかの責任はこちら(発注側)にあります。

こちらがお客さんから請負契約で受けている案件は、仕様もスケジュールも費用もだいたい決まっているので、同じオフショア開発でも請負型の契約をしています。請負契約の場合、生産性はある意味、受けた側の中の話です。


今回のキックオフでは、事前に話もしてあったので、特にアーキテクトをやってもらうAnh Leは議論にも積極的で、いいチームができました!これからプロジェクトをやっていくのが楽しみです。

他にもベトナムの先進的な別のIT企業にも話を聞いてきたので、また書きます。

日本Androidの会の2013年6月定例会に行ってきた

日本Androidの回に行ってきました。
https://www.android-group.jp/event/event19.html

内容は下記でした。
1.HTML5最新動向: オフラインで動くPackaged Web Appのクラウド利用
2.Android最新動向: Google GlassのUI/UXとGlass Wareの作り方
3.Android最新動向: Google IO報告 & Android Studio

会場はデジタルハリウッドさん。

1.HTML5最新動向: オフラインで動くPackaged Web Appのクラウド利用


Packaged Web AppはHTML5で作るんだけど、オフラインでも動くっていうのが当たり前。
一方で、クラウドと連携するのが当たり前。


先生の資料でもchromeのパッケージなんかを使っている部分もあって、やっぱり作る側からすると多くのユーザに使ってもらいたいという思いがあるから、どのブラウザでも動いて欲しい。一方で先進的な機能は一部のブラウザでしか動かなかったりというジレンマがある。
まあ、Chromeだったらスマフォでも、PCでも動くというのは、それはそれでありかも知れない。


この辺のサーバとのデータの同期周りは自分で開発しているので、それが仕組みとして提供されたら便利。

2.Android最新動向: Google GlassのUI/UXとGlass Wareの作り方

こちらはオフレコとのことで、省略。
面白いねぇ、早く欲しいねぇ。

3.Android最新動向: Google IO報告 & Android Studio


海外のエンジニアはIntelliJ好きだね。
Android Studioはまだまだバグもあるし、実プロジェクトならEclipseだろう、というお話。チーム人数多くて、開発環境を標準化するならEclipseだろうね。
逆に数人でやるなら、Android Studioを試してみるのもありかも。

Androidでおしゃれなデザインをするために参考になるサイト

僕はアプリのデザインを考えるとき、Pinterestで集めている好きなデザインを眺めて、こんな感じかな?というので始めます。
それ以外で、最近参考になったサイトをいくつか。

Designing For A Maturing Android
http://mobile.smashingmagazine.com/2013/05/08/brave-new-world-designing-for-a-maturing-android/#comment-648794
Androidで成熟したデザインをするためのポイントが解説されてる。


Android niceties
http://androidniceties.tumblr.com/
Androidのかっこいいアプリのスクリーンショットを集めたサイト。


20 Great Examples of the Flat Trend in Web Design
http://line25.com/articles/20-great-examples-of-the-flat-trend-in-web-design
Googleと言えばFlat Design、Flat DesignといえばGoogleかWindows8ということで、Flat Designのサンプルが集められているサイト。

最近Google カレンダーアプリの時間設定も変わりましたね。
f:id:begirama:20130602202109p:plain