2012年2月21日

デブサミ2012に行ってきた

Agile Wallaby (Macropus agilis)

デブサミ2012 (Developers Summit 2012) に行ってきました。 概要ページには次の記述があります。

厳しい経営環境の中で、企業が教育や研修の機会を維持していくのも、非常に困難な状況となっているようです。

みんなが活き活きとして研修に参加する状況も見たことがありませんので、 研修の機会が減るのは当然の流れなんだろうな、と感じています。

当日にはたくさんのトラックがありましたが、個人的には角谷さんの話が最も印象的でした。 どうやってソフトウェアを開発していくか?という手法というか心構えのような話です。 こうしたことを常に問い直し続けられると、特別に研修とかしなくても良いのかなと思いました。

なんとなく動くプログラムを書くには本を読むなりインターネットで調べれば良い話ですが、 製品やサービスを作る、運用して改善を続ける、という話になると、人や組織に特有の事情も関係してきます。 「こうすれば良い!」という回答を求めたがる人もいますが、 基本的には変化に適応していくしかないわけで、後から振り返れば無駄だったとしても、色々とやってみるしかないわけですね。 要するに適者生存。

以下、自分が参加したセッションのメモや感想などです。

1日目 - 2/16

node.jsテクノロジースタック for ソーシャルアプリケーション

「ソーシャルアプリケーション」ならではという感じはなく、 Node.js を使ったアプリケーション構築方法の紹介といった感じ。 比較対象として PHP が繰り返し登場していたのが GREE っぽい。

クライアントサイド、サーバーサイド API、ストレージ (Redis) とのデータ交換を統一的なコーディングスタイルで扱いたい、という感じの説明が最後にあった。 Node.js を使うと言語は統一できるので、以前にニュースサイトで読んだ Facebook における Node.js への取り組みと似たような雰囲気。

Node.js のコア部分まで読んでいるらしく、PHP に疲れたんだろうなぁ、というのが個人的な感想。

講演中のメモ:

  • 会場 (100人以上いる) の8割くらいの人は Node.js を書いたことがあるみたい。
  • Node は処理が高速でノンブロッキングですよ、という流れ。 Webアプリならクライアントとサーバで同じ言語で書けるよね、という部分は入ってない。
  • GREEでは、自分たちでソースコードまで追いかけて管理してるらしい。 低レイヤーまで読む必要があるのは変わらないので、開発者のモチベーションが一番の要因か。
  • アプリケーションでデータ制約を課せるように実装。 SQL を文字列で書くとタイプミスが混入してしまうので、DSL でラップしてあげている。

参考: Facebok における Node.js

Cloud Foundryで変わるこれからのクラウドアプリケーション開発

クラウドのホスティング環境としては比較的後発の Cloud Foundry の話。 特定ベンダーにロックインされないようにしてくださいね (ふたつ目の選択肢としてウチを)、 という感じ。 AWS 一択だと AWS に障害があるとサービス全断なので、クラウド環境を複数所有しておけば 可用性の高いシステムを構成できるかも!?

講演中のメモ:

  • Cloud Foundry の人の話が交互通訳なので、進行スピードが半分くらいのイメージ。
  • 会場アンケートだと .NET 開発者が意外と多い気がする。
  • クラウドスタックを多角的に眺め直してみる。アナリストだったら?導入数別だと?開発者から見ると? 中立的に考えるとインフラもプラットフォームもサービスも同じようなウェイト。 なお、クラウドスタックは SaaS - Service, PaaS - Platform, IaaS - Infrastructure の3つ。
  • ソフトウェアもファッションのようにサイクルが目まぐるしくなってきており、 ソフトウェア開発のサイクルが短くなってきている。 以前はビルドマスター、リリース担当者がいたかもしれないが、 アプリケーション開発者がビルドを意識せずに自分でリリースできると工程を削減できる。 結果として、開発サイクルの高速化を期待できる。
  • 最後にアンケートに答えて T シャツと USB メモリをもらった。

プレゼン中に登場した参考リンク:

3・11から見えた社会基盤としてのIT

昨年の震災のクライシスレスポンスの話。 情報を次のようにレイヤー分けしてディスカッションが進んだ。

  • 情報処理
  • 情報流通
  • 情報基盤

「人間×情報×社会=価値」と考え、社会資本における情報という切り口はこのセッションならでは。 ソフトウェア開発が建築から学ぶことはいつまでも多いと思う。 また、情報を伝える (Communication) ことと、情報を処理する (Computing) ことの 両方の話題が絡み合っていることが刺激的。

どうやって開発するか?というセッションが多い中、そもそも何を作るべきか?という 根本的な話題のディスカッション。 震災から1年が経過しようとしているが、復興への取り組みは始まったばかり。 何が必要とされるか?という問題は現地に行ってみないと分からない。 しかも、課題は非常にローカルな問題に落とし込んで対処しないと意味がない。

10年前のデブサミでは考えられなかったようなセッションだが、 「10年後も世界で通じるエンジニアであるために」というタイトルの通りだと思った。 今は予想もできないことが10年後には起こるかもしれない。

講演中のメモ:

  • 「地震があったらNTTの局社に逃げ込め」という通説があるらしい。 去年の3.11では地震には耐えられたけど津波には耐えられなかった。結果、ケータイでも連絡とれず。
  • アメリカの公務員向け SNS として GovLoop - Social Network for Government - を紹介。
  • 「全ての災害は防げるのだろうか。それとも、災害とともに生きるのだろうか。」 建築でのアプローチにおける文脈で登場。特に分野を限定しない考え方である。
  • all or nothing ではなく、グレードを区切って意思決定を支援する。 なんでもかんでも防波堤を作れば良いってもんじゃない。 現実的な問題としては、うまくグレードを定義できる人が不足しているかもしれない。
  • 避難用に作った模型を共有するときに、行政に持って行くと市長室に飾られてしまって誰も見ない。 むしろ神社とかに置いた方がみんなで情報を共有できる。 情報共有を支援するために IT を使えると嬉しい。
  • ルールがあって設計するのではなく、シミュレーションしながら設計する。 パラメータのチューニングで試行錯誤していく。ソフトウェア開発の文脈で言うならアジャイルな感じ。

2日目 - 2/17

言語の世界

Ruby のまつもとさんの話。立ち見がたくさんいるくらいの大盛況。 Ruby がどうこうという話ではなく、歴史を紐解いてこれからを予測する流れ。 1960年くらいの時代から10年区切りくらいで2000年過ぎまでをタイムスケープ。 これから重要になりそうな考え方としては、並列処理、分散処理、統計処理、宣言的記述を 取り上げていました。

講演中のメモ:

  • AWSに計算リソースが「集中」するけど、その中では「分散」してるよね、という話が分かりやすい。
  • 今のままで実現できることはそのまま続ければいい。 でも、新しいパラダイムが登場したときは「未来の言語」みたいなものが欲しくなる。 まつもとさんの予想では Erlang, Node.js, R, SQL などが発展したようなイメージ。

プログラミング言語の歴史に関してはたくさんの読み物があります。 自分が使用している処理系が何に由来しているかを学ぶことで、 得意なこと、不得意なことが分かるかもしれません。 少なくとも、多くのプログラミング言語を習得している方が要所要所の選択肢は増えますので、 知らないよりは知っている方が断然良いでしょう。

アジャイルマニフェスト ディケイド

アジャイルマニフェストから11年。 これまでの振り返りだけでなく、「どうやって」チームを構成していくか?という話も。 オープンソースの世界からプロジェクトの進め方を学ぶ、という姿勢が鮮明に打ち出されており、 講演内容が非常に具体的で分かりやすかった。

講演中のメモ:

  • Christopher Alexander のプロセスに関してはこの本 - The Process of Creating Life
  • ウォーターフォールからアジャイルへの流れは、 プロジェクトの進め方が違うというだけでなく、個々人が自立しないといけないよね、という話。 やるべきことを自分で考えて漂流しないようにしないと、という言い方に納得。
  • 「コードがドキュメントだ」のオリジナル記事 - CodeAsDocumentation
  • 朝会での報告は単なる問題の羅列でなく、ストーリー性を持たせると各人が考える力を鍛えられる。 「昨日は世界をどう変えたか?」「そのための阻害要因は何か?」
  • Q.「ユニットテストは何を書けば良いですか?」A.「変更に適応できるようにしといてね。」

「変更に強いソフトウェア」を作るためには、あれこれと考える必要がありますね、という話でした。 自分にとっては何となくモヤモヤっとしていた部分をうまく言葉で表現してもらえた感じで、 とても印象的なセッションでした。 去年5月の「アジャイルスタートアップ」というイベントで Pivotal Labs の CTO の話を聞いたときよりはイメージが具体化しました。 後は周囲の人とどうやって進めていくか、という部分なのかなぁと思います。

Building scalable web apps

デモを交えて Heroku の紹介。デモのコードネームは bushido (武士道)。 スピーカーは外国人で英語での発表でしたが、日本でのイベントのために作った、という 点が非常に優しいなぁと思いました。

講演中のメモ:

  • Heroku だと logging as a service があるらしい。
  • アプリケーションのエラーを適切にレポートしてくれると確かに良い。 ついでに自動的に BTS に登録してくれると嬉しい。
  • デモアプリ - http://devsumi2012-demo.herokuapp.com/ - ハッシュタグ (#devsumi) を拾う。

クラウドを使った開発については、こちらの記事を紹介。

終わりに

2日間とも半日ずつの参加でしたが、いろいろと刺激になったイベントでした。 「クラウド」と「アジャイル」は言葉としてもう少しフワフワしているでしょうが、 何年かすれば当たり前のことになっていくと思います。 サイクルを回す、要するにフィードバックを受け入れながら継続して開発する、という スタイルを無意識に実践できるチームを形成できると良いんだろうなぁと感じました。

コメントを投稿