日々常々

ふつうのプログラマがあたりまえにしたいこと。

DevLOVE HangarFlight - Spring Bomb -のメモ

東京勉強会ツアーしてきました。 - 日々常々

2011/05/21に行われた「DevLOVE HangarFlight - Spring Bomb -」に行ってきました。普段大阪に住んでいて、特に旅行するわけでもない。出かけても精々神戸や京都な私ですが、少し時間に余裕があり、かつ興味のあるものが重なっていたので今回思い切って参加する事にしました。
大阪に住んでいると東京のイベントの多さは常々聞くのですが、その中でも特によく聞くものの一つがDevLOVEだったりします。で、一体どういうものなんだろうと。参加目的は、今回ばかりは「参加する事」だったりします。

オープニング

@papandaさんのオープニング、今回のイベントについてのお話。

  • ソフトウェア開発は楽しい
  • でもソフトウェア開発は手ごわい
  • 一人だとたかだか300人月程度
  • 他の人の経験を借用することはできる
  • 「ソフトウェア開発の複雑さにIやYouではなくWeで立ち向かう」

「HangerFlight」は飛行気乗り同士が格納庫でお互いの経験を交換していた事に由来するらしいです。個々の経験がそのまま他者に適用できる事は少ないですが、経験談からプラクティスを抽出し、自分のものとして転化させる……なんて事を、過去の飛行気乗り達はやっていたのでしょう。人の経験を借用し、また自分も人に伝える。協力して複雑さに立ち向かおう…って話ですね。
思ったのですが、これって懇親会ですよね?勉強会の懇親会では現場の体験談や悩み、その対処について話されることは珍しくありません。これ自体は自然と行われる事名のですが、それ自体をテーマに据えてしまっているのが凄いと思いました*1



以降は三つの格納庫(部屋)に分かれて、それぞれで別の話がされました。どれもこれも興味深く、全部聞きたくて困りました。さて、纏めなおしてもうまく行かなかったので、FreeMindでとったメモを箇条書きリストにして晒します。スライドを全て書き写した訳じゃないですし、諸般の事情で漏れとかあります。さらに所々に私の解釈とかも書いちゃってるので、そのまま発表内容ではありませんので注意してください。

第一波「いま敢えてJava言語について話そう − 知ってたはずのJava言語」

@t_yanoさんのお話。
様々な注目される技術が出てきた中、あえてJava言語のイイトコを話そうって感じでした。「Java: Ter Good Parts」も出ましたし*2、ホットなネタでしょうか。ですが、Java言語のイイトコ全てについて並べるだけでも5時間くらいかかってしまうので一つだけ選択した、それが「インタフェース」でした。

  • イイトコ
    • 明示的である
      • 型の扱い
      • 「new() なしでヒープにオブジェクトが出来るなんてあり得ない」
        • 匿名クラス導入時の議論
        • (ソースなしの伝説(本当かどうかは不明))
        • ただし過去の話…
          • Java5以降は変わってる
          • 例えばオートボクシング
      • 暗黙的に何かしない
        • 少しずつ崩されてはきている
        • けれど今でも残ってる
    • ホットな仕組み
      • interface
        • Java: TheGoodParts 2章
  • これ以降ひたすらインターフェイス
  • 質疑
    • どの程度までやるか
      • シンプルなのが出来きったら実装する感じ
    • なってない!と思う時
      • 自分が思うところの開発手法をアピールする
      • ペアプロ等で半ば強引に引っ張る
      • 人間力で解決する
    • 常にやってるの?
      • 実際はコンテキストによる
        • ポリシーだけど…
        • チーム全体で共有にまではもっていってない
      • けれど可能な限りはやってる
      • 抽象概念を考えなきゃいけない段階で常に
        • 書ける環境だからやってる
        • 書けない環境だとできない

第二波「とある会社のTrac事情」

@kanu_さんのお話。
Excel管理していた組織にTracを根付かせた体験談でした。所々が非常に生々しい。発表内容には関係ありませんが、Shibuya.tracのシール頂いちゃいました。きゃっほう。なぜかiPhoneのケースに入れてます。

  • 今に至る歴史と事例
    • 開発のとき
    • んで保守にうつる
      • Excel漬けだった
      • 対象が40システムくらいあった
      • のでTracに統合
        • 必要な事は全部Tracでできるじゃーん
        • 現状:誰でも開けば判るように
        • 実際見れば換わる
    • 開発部隊へ展開
      • 気付いた事
        • 不具合や問い合わせは優先順位順
        • 追加や派生は不具合チケットに混じってやってる
        • →もやもやする
      • 「masuidrive的プロジェクトの方針」
        • 全てSubversion(設計書も)
        • 口頭依頼は受けない(全てチケット)
        • 議事録や仕様はWikiに書く
      • やってみた
    • 根付かせるのに3年かかった
      • Tracでも3年」
    • トップダウンでやれば難しくない
  • おわりに
    • 道具を使うことが目的ではありません
    • 本来の価値を生む作業に集中するために使うのが道具です
    • 勝ちあるシステムを継続的に顧客に提供し続けるのが開発者のミッション
    • 管理者の仕事
      • 開発者に余計な作業をさせない
    • 計画を適切に見直すことで持続可能なペースを保つ
      • ガントチャートでやると線に載せるのが大事になる
      • 最初は伸ばしても伸ばさなくなったりする
    • 道具に使われるのではなく道具を上手く使う

第三派「そんなやつもいるよね、なお話し」

@shot6さんのお話。
大谷さんがどんな風に考えて活動されているか。あまり転職とかこういう話は聞かない*3のですが、とても興味深かったです。

  • 自分のキャリア
    • 大学
    • USで頑張る(1年半)
    • ネットワークエンジニアバイト
      • 「あるある」ネタに近い生々しいお話
    • 金融系システムエンジニア(3年)
    • オープンソース、アーキテクト(5年)
      • このあたりで某Webフレームワークを作ったり
    • ソリューションアーキテクト
  • 転職とキャリア
    • 2回転職
      • 金融→アーキテクト
      • アーキテクト→ソリューションアーキテクト
    • 自分の振り返り
      • 1年と3年くらいではかならずやってる
      • 立ち止まって評価
        • 休暇とってメール受けずに
        • 何が出来たとかよく見える
      • それがたまたま転職ってだけで、転職しようと思ってしたわけじゃない
    • 今回
      • 転職2010/10頃
        • 1ヶ月くらいで決まった
        • 考え始めたのは1年前くらい
        • 転職して3年くらいたったから
      • 客の顔が見たかった
        • いままで会わなかった人と会うようになった
        • システムが判らないえらい人みたいなの
      • クラウドより分散システムを価値につなげたい
        • 1990年代ごろから「いずれ終わる」と言われてた
        • 「やっときた」って感じ
        • 規模の経済
        • 物量によって作り手と使い手がわかれてきた?
          • ユーザに徹する手もある
          • それより内部を理解したかった
      • 色々ある
      • 一度ITから離れたかった?
        • 某Aさんは元々小売なのでITじゃない
        • 小売は作ったものをどんどん低価格にする
      • 小さい組織でやってみたい
        • 前が大きかった
        • アジリティがなかった
        • ダイレクトにやりたい
      • 奥様からのご要望
        • いま33歳
        • 給料とか…
        • 勤怠とか…
        • 前がよかったのでこれが結構ネックだった
  • 英語
    • 「避けられない英語」
    • 外資
      • 経験あるけど不安だった
    • 英語は絶対に絶対に避けられない
      • だから早めに使え
      • 恥は承知
      • 実体験
        • Face to Faceで静かな場で話すことはあまりない
        • 電話とか周りがうるさい状態でも通じる英語力が要る
    • 英語が使えると出会える人の総数が変わる
      • 視野も変わる
      • 伝わるように話せたらなぁ
    • 伝わってナンボ、軽視できない
  • 技術力
    • ドメインによって求められるものは違う
      • ファンダメンタルは尾恥
      • 役割変わるとやらざるをえない
      • たまには好奇心のままに追求するのも大事
    • 年齢と共に時間が無くなっていく
      • 彼女が出来ると50%なくなる
      • 家族になるとさらに30%なくなる
      • 子供が出来ると自分の時間が10%以下になる…
      • 圧倒的に物理的に時間が無くなる
        • これが35歳定年説に対する仮説
        • 技術力には時間が要る
    • 分散技術はいろんな技術の合せ技
    • プログラミング
      • 本当に重要、基礎体力
        • アーキテクトとか言ってプログラミングしないやつは○○○(言えない言葉)
        • ロジカルに何かを考える力になる
        • 最近ちょっと離れてる
          • 復帰したい
      • ローカルで賄いきれない場合はクラウドもあります
    • コードリーディング
  • オープンソース
    • オープンソースなければここにいない
    • オープンソースが全てを変えた
      • 好奇心でどこまででも読める
      • 判らなければ聞ける
    • 今までとぜんぜん違う
      • twitterとか
        • 開発者にピンポイントに繋がる
    • オープンソースが全てじゃない
      • 外に出せない知識もある
      • プロプライエタリにはそれなりの理由がある
      • 論文や書籍もとても重要
      • いまどういう課題にどういう人たちが取り組んでるか判る
        • 知っとけばずれない
        • 知らなかったらツカエナクナル
  • 勉強会について
    • すごくいいこと
    • でもそれ自体を目的にしちゃいけない
      • 何か得られるものがあるか
      • 自分が提供できるものがあって成り立つ
    • 呑みたいだけ?
      • それでもいいけども
    • プラクティス
      • 開催者が最もメリットあり
      • 次発表者
      • 5-10人程度が最適
        • 観客が出来てしまうとだんだんうまく行かなくなる
        • 「参加するだけ」だとダメ
      • 目的がはっきりしないと破綻する
      • 別にF2Fでやらなくてもいいんじゃねーの?(ネットとか?)
  • その他雑感
    • 振り返る事が大事
      • 書き出すとか
      • 自分にとって何が大切か、それを見返す習慣
    • 将来についての展望
      • クラウドの先をアウトプットしたい
      • いろんな人に会うのはとても大切
        • 細かい事でもプラクティスになる
        • 技術的なスタンスとかも
  • まとめ
    • 自分がやりたい事を突き詰める
      • 誰かを凌駕するモチベーション
    • SIがダメというわけではない
      • 変わっていくものは大丈夫
      • ダメなモノを切り捨てて行く必要がある
    • 誰かのやり方じゃなく自分の方法を確立する
    • 楽しむ
  • 質疑
    • やりたい事があっちゃこっちゃいったら?
      • ある程度好奇心追求するのはいい
      • ドコまでやるかは決めてやる
      • アウトプットを残す
    • モチベーションが続かなくなった時
      • やる気だけではまかなえない
      • 続けてると飽きてくる
      • モチベーションなくてもある程度動けるようにする
      • モチベーションなくなったときの事を考える
      • 自分に宿題を課す
        • 無くなった時のメモを残す
        • モチベーションが高い時期に
    • コードリーディングで読む対象
      • フレームワークは最近読んでない
      • 最近ミドルウェア
        • ウェブサーバ
        • データベース
        • 仕事上関連あるから
        • Twitterで言うと、読んでる人とか喜び勇んで食いついてくる
      • だいたい一つのカテゴリで1つ読んでおく
    • 勉強会の頻度
      • 土日が仕事で塞がれてしまった
      • 木金であればいいのに…
    • 某Aさんに行ってのギャップ
      • 思ってた以上に忙しい
      • 楽しくやれてる
      • まだ小さい組織なので…
    • プログラミングについて
      • 最近できてないよなー
      • Scalaやってたけどさっぱり忘れた
      • 本を読むとかより「何か作ってみよう」の方が早い

第四波「俺たちのハンガーフライト」

本日聞いた内容でアンケートを採ったり、それぞれについて話したりするふりかえりの時間。第一波から第三派で話された内容はあくまで発表者さんの体験談、これからプラクティスを抽出して自らの課題解決に充てられなければあまり意味がありません。そんな中で各々が抱える問題とそれについて話す……だったのですが、少々難しかったです。「現時点で自分が抱えている問題は何か」とかを明確に出来ていない事に気付かされました。「問題なし、万事順調!」なんてわけ無いんですからね…。

基調講演「次の時代を作るのは、老人ではない。」

@jojoAtHanawaさんの基調講演。はっきり言ってとんでもない話でした。「自分はスーパープログラマでも、有名アーキテクトでもない」と仰ってましたが、確かにそのような華々しい何かではないでしょう。ですが、間違いなく素晴らしく、尊敬されるべき方だと思います。冗談抜きに感動して涙出そうになりました。「RoRはじめました。定年まであと2年です。」これを1枚のスライドに書いて話せるような人がどれだけ居るんだろう…。個々のネタどれをとってもインパクトがありました。詳細はメモ取れてないのですが、そんな事もやってしまうのかの連発。このセッション、他の所でもやって貰いたい。皆に聞いてもらいたい。そう思いました。

  • 誰もが注目されているプロジェクトでやっているわけではない。
  • でも工夫は出来る。
  • ソフトウェアはそういうことをやりやすい。

渾身会

DevLOVEでの懇親会は渾身会と表記するらしいです。
いろんな人と話すの楽しかったです!でももっと色んな方に挨拶とかしたかったです!折角来たのにちょっと勿体無かった気が……次回何時来るんだろう。と言うか来る事はあるんだろうか。…あるか。一回来ちゃうとハードル低くなるというか、タガが外れちゃうというか、そんなもんでしょうし。
なんかGroovyの布教をした気がするのですが、私自身まだ初心者の域なので上手く魅力を伝えられたか不安なところはあります。なんかScalaの布教を(以下略)。もっと勉強しませんとねー。
懇親会は飲み屋でやるのもいいのですが、今回みたいな立食パーティ形式が勉強会って場にはあってると思います。

まとめ

そんなわけで噂に聞いたDevLOVEに参加させていただきました。「まとめ」と言っても特には無いのですけど、想像以上の熱気に驚きました。特にテーマを絞るでもなく、HangerFrightでこれだけの会が出来るのはやはり東京の特殊性なんでしょうか…。そんな事でまとめてしまうと「東京うらやましい」になってしまう。これは拙い。どうしよう。
あ、「楽しかった!」

*1:「懇親会だけ勉強会」とかネタで話すことはあるのですが、こうして本質のメリットを抽出してイベントにされている点が特に。

*2:買う予定…近いうちにorz

Java: The Good Parts

Java: The Good Parts

*3:どうしても興味のある方となると技術側に寄っちゃって…