Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
Build Insiderオピニオン:高岡大介(7)

Build Insiderオピニオン:高岡大介(7)

新規サービス立ち上げ時の技術の採用とメタボリズムアーキテクチャ

2016年2月26日

開発者向けの新たな情報キュレーションサービス「TechFeed」(techfeed.io)の立ち上げの裏で開発者たちは何を考えていたのだろうか。

高岡 大介
  • このエントリーをはてなブックマークに追加

TechFeedのローンチ

 しばらくコラムも更新できずにすみません。実はフリーランスを卒業し、昨年から知人のベンチャーにジョインし、新サービスを作っていました。

 そういえばこちらのコラムでも以前「場合によっては会社員に戻ったり、起業したりすることもある」なんてことを言っていましたね。

 まさか本当にすぐにやってくるとは思いませんでしたが、これも巡り合わせ。いろいろある苦悩も楽しみながらやっています。

 そんなこんなで、昨年末にTechFeedというテクノロジ情報に特化した情報キュレーションサービスをプレビュー版としてローンチしました。

 天才ハッカー的技術も、現実歪曲フィールドも、若さも体力もない、アラフォーのオジサン3人組がいかにして新規サービスを始めたのか。というエモーショナルな話はいずれまたCEOにでも語ってもらうとして、今回はその開発の裏側も少しお話ししたいと思います。

開発に当たって大切なことと品質/コスト/納期のトレードオフ

 開発に当たって僕たちが大切にしていることは3つあります。まず最も重要なのは顧客(ユーザー)にどんな価値を届けられているのか、ということ。次にスピード。これは、開発速度はもちろんのこと、パフォーマンスに関してもです。そして、最後に自分たちが楽しいこと。

 できるかぎり全部を満たすことを理想としていますが、まぁたいていの場合はコンフリクトします。

 受託開発ならば納期を死守するため、価値(品質)と利益(コスト)を妥協することが多いでしょう。これまでやってきた受託プロジェクトでも大概はそうでした。

 しかし、自社サービス開発ではこれが全く逆転しました。当たり前ですが、自社開発では品質も納期もコストも全て自分たちで決めるんですね。そうすると、顧客に最良のものを、という大義の前にはどうしても品質に妥協したくない。けど弱小ベンチャーにはお金がない。なので削るところは納期になりがちなのです。

 特にエンジニア中心のチームでは、先々まで見越したフレキシブルで拡張可能なアーキテクチャで、プラットフォームに縛られないポータブルな開発環境を、と理想を追求しがちです。これは非常に甘美で危険な誘惑です。

 実際、僕たちも「Dockerコンテナーのオーケストレーションを活用したマイクロサービスアーキテクチャ上で動く、分散型機械学習と、React/ReduxによるReactiveでUniversalなシステムを!」と考えていた時期もありました。

 しかし、まだ何も生み出していない状況で、どんな機能が求められるのか、そもそもこのサービスに価値があるかも分からないような状況で、システムのポータビリティを高めることにどれほど意味があるのでしょう。ただでさえ少ないリソースをそんな先々の不確かすぎる懸念のために割く余裕はありません。

 できるだけ早くMVP(Minimum Viable Product:必要最低限な機能を持った製品)を作り、計測/学習のループを行う必要がある、と『リーン・スタートアップ 』でエリック・リースも言っていました。まだないサイトのSEOのためにUniversalなアーキテクチャを考えている場合ではありません。そんな思いで、まずは本当に必要最低限の機能として、テクノロジニュースを届けるメルマガのような形でスタートしました。

 最低限でもリリースしたおかげでいろいろな評価をいただくことができました。出さないと得られなかった気づきも多々あります。そのフィードバックを受けて、日々改善にまい進しています。

システムの新陳代謝

 勘違いしてほしくないのですが、新しい技術を取り入れないわけではありません。むしろエンジニア気質的には積極的に取り入れていきたいと思っています。それが開発速度を加速するならば。

 価値があるかどうか分からないものは取りあえず速度最優先で実装し、それが価値あるのであれば、だんだんと新しいものに置き換えていく。最近はそういうアプローチをとっています。

 実例で言うと、僕たちはバックエンドにNode.jsを使っているのですが、開発当初はv0.12を使ってプロトタイプを作りました。これでいけそうだとなったところで、v4にバージョンアップしECMAScript 2015スタイルのletキーワード(ブロックスコープを持つ変数)やconstキーワード(定数)、アロー関数へとだんだん置き換えていきました。また、非同期処理もEventEmitterオブジェクトからPromiseオブジェクト、ジェネレーター/コルーチンを使うようになってきました。

 生まれて間もない赤ん坊がすごい勢いで成長しながら、どんどん古い皮を脱ぎ捨て新しい体組織に置き換わるように、システムでも成長している箇所はどんどん新しいコードで置き換えていく。そんな新陳代謝をイメージしています。

 1960年代、前回の東京オリンピックのころ、まさに新陳代謝を意味するメタボリズムという建築運動が黒川紀章らによって提言されました。

彼らは、従来の固定した形態や機能を支える「機械の原理」はもはや有効的でないと考え、(中略)古い細胞が新しい細胞に入れ替わるように、古くなったり機能が合わなくなったりした部屋などのユニットをまるごと新しいユニットと取り換えることで、社会の成長や変化に対応しこれを促進することが構想された

 この思想はまさに前述のアプローチや、マイクロサービスアーキテクチャに通じるところがあります。Metabolism Software Architecture(メタボリズム・ソフトウェアアーキテクチャ)とでも呼びましょうか。

 往年のアーキテクトの思想が、半世紀の時を超えて同じくオリンピックの年代にソフトウェアのアーキテクチャとして再燃するのもロマンがありますね。

 TechFeedではそんな感じでユーザー価値と新しい技術に挑戦しています。フィードバックをぜひともお願いします!

高岡 大介(たかおか だいすけ)

高岡 大介(たかおか だいすけ)

大手外資系企業でエンタープライズシステムの開発、国立研究所にてセマンティックWeb/オントロジー関連の研究に従事し、 技術顧問、開発、執筆、講演などITに関する仕事に広く携わる。

2015年より取締役 兼 最高技術責任者(CTO)として株式会社オープンウェブ・テクノロジーにジョインし、TechFeedを開発。Webフロントエンドだけでなく、バックエンド、インフラなどシステム全体に関わる。

AITC運営委員(エバンジェリスト)、Sencha UG共同運営者などのコミュニティ活動、 HTML5Exports.jp エキスパート、Build Insider オピニオンコラム執筆など。

 

※以下では、本稿の前後を合わせて5回分(第3回~第7回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

Build Insiderオピニオン:高岡大介(7)
3. もっと自由な働き方があるんじゃない? 父親だって育児したい!

子供が産まれて育児に関わるようになった経験から、ITエンジニアの多様な働き方を考える。

Build Insiderオピニオン:高岡大介(7)
4. フリーランスに対する5つの誤解と、気を付けている点

フリーランスで働くとは? よくある誤解を解きながら、フリーランスという働き方について考える。

Build Insiderオピニオン:高岡大介(7)
5. なぜ僕たちはこんなにもIoTに魅せられるのか

「あちら側」と「こちら側」。『Web進化論』から10年近くが過ぎようとしている中で、IoTによってネットとリアルの関係はどう変わろうとしているのか。

Build Insiderオピニオン:高岡大介(7)
6. 人工知能時代にエンジニアはどう向き合うか

猫も杓子も人工知能な現在だが、これは単なる一過性のブームとして終わるのか。そして、エンジニアは人工知能とどう付き合っていけばよいのだろう。

Build Insiderオピニオン:高岡大介(7)
7. 【現在、表示中】≫ 新規サービス立ち上げ時の技術の採用とメタボリズムアーキテクチャ

開発者向けの新たな情報キュレーションサービス「TechFeed」(techfeed.io)の立ち上げの裏で開発者たちは何を考えていたのだろうか。

サイトからのお知らせ

Twitterでつぶやこう!