ネットを使ったサービスは、発想力もさることながら、そのサービスで利益を出すことも一筋縄にはいきません。参入障壁が低い業種だと競合するサービスもどんどん立ち上がっていくからです。そのようなサービスで長期にわたってビジネスとして利益を出し続けるのはさらに簡単ではないと思います。
また、一度でも使い勝手の悪い評判が広まりユーザーが離れて行ってしまうと、そこから巻き返すことには大変な投資を伴います。
質の高いサービスを提供し、利益を出し続けるためにも、システムのリリースサイクルを短くし、ユーザーに価値を提供し続けることが重要となります。
システムのリリースサイクルを短くするには?
Webのようなフロントエンドの分野では顧客に好まれる使い勝手を効率よく探求するための手法がいくつもありますが、一方、基本となるサービスなどを提供するバックエンドシステムではどうでしょうか?
バックエンドシステムではサービスのフレームワークが変われば利用するミドルウェアやデータを受け渡しするツール類の開発が新たに求められます。バックエンドシステムでも新規サービスや更改サービスを短期間で提供するには、それなりの開発手法が必要です。
システムのリリースサイクルを短くするにはどのようにすればよいでしょうか?
プログラマーやテスターの技術習得や強いリーダーシップの元で Agile や XP に取り組まれている企業もあると思います。開発手法を変更すると開発環境やテスト環境へのしわ寄せが出てきます。エンジニアは居るがテストできる環境がない、環境を空くのを待つ、無駄な待ち時間が増える、という具合に開発手法の変更により大変なムダが発生する可能性もあります。そのため、小手先の開発手法の変更には、サービスリリースを取り巻くステークホルダー全体が最適化されている必要があります。
インフラ提供の自動化・仮想化による環境整備
例えば、AWS EC2 に代表されるようなインフラの自動構築の環境を用意する、というのも大切な取り組みです。ある程度の規模の企業であればネットワーク、サーバー、ストレージ、データベース(DB)とアプリケーションを自動的に切り出す仕組みを実装しているところもあると思います。もしくは初めからクラウド上で開発することもあると思います。
そのようなインフラ提供の自動化は一般的な取り組みになっていますが、一つ大切な要素が抜けています。提供されたインフラにデータが全く入っていないため、引き渡された環境だけでは利用ができない事です。
後編では、引き渡された環境にどのように効率的にデータを投入できるかを説明します。