メソッド屋のブログ

米マイクロソフト Software Development Engineer 牛尾の日記です。ソフトウェア開発の上手なやり方を追求するのがライフワーク。本ブログは、個人の意見であり、所属会社とは関係がありません。

機能を追加しないことで競争力を高める

 最近、アジャイル開発チームとして開発を実施している。とても複雑な機能を実装していて、なかなかスピードが出ない。しかし現行の機能は長年磨かれてきたもので、さまざまなベンリ機能がついている。そのスマートデバイスバージョンを企画/開発していたりする。長年現場磨かれてきただけはあって、本当に良く工夫がされている。手の入れようも無いぐらい洗練されている。だから大変なのだ。どうやっても、現行と同レベルのベンリ機能を普通で考えたら超えられない。


 だから、ちょっと一休みして、Appleの出しているiOSのユーザインタフェースガイドを見直して見た。そこに「ユーザエクスペリエンス」を向上できるヒントがあるかもしれないと思ったから。


iosユーザーインターフェイスガイド
http://developer.apple.com/jp/devcenter/ios/library/documentation/MobileHIG.pdf


ipadヒューマンインターフェイスガイドライン
http://developer.apple.com/jp/devcenter/ios/library/documentation/iPadHIG.pdf



 見直してみると、一番強調されていたことは、「機能を削減しなさい」ということ。80%のユーザに対応する機能をつくりましょう。100%のユーザに対応すると大変なことになるから。


 これを読んで目が覚めた。入力しないといけないと思っていた項目を自動入力含めて、全部入力しようとするから大変なんだ。全項目入力しようとしなければもっとシンプルになるし、こんなにも工数がかからない。もしかすると、これらのベンリ機能の数々も、項目が歴史的な経緯で増えてるからであって、もっと入力する項目を減らせば、ベンリ機能の大半はいらないかもしれない。


 そんな事を考えていると、投資対効果という意味ではなくて、機能を実装しない事が競争力を高めるんだという事に気がついた。企画する側、つくる側からすると、できれば機能は実装したいけど、リソース面、コスト面で泣く泣くあきらめてるけど、無限にリソースと時間があったとしても、機能は沢山実装しない方がいいかもしれない。ある意味当たり前なんだけど。


 機能を実装すると、企画したり作ったりする側は、いいね!って思うんだけど、使う側からすると、変更に時間がかかるだけではなくて、よくわからん機能が沢山あると、わかりにくくなったり、使いにくくなってしまう。世の中にあるサービスでも機能追加が価値につながるとは限らない。マイナスになるケースは沢山ある。


 Lean Startup企業のサービスとかみると、サービスはとってもシンプルだけど、コアのところは実装している。そんな企業の人に聞くと、2Wで最初のをリリースしたとか、毎日フィードバックを受けてサービスを更新しているとか言ってたりする。それはきっとシンプルだからできることなんやなぁと今頃実感した。


 シンプルやから俊敏になるし、シンプルやから、余計なコストがかからないし、シンプルやから変化に対応しやすい。そして、シンプルやから、わかりやすいシステムになる、シンプルやから、余計な工数がかからない


アジャイルの重要な考えに「シンプル」「優先順位の順番をつける」とか「価値に基づいて考える」というのがあるけど、ほんまにその通りやなぁ、、、と実感した今日でした。