Developers Summit 2012【2日目】

2日目ですよー!

地方からの参加だからこそ,2日間みっちり聴講させていただきました.とにかくお尻が痛い.

2日目は,全体的にアジャイルとか継続的インテグレーションとか,そういう話を多く聞いた日です.アジャイルサムライとか読んで興味を注いでるトピックだったのでかなり充実してました.

と,日が開いてしましたが,2日目のレポートです.

17-A-3 スマートフォンにおけるHTML5実装の最先端

当初は,他のセッションに参加登録していたのですが,時間ぎりぎりに入ってもいい?ってスタッフの方に伺ったら「どうぞどうぞ」って話だったんで潜り込ませてもらいました.

スライドはないようですが、スマートフォンにおけるHTML5実装の最先端@Developers Summit 2012 - Togetterでまとめられていました。

箇条書き

  • SWF変換エンジン ExGame(エクスゲーム)
  • HTML5実装でアプリに劣る面は,3D・音楽・速度
  • HTML5実装での描画手段は,Canvas, SVG, CSS3
  • SVGはAndroid2.xでサポートされてないし,Canvasで代用もできる
  • 今回の話でSVGはオミット
  • Canvas 大変だけど使いこなせば優秀
  • CSS3 ちょっと使う分には便利だけど,こじれると厄介
  • CanvasはAndroid/iPhoneで,iPhoneが遅いのでiOSを中心にチューニング
  • iOS4はdrawImageが遅いので,いかにコール回数を減らすかがキモ
  • iOS5はGPUサポートで高速化したが,getPixelDataとか今度は違うものが遅くなった
  • オンメモリCanvasの操作が基本・しっかりキャッシュして使いこなす
  • DOM構造でCanvasの上にDIVとかSPANとか要素を配置しない(なるべく)
  • Canvas描画と,上の要素の描画をマージしないといけなくなる
  • なければRAMに直送されるので効率がよい
  • CSS3はiOS4あたりからGPUの恩恵があるので高速
  • 同時に動くオブジェクトの数が増えると,途端に重くなる
  • Androidでは変形は互換性を期待できるが,アニメーションは問題が多い
  • PS VitaのブラウザはHTML5に対応していて,Canvas互換からExGameも動いた
  • Canvas -> 同時に動かす対象が多かったり,アニメーションのパターンが多いときによい
  • CSS3 -> 同時に動かす対象が少なく,限られたパターンのアニメーションであればよい
  • AndroidでFull GCを走らせたら負け(Full GC?)
  • V8は世代別GC(世代別GC?)を利用しているので,新世代にいるうちに参照を切る
  • 何度も使うメモリは最初に確保しておく
  • 頻繁に使う画像は最初にロードしてく・グローバルに保持して参照をとっておく
  • 上限の決まっているオブジェクトは初期化時に上限まで確保しておく
  • しっかり確保しておけば,安全に使い回し続けることができる
  • メモリ断片化の対策みたいなもの
  • 脱獄してtopでMobile Safariのメモリ使用量をモニタリングすればおk
  • 100MB以内で済めばまぁまぁ大丈夫

感想

Canvasとかの描画系・アニメーション系は正直疎かったので参考になりました。メモリ対策周りのノウハウは,ゲームやらグラフィック描画に限った話でもないので,突っ込んだノウハウを披露してくださったのが素晴らしいなぁ,と.

でまぁガベージコレクションについては原理的なとこが相変わらずよく分かってないので,世代別GCとかのことは別途調べて勉強します(;´Д`)

17-D-4 どうなる?Windows 8時代の業務アプリ開発

ウェブ系のゆるふわスクリプト系が専門なので,OS用の業務アプリは門外漢でございましたが,Windows8の話を,片鱗でも伺いたかったので聴講しました.個人的にはWindows8をはじめとするMetro DesignによるUIがかなり気になっております故...

SlideShareでスライドが公開されていました。

箇条書き

  • Windows8は売れるのか?
  • 売れても売れなくてもWindowsが与えるインパクトは大きい
  • 重くて互換性がないVistaの二の舞にならないか?
  • Windows8は,Windows7で動作していたものがすべて動く
  • Windows8は,Windowsをチップセットからエクスペリエンスまで再考する
  • スタートメニューがMetro Designになる
  • UEFIとハイブリットブートによる超高速起動
  • Windows7よりも少ないメモリ使用量
  • PCの同期機能
  • OSのリセットとリフレッシュ
  • 従来部分はそんなに変わっていない
  • 省電力化
  • パフォーマンスの向上
  • タッチ操作と各種センサーのサポート
  • さまざまなデバイスとの接続性
  • MSが提示するProductivity Future Vision (2011) - YouTube
  • 企業利用においてもコンシューマ化が進めば,近い未来の話になる
  • タッチUIは業務アプリにつきものな,操作の限定・制限を提供しやすい
  • グループポリシーでMetroスタイルアプリのインストールを管理できる
  • MetroAppに備えて,タッチデバイスのヘビーユーザーになる・相対は位置をマスターする
  • GUI: 人→マウス→カーソル→UI
  • NUI: 人→UI
  • タッチデバイスを取り上げても,感覚的にはGUIよりも2ステップ直接的なフィードバック
  • ユーザーは待つことにはなれているが,操作が適用されたかどうかについては敏感
  • 操作後のフィードバックが非常に重要

感想

マルチデバイス対応&外部センサーデバイスとの接続性,ってなんだかNUIって単語と合わせて未来のデバイス感に溢れてて良いですね...(*´▽`)

前振りでウェブ系のゆるふわスクリプトって言ってますが,Metroスタイルアプリの開発はウェブ標準技術で乗っけることもできるのでちょっとワクワク.とはいえ今まででだってAIRとかに手を出したことがあるわけでもないのでアレですが・・・.

17-B-5 アジャイルマニフェストディケイド

Speaker Deckでスライドが公開されています.

立ち見もすごいし,急にスタッフの人が会場のサイドに追加の椅子を設営し始めるし,何事かと思ったらTwitterのタイムラインを見る限りカリスマのひとらしい.自分は正直存じ上げなかったのですが,セッションが始まって自己紹介がされたあたりで,アジャイルサムライの訳者と伺って納得.勝手にお世話になっておりましたw

箇条書きだし

  • 仮面ライダーに詳しくなりました
  • GENBA RIDE!!
  • ということで現場に合わせたアジャイルだいじ
  • 経済的な要請に基づくウォーターフォール
  • 1回つくっておしまいな人工的なソフトウェア
  • 時代の変化にそぐわない・すべきことがされない・不正義
  • 時代に変化に沿って改修・すべきことをなすべき・正義
  • 1回限り・大量に・機械的に,組み上がるソフトウェア
  • 繰り返し・少しずつ・感覚的に自然に,成長するソフトウェア
  • アジャイルマニフェスト
  • 自身の正義と向き合い,個々の開発者が,目の前の問題に真摯に取り組む
  • ソフトウェアそのものは価値ではない
  • 人に使われること・つながることで,その間に価値が生まれる
  • システム全体を構成する
  • 変更に対応できることが求められている(きつい)
  • ソフトウェアは使ってみないとわからない・使ってみてわかる
  • 育てること・技術的負債と闘う
  • 与えられた仕様のためにプログラムせず,あるべきシステムのためにプログラムする
  • 自然発生はOSSのコミュニティ・カルチャーの中で生まれている
  • ソフトウェアのあるべき姿を助長できる作り方とエコシステム
  • 見習うべきを見習うとよい
  • スクラム:軽量・理解が容易・習得は非常に困難
  • 手法や名前に囚われない
  • ある文脈で繰り返し起きる問題を解決する方法
  • その方法にはいくつかの制約が課せられているかもしれない
  • 最終的には,自分の現場に合わせて適切に扱い,取り組む
  • ソフトウェアの本性に沿ったものを如何にして作るか
  • ウォーターフォールのような人工要件なしで,自然発生の要件のみで作れる?
  • やれることをやる,けどやれることだけやるのは中々先にいけない
  • 理想のプログラマを演じる

感想

アジャイルという考えを知るために,頭でっかちではありますが,アジャイルソフトウェア宣言は読みましたし,アジャイルサムライも通読した所でござました.

先んじて読んだアジャイルサムライと合わせて,今回聞いてきた内容でアジャイルに対する理解が深まったような気がします.

チームで取り組むとき,アジャイルにコミットしてくれるメンバーがどれほどいるか.自分の場合,それこそアジャイルなんて言葉ではチーム共有できないので,それこそ名前に囚われずうまく浸透させないと難しいかなー,と思う次第.

17-C-7 From Legacy to Agile レガシー開発からアジャイル開発へ

三周まわったおれたちのアジャイルと,レガシーの現実が,スライド公開されています.

一番最後のセッションでしたね.中盤?ぐらいからキャリアデザインのトークセッション形式で進みました.それまでのアジャイルに関するスライドもテンポ良く聞けて楽しいノリでした.なんか色々ネタ入ってたけど,会場の反応が薄くて怖いw

箇条書き

  • 入社一時金制度ってすごいなー・・・
  • 目指せ年収600マソ!!(本編関係ない・お金すき)
  • 三周まわったおれたちのアジャイル↓↓↓
  • 先人の残した高速道路に乗る
  • アジャイルの現場レポート
  • タスクかんばん・バーンダウンチャート・ポストイット・ふりかえり・プランニングポーカーetc...
  • コードレビュー・テストファースト・ペアプロ・CI etc...
  • 内製サービスの結束したアジャイルいいなぁ...(感想
  • 書籍の内容が実情に合わないまま使うとしんどい
  • アレンジを恐れない
  • もっと良くしたいという志向をもって,良いと思うことをやっていく
  • 三周まわったおれたちのアジャイル↓↓↓
  • シェフとお客さんが会話しながらひと品ずつ出す(Agile)
  • 予約されたコースをまとめて出す(Legacy)
  • レガシー現場とは,変更を許容しない・顧客と開発者は別チーム・決められたとおりに作る
  • 顧客の必要なものを作るのにオーバーヘッドが大きい
  • レガシー現場あるある「それ●●さんの書いたコードなんで」
  • レガシー現場あるある「要件をそのままRTするだけの簡単なお仕事」
  • レガシー現場あるある「仕様書何枚かいた!少なすぎる!」
  • レガシー現場あるある「コード何ステップかいた!」
  • レガシーな現場をアジャイルな現場にできるか? → できると思うけど
  • 人生は有限,社内の政治に付き合うよりは,自分が移動したほうがいい
  • トークセッション↓↓↓
  • 仕様書は30kg必要
  • エクセル方眼紙は人の心を濁す悪しき習慣
  • 顧客をコントロールできるアジャイルなマネージャー
  • ドキュメントを書かなくていいわけじゃないし,必要なモノはもちろん書く
  • ペアプロ・コードレビューは手戻りの減少につながるので,品質上割安
  • 安全な見積もり,お客さんとの信頼関係を醸成する
  • 100%正確なスケジューリングなんて無理だけど,柔軟に対応しよう
  • テストを書かないヤツはクズだ テストを書くのはよく訓練されたクズだ!
  • 人を殺す以外なら何やってもいい → 無茶な指示や理不尽なスケジューリングは人を殺す
  • 失敗を引きずっても良いコードはかけないし無価値
  • コードを憎んで人を憎まず
  • アンテナ強度・スキルマッチ・キャッチアップ
  • デジタル化したモノは自分で能動的に開いて見ないといけない・アナログ便利
  • 覚悟大事

感想

レガシー現場あるあるネタがおもしろいので,ぜひスライド原本も見ていただきたいのですが,クリティカルすぎて心の傷をえぐられました.心当たりがありすぎる・・・.

トークセッションは,精神論的なところもありつつ,こういう風に考えて仕事してるんだな〜というのは目から鱗とか色々落ちますね...俠気あってカッコイイ.

CIとかテストとかプロダクト的なアレコレは1人で頑張らないといけないし,心が折れそうなので,まずはウェットウェア的な面からチームメンバとタスクかんばんなり朝会するなり,そういう所から取り入れて行きたいですね.

勉強になりました!

月並みに面白かったとか参考になりましたとか語彙の乏しさに絶望したくなる感想を書きがちでしたが,実際どれも行かなければ触れられない話で,スライドをめくってるだけでは伝わらないハズのものも感じられたように思います.

ああいう大舞台で講演できるような立派なエンジニアになりたいもんですね〜.今回のイベントで聞けたことを糧に,これからも頑張る次第.

スピーカーの皆様,運営の皆様方,すてきなイベントをありがとうございました&お疲れ様でした〜.