天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

スクラムフェス仙台2024でkeynoteを聞いてきた

www.scrumfestsendai.org

今日からスクラムフェス仙台がいよいよ始まり、まずはDay1のkeynoteを聞いてきたので、その様子を書いていこうと思います。

特務機関NERVアプリの開発歴史

特務機関NERV防災

特務機関NERV防災

  • Gehirn Inc.
  • 天気
  • 無料

apps.apple.com

元々はTwitter APIで遊ぶためにTwitterアカウントで情報をつぶやいていたそうですが、アプリ化したいという声は根強く社内であったそうです。

ただし、Yahoo防災など既存のアプリがあるならそれでいいんじゃないか?という話があったり収益にはならないよね*1という話があったりして、アプリ開発に踏み切るまでにはなかなか時間がかかったという話がありました。

しかし、Twitterでは画像が4枚しか貼れないと言った制約から、アプリ開発をしたほうがいいのではないかという声は根強く存在し、アプリ開発は無事にスタートできたということでした。
開発をスタートしたあとも、エヴァンゲリオン版権がカラーさんから公式に取れてデザインを一新することになったりと色々大変なことがあり、極めつけとして株主と大喧嘩をしてしまうという事件が起き、石森さんは転職を考え出し実家に帰ることにしたということでした。

実家に帰った後は、石森さんの趣味である美術館めぐりをすることになり、リアス・アーク美術館を訪れることになったそうですが、そこではちょうど東日本大震災に関する展示が行われていたそうで、そこでは、

  • 情報で命を落とした人も命を救われた人もいたこと
  • すべてやるべきことをやってもう何もできなくて祈るのか、まだやるべきことがある中で祈るのかは全然違うということ

など、様々なメッセージを受け取ることになり、そこで「正確で迅速な配信」というアプリのコンセプトを再認知し、会社に戻ったということです。
ここで改めて、情報とは判断をしてもらうための材料でしかなくて、判断をしてもらうのは情報を受け取ってもらう人しかできないというコンセプトを再確認できたということでした。

その後も、アプリ開発経験がない人しかいないし開発予算もない状態で開発をすることになって24時間体制で開発が行われたり、記者会見は行ったもののまだ動くものが0だったり、Android版のリリースをする必要があるのにAndroidユーザーがおらずAndroidの入門書を読むところから開発をスタートしたりAndroidの一部端末でインストールできなかったりと色々あったそうですが、なんとかアプリリリースができたということでした。

防災アプリ開発の難しさ

防災アプリで使う防災情報は、情報提供を行う電文のコード体系が統一されておらず、そこをすべて自社で独自のコードとして定義を整理する必要があったりするというのがまずあるということでした。
また、データを得るのに300万円近い値段がかかってしまい、そこから取れるデータもやはりコード体系の問題が抱えたりすることもあるというお話でした。

他にも、宮城県津波で沈没する想定地域に関わるデータを公開しないと言い出してしまって、直にメールを送るだけではなく、河北新報社を助けるためにもNHKや民放連など様々な会社にアプローチすることで事態を大事化するように揺さぶりをかけたりして、結果的に石巻市だけがデータ提供に難色を示していることを突き止めて、石巻市で事態を問題と受け止めてもらい、結果的にデータ公開をしてもらうようにしたりといった事件もあったりしたということでした。

また、莫大なデータリクエスト数や膨大なデータ容量に対応する必要があるため、CSVを8.5MB->0.3MBに圧縮したり、突如発生する400万リクエストに対応するようにしたりしているということでした。

現在取り組んでいること

スマホアプリという特性を活かして、マスメディアが苦手な細かく状況を更新する取り組みを補う役割を担うようにするマクロメディアとしての機能を重視した取り組みを行っているということでした。

また、石森さんが色覚特性を抱えていたことをきっかけにアクセシビリティ対応をしているということです。
色覚特性などをはじめ、「障害」と呼ばれるものには個人モデルと社会モデルがあるということで、社会モデルに対応する形で道具を直してアプローチをする方向性で改良をしているということです。
具体的には、個別が抱えている特性*2のニーズに対するアプローチとして、配色を変えられるようにしたり、英語対応をしたり、文字の大きさを変えたりと、様々な人が情報をもらえるようにしているということでした。

ヒルンの開発手法

ヒルンの開発手法は、シン・ゴジラの「巨災対」的チームワークだと考えているそうです。

ミッション中心主義で開発をしており、進捗管理などはないしチームワークを上げるためのチームビルディング的な取り組みもないということでした。
細かい特徴でいうと、

  • 設計はで膨大な量のパターンだしをする
  • 実装上の懸念事項を上げ、懸念事項を解決するようなコードを実装しておく
  • アルゴリズムについてはみんなにわかるように説明資料を作って議論を皆でして認知を揃う
  • 上記のように一定程度設計ができたら、後はリリース日だけ伝えて管理は何もしない(実装の段階では本当に何も話したりせずにすべて担当者に任せる)

また、技術的な問題よりも政治的問題のほうが難しいと考えているそうで、強震モニタレイヤーを開発した時は2年程度待たされたり、防災のプロフェッショナルではあるけれどアプリケーションやITに関してはまったく話が分かっていなかったりして、3年半くらいの時間を費やすようなこともあるということです。

すべてはおもちゃからはじまる

NERVのはじまりは名前も含め完全におもちゃで、株主にも遊びは仕事でやらずに個人の趣味でやってくれという指摘を受けたことがあるということです。

もっといえば石森さんがコンピューターを触り始めた80年代, 90年代にはインターネットもただのおもちゃだし、iPhoneトヨタ自動車も暗号解読機もすべて最初はおもちゃや道楽がスタート地点であるという話がありました。

おもちゃで遊ぶことの真価は、学習曲線が急カーブを描いて解像度がどんどん上がり、すごい速度でアプリが進化を遂げることだと石森さんは思っているそうで、未成熟なものをおもちゃだと侮っているととんでもないサービスにいつの間にかなっていることがあり得るというのが、今日一番伝えたいメッセージだということでした。

質問

講演のあとは質問がありました。以下、内容と回答を一問一答形式かつ常体で記載していきます。

あらかじめこういうこともあろうかと作ってという話があったYAGNIの考え方もあるし、機能の優先順位付けはどういう風にしているのか?

気象庁がいつまでにリリースしろといっているからこうしているという場合がまずある。
そうではなく、これくらいはできていないとまずい気がするという感覚があるときは、UIを考えるタイミングで徹底的に議論してどういう風に作っていくか?という議論をしたりする。

がんがん作っていくことに熱心な一方で、カラー社と飲んだりと外とのコネクションもがんがんとっているのはどういうバランスでやっているのか?

石森さん自体は元々人と話すのに苦手意識はなかった。
とはいえ、会社の中には3人以上いる飲み会は嫌だという人もいるので、そういう人には強要しないようにしているそうです。(ただし顔なじみが増えてくるとどんどん参加するようになる)

株主と喧嘩した後は仲直りしたのか?

仲直りはしていない(笑)。株主からの意見は、会社のNo.2がすべてブロックして現場に流さないようにしている。

これだけ大きくて責任が問われるようなアプリを開発している時にどういう心構えで開発しているのか?

失敗が許されない分野なので、すごいテストをしてできるかぎり集中力を高めてコードを書いて実験するようにしている。

石森さんの家族もこのアプリを入れているので、そういった存在に関しても意識があると思う。

これだけ大きくて責任が問われるようなアプリを作っているのに、Geekな人がすごく多いというのは面白いのだがどうやって開発しているのか?

開発手法に関しては講演で話しをした通り。
また、採用で、自分たちよりすごい人だけを採用するようにしている。

アプリ開発未経験とはどういう意味だったのか?(iPhoneアプリを作るのが初めてなだけで開発自体はしたことがあるのか?)

Webアプリなどは開発した経験がある。スマホアプリ開発を全員が未経験だった。

ただし、東大卒の気象予報士を人とかもいて、その人はPythonを少しだけ触っただけなのにGitHubリポジトリを渡したらすべて読んできてアプリ開発するようになったという経緯はあったりする。

*1:収益を得るためにやろうという取り組みではないのでそれ自体がネガティブな意味ではない

*2:これには老化によって大きな文字が見えにくくなってくることや青い光が見えないことなど、しぜんと変化していくことも含む