Developers Summit2013に参加して来ました。 通称「デブサミ」翔泳社の主催する大規模なITセミナーのイベントです。
「Enterprise」「Social Game」「startup」3つの世界のAction!:Developers Summit 2013
この間行ったCROSSと同じように、いくつかの会場に分かれていろんなセミナーがあるのを選んで聞いていくというものです。
場所は目黒雅叙園になります。
受付
10:00 開始で、開催の案内に10時付近は混むので9時半に来てくださいって書いてあったのですがクズなので9時50分ぐらいに着くように行きました。そうすると、想像以上に混んでてびっくりでした。で、Twitter見てると受付の手際が悪いとかもっと分散処理すべきでは、みたいなドヤツイートがたくさん見受けられたんですが、9時半に来いって書いてるのお前ら読んでないのがそもそも問題なんだろーが、と思いました。
きっと彼らも普段はIT戦士として顧客の理不尽な要求と戦っていると思うのですが、立場が変わり顧客の立場になると理不尽なことをいうようになる、むしろ自分が理不尽なことを言っていることにすら気づいてないのだなぁと世の中の不条理に涙を流さずにはいられませんでした。まあ泣いたのは嘘ですけど。
10:05ぐらいに入れましたが、最初は会場案内だったのでセッションは問題なく聞けました。
以下、セッションの内容。
長いので興味のない人にはつらいので適当に読み飛ばしてください。 また、聞き漏れや自分の解釈力の不足で間違った内容になっている部分があるかもしれません。
3つの世界:エンタープライズ、ソーシャル/ゲーム、スタートアップ
エンタープライズ(大企業)での開発と、Web系での開発で世界がわかれているように感じる、という話でした。さらにスタートアップ系は更に見てる世界が違うと。
登壇者は
エンタープライズ
- IT活用の目的は、省力化/自動化中心
- 対象はバックオフィス業務中心
- 信頼性/安全性を含む高品質を重視
- 成功要因は、要求仕様収束と大規模PMの安定的推進
- 民間IT投資が伸びていない
- マーケティング方向に要求が積み上がってきている
- これから
- 目的は付加価値創出
- デザイン型人材
- 言語化されていない課題の発見
- 解決に向けた集合知の活用
- 評価を繰り返すことによる成熟化
Webサービスの世界
- Webサービス:Facebook, Twitterを想定
- 既存のビジネスをITで提供
- ITで提供そのもので価値提供を行う、こっちがWebサービス
- Google => Web2.0 => Social => POST PC
- スマホのネットアクセスが伸びていて、PCインターネットは頭打ち
- PCインターネットの終わり
- 儲かったのはGoogleだけ
- Webの理想は相対化
- 現状の課題
- モバイルプラットフォームの寡占、アプリストアの飽和
- 国内市場の相対的縮小
- 地域ごとのインターネット、アジア(44.8%)、ヨーロッパ、
- Webサービス開発
- 建前のないベスト/プラクティス
- Web開発が生み出した最良のもの
- これからもWebサービスがフロンティアであるべき
- 建前のないベスト/プラクティス
スタートアップ
- 年間投資
- IPO
- これらが日本は減っている、というのは数字のマジック。んなこたぁない。
- EXIT戦略はM&Aが主流に。でかい起業(GoogleやMSに買収される)例:instagramなど
- ベンチャー生態系
パネルディスカッション
孫泰蔵さんが言っていた、次の話に衝撃を受けました。サービスを作るときはまず「英語で作りなさい」と言っているらしいです。で、米国の市場のほうがでかいからそれを狙うとかそういう話かな、と思ったらそうではなく、英語が苦手であれば、「言語に頼ったUI」が作れないため、「言語に頼らないUI」ができる。(例:アイコンによるボタン、説明書ではなく動画による操作説明など)それはとても使いやすいものになるはず。
昼飯
雅叙園近くの牛タンのお店にて。
Ruby2.0
Rubyの歴史
- 1993年2月Ruby開発開始
- 1995年12月公開(0.95)
- 一番最初に2.0の話をしたのはRubyConf2001
- そのときの新機能構想
- bitmap marking
- 1.8はグリーンスレッド
- 1.9はネイティブスレッド
- GIL Giant Interpreter Lock
- 埋め込みAPI:不採用
- 殆ど1.9(2007年)で実現
- そのときの新機能構想
2.0にするのに心理的障壁があった。しかし、今年。20周年 Anniversary Driven Development
2.0の新機能の目玉
-
キーワード引数
- 名前付きオプショナル引数
- 順序不定
- 記述性
-
記憶想起
-
メリット
- APIの柔軟化
- 読みやすさ
Module#prepend
- 既存のクラスの修飾
- alian method chainで実現しているものはオーバースペック気味
- Rubyにはオーバースペック
- 単純化メソッドコンビネーションを実現
- Module#include との違いは、同じ内容がクラスにもあった場合、Module側の実装が優先される。
Refinements
- スコープ限定のオープンクラス
Enumerable#lazy
- 関数型ワナビー
- イミュータブル
デザインを考えるときにデザイナーが考えること~デザイナーの頭の中~
Baidu Japan 秋葉さん
立ち見だったのであまりいいメモは取れず。
- デベロッパーがうまくデザイナを仕事するための話。
- 見た目を「かっこ良くしたい」とかではなく「情報を整理し、見やすくしたい」という本当に解決したい問題で依頼されるとありがたい
- デザインに落とすときはコードのことを考えずに(縛られずに)デザインする。コードは可能な限りデザインを再現する。
RubyでiOS/Androidアプリを作るMobiRuby
増井さん(@masuidrive) mruby(組み込み用) → mobiruby(iOS, Android)
- Rubyとobjective-CやCとの橋渡し
- mruby-cocoa
- Cocoa bridge
currnet status
- Already MobiRuby based app is in AppStore
- Finally released alpha 1
- Can call almost iOS native functions
- Writing test codes
- It's only for iOS and mruby hackers
- mobiruby製のアプリが出た
RubyMotionとの違い
- Matzが作っている。
- RubyMotionは2万円、こっちはMITのオープンソース。
- でも、まだ色々整っていないので現時点では2万円払ってRubyMotion使えという登壇者であり作者である人のお言葉w
Cons
- Unstable
- Less classses / functions
- Don't have dubugging feature
- Need to Understand iOS and cocoa
16〜17時ころ
セッションに出ず、shibuya.rbブースに顔出したりしてました。
オライリーガチャ
で、最後のセッションが今回参加した一番の目的でした。
ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例
登壇者
- メインスピーカー 西村さん(@IT)
- 司会 和田さん
- パネルディスカッション 角谷さん
- パネルディスカッション 浦嶌さん
西村さんとQA@IT
- 3年ほどゆるゆるとRubyを勉強
- 会社にサービスを作らせてくれとプレゼン
- qa.atmarkit.co.jp
- エンジニアの生産性向上に貢献したい
- @ITの西村さんが発注側として、永和システムマネジメントさんに開発委託した話。
委託でアジャイルは難しい
- 社内はぜひプロジェクトはやるべきと賛成ムード
- 期待が集まりすぎて各方面から参加
- 営業, PM,技術、経営企画・・・
- コードがない状態で延々と会議
- 動くプロトタイプの威力
- 動くプロトタイプを作る
- ツールに関係者を呼び込む
- アジャイル、クラウドについて繰り返し説明する
- プロジェクト関係者(の中で開発メンバーでない人)が減った
開発言語はRuby一択
- @t-wadaさんの助言「担当者(西村さん)」がわかる言語がいい
- ソーシャルコーディングやってみたい!
- 内外ともWebアプリ開発のコミュニティが大きい
- 相見積取れ?どうやって・・・、作るものが具体的に決まっていませんが
- コミュニティで評判や実力、実績を聞いて回る(ギルドの親方的人物の見立て重要)
- 各エンジニアのGitHubのレポジトリや技術ブログを見る
- 決め手:すでによく知っている「Rubyistたち」という人間関係があった
- 西村:「ところで仕事的な話なんですが、永和さんと@ITで一緒にやるってありえますかね。」
- 角谷:「えっ、西村さんがやる気なら全然ありじゃないスか?今ならいい子いますよ〜」
開発プロセス
- スプリントはなし。マイルストーンに向けてスコープを調整。(内部BETA、外部BETA、一般公開、一次回収)
- GitHub(private)
- ユーザーストーリーで開発
- 見積もり、ストーリーポイントをフィボナッチで見積もる。ベロシティ測る。
- 永和さん、ゆる~く社内で他のプロジェクトを見たりしていて突然別プロジェクトの人がコミットにコメントつけたりする。
- 連絡、Yammer,Facebook,IRC
- こんな感じにしてみました。
- なるほど!いいすね!xxxがyyy だとすると
- みたいなやりとりを。
検収はどうしてる?
Pivotalでacceptボタンを押す=検収とした。社内の事務からそれでOKでた。
pull req
- View
- ライブラリの挙動など
- 西村さんは発注側だが、自分で直して永和さんにpull requestする
- データ移行のスクリプトも書きます。
- 悪乗りpull request
- 業務妨害レベルのpull request
- テスト書いてない!
- それはひどいような(;^ω^)
- テスト書いてない!
- 順序が逆?OSSに pull requestしてみた
- お隣からベテランがひょっこり。別のプロジェクトの人からコメントが。
-
時には永和さんから発注側の@ITさんのリクエストをリジェクトも!
- アットマーク・アイティのアットマークは全角です!
- エンジニア向けサイトなのに全角アットマークとか避けるべき。
- We are a team
-
ソーシャルコーディングは起業にも浸透する
-
git で皆さんご一緒に
パネルディスカッション
西村さん、角谷さん、浦嶌さん、和田さん
受託開発と制約
制約がなかったら俺達はやれたか? 受託開発で完全燃焼してない感があった。
技術的負債について
- どこまでがビューティフルという自己満足で、どこまでが技術的負債対策か。キレイすぎるアーキテクチャ問題。
- 負債を貯めこんででも開発速度を極限まで上げる理由もビジネス的にありえるのではないか。離陸しなければ、そもそも開発が継続できない。
- プロトタイプは契約を頂いて作った。
- ローンチできるんか、という事を示すために。
- スタックオーバーフローのようなサイトの勉強、技術検証も兼ねて作成。
- プロト、テストを書かないで作り、捨てた。
- 学んだ上で、新しく作りなおしたらもっと良くなるのに、という感覚が嫌だった。
- 三回作れば勝てる仮説
QA@ITは特殊解か?
- すべてのプロジェクトは特殊(by 角谷さん)
- ソフトウェアの検収、人月の話など。どうすればいいかわからない。既存のままではよくない。(by 角谷さん)
- 仕様書不要、Rspec読めばいい。(by 西村さん)
- プロダクトオーナーもコード読めたほうがいい。(by 西村さん)
自分の感想
会社でもソーシャルコーディングやりたくて、この内容を聞きたくてデブサミに来ました。内容的には大満足です。 自分も会社で、自分でコード書く業務もあるものの、今比重の大きい仕事は開発委託をしています。そして幸いなことにやりとりをするツールとしてGitHubを使っています。 大きな機能追加とかは自分が余計なことをせずに、委託先に任せて計画立てて作っていったほうがスムーズでしょうけど、突然のちょっとした1〜2人日程度の仕様変更、仕様追加であれば自分で作ってpull requestしたほうが委託先の計画修正が掛からずにいいのでは、と感じました。 あとは、進捗管理としてPivotalやJIRAのようなものは使っていないので、予算や社内プロセスをうまく調整しつつ、取り入れられる部分は取り入れて行きたいと感じました。
終わりに
- 二日目も行くので頑張ってまとめます。
- ソーシャルコーディングの件は会社で導入できる部分を具体的に進めていくつもりです。