ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例

39,452 views

Published on

QA@ITは委託開発ですが、GitHub上で委託側、受託側がコードを挟んでコミュニケーションする「ソーシャルコーディング」ぽいことをやっています。事例としてお話させていただきました。

Published in: Technology

ソーシャルコーディング革命後の開発委託の世界〜QA@ITの事例

  1. 1. Developers Summit ソーシャルコーディング革命後の 開発委託の世界 QA@ITの事例 西村賢 14-A-7 #devsumiA アイティメディア株式会社 ITインダストリー事業部 @IT編集部 副編集長 #qa_it Developers Summit 2013 Action !13年2月19日火曜日
  2. 2. Developers Summit $whoami => @knsmr EVERYONE, GIT ON BOARD! • @IT編集部 西村賢(にしむら・けん) • 編集者・記者 ‒ 技術系、エンタープライズ系 ‒ 過去の媒体:月刊アスキー → 週刊アスキー → @IT • RubyコミュニティAsakusa.rb Developers Summit 2013 Action ! 213年2月19日火曜日
  3. 3. Developers Summit @ITはITエキスパート向けメディア EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 313年2月19日火曜日
  4. 4. Developers Summit Ruby/Railsでブログも書いてます EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 413年2月19日火曜日
  5. 5. Developers Summit 個人でサービスを作りました EVERYONE, GIT ON BOARD! http://worklista.com/knsmr Developers Summit 2013 Action ! 513年2月19日火曜日
  6. 6. Developers Summit サービスを作りたい!と思ってからの経緯 EVERYONE, GIT ON BOARD! • 3年程ゆるゆるとRubyを勉強 • 会社にサービスを作らせてくれとプレゼン • 社内コンテストで優勝(+準優勝も)! 2010年夏 • 永和システムマネジメントに開発を委託、 2012年5月にQA@ITをローンチ Developers Summit 2013 Action ! 613年2月19日火曜日
  7. 7. Developers Summit エンジニア向けQ&Aサイトです EVERYONE, http://qa.atmarkit.co.jp/ GIT ON BOARD! Developers Summit 2013 Action ! 713年2月19日火曜日
  8. 8. Developers Summit エンジニアの生産性向上に貢献したい EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 813年2月19日火曜日
  9. 9. Developers Summit ズバリの答えが出てくるように EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 913年2月19日火曜日
  10. 10. Developers Summit 委託でアジャイルは難しい Developers Summit 2013 Action !13年2月19日火曜日
  11. 11. Developers Summit 賛成を押し切る難しさ EVERYONE, GIT ON BOARD! • 社内は「是非プロジェクトはやるべき」と 賛成ムード、期待が高まる • 期待が集まりすぎて各方面から参加 ‒ 営業部、PM部、技術部、経営企画部、マーケ 部、法務部、経理部 • コードが1行もない状態で打ち合わせと企 画会議を延々と…… Developers Summit 2013 Action ! 1113年2月19日火曜日
  12. 12. Developers Summit 動くプロトタイプの威力 EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 1213年2月19日火曜日
  13. 13. Developers Summit 賛成を押し切るには EVERYONE, GIT ON BOARD! • 動くプロトタイプを作る(永和さん++) • コミュニケーションツールに関係者を呼び込 む • アジャイル、クラウドについて繰り返し説明 する • プロジェクト関係者を減らす Developers Summit 2013 Action ! 1313年2月19日火曜日
  14. 14. Developers Summit やってみればできると分かる EVERYONE, GIT ON BOARD! • QA@ITローンチ後、同様の枠組みで「イベント カレンダー+ログ」をリリース(永和さん++) Developers Summit 2013 Action ! 1413年2月19日火曜日
  15. 15. Developers Summit なぜメディア企業がサービスを? Developers Summit 2013 Action !13年2月19日火曜日
  16. 16. Developers Summit 情報メディアとプラットフォームの変遷 EVERYONE, GIT ON BOARD! 技術 メディア 紙 写植 → DTP(情報誌) HTML 手動更新Web媒体 P言語 + DB 自動更新Webサイト イマココ WAF (Railsなど) Webサービス運営 やりたい ES6+HTML5 ?? Webコンテンツ流通本格化?? Developers Summit 2013 Action ! 1613年2月19日火曜日
  17. 17. Developers Summit メディアとサービスの接点に価値 EVERYONE, GIT ON BOARD! サービス メディア (ソフトウェア) reddit/StackOverflow/flipboard/HuffintonPost/Quora/Ardvark/ TechMeme/codecademy/Cookpad/Togetter/kakaku.com Developers Summit 2013 Action ! 1713年2月19日火曜日
  18. 18. Developers Summit メディアだけじゃない EVERYONE, GIT ON BOARD! • メディアのサービス化、プラットフォーム 化は時代の必然 • 「ソフトウェアが世界を飲み込みつつあ る」(マーク・アンドリーセン) ‒ 世界最大の本屋(流通業)/ 世界で最も成長している通信事業者 / 世界で最も成長して いるエンタメ / カメラ・写真産業 / ビデオ産業 / 音楽産業 / 映画産業 / 旅行産業 / タ クシー業界 Developers Summit 2013 Action ! 1813年2月19日火曜日
  19. 19. Developers Summit ○○とサービスの接点に価値 EVERYONE, GIT ON BOARD! ○○ ソフトウェア 未知の領域を切り開くにはアジャイルが適している Developers Summit 2013 Action ! 1913年2月19日火曜日
  20. 20. Developers Summit 2011年秋、QA@IT始動 Developers Summit 2013 Action !13年2月19日火曜日
  21. 21. Developers Summit 開発委託先選定(1) EVERYONE, GIT ON BOARD! • 開発言語はRuby一択 ‒ 和田卓人さんの助言「担当者(西村)が分かる言語がいい」 ‒ ソーシャルコーディングやってみたい! ‒ 内外ともWebアプリ開発のコミュニティが大きい • フリーランス、法人で候補を複数まわる • 相見積? 取れるわけねぇし…… (人月) • じゃあ、どうやって選ぶ? Developers Summit 2013 Action ! 2113年2月19日火曜日
  22. 22. Developers Summit 開発委託先選定(2) EVERYONE, GIT ON BOARD! • コミュニティで評判や実力、実績を聞いて 回る(ギルドの親方的人物がいる。こうい う人たちの見立ては重要) • 各エンジニアのGitHubのレポジトリや技 術ブログを見る Developers Summit 2013 Action ! 2213年2月19日火曜日
  23. 23. Developers Summit 開発委託先選定(3) EVERYONE, GIT ON BOARD! • 決め手:すでに良く知っている「Rubyistた ち」という人間関係があった(ソーシャル) • もともと4年ほど前、空気を読まずにRubyコ ミュニティに異分子として入っていったのも、 予感があったから。自己紹介はいつも「いつか 皆さんのところに 一緒に作りませんか と伺う かもしれません」だった Developers Summit 2013 Action ! 2313年2月19日火曜日
  24. 24. Developers Summit 開発委託先選定(4) EVERYONE, GIT ON BOARD! • 西村:「ところで仕事的な話なんですが。永和 さんと@ITで一緒にやるってあり得ますかね」 • 角谷:「えっ、西村さんがやる気なら全然あり じゃないスか? 今ならいい子いますよ∼」 (意訳) • 属人性上等! だって、ソーシャルですもの Developers Summit 2013 Action ! 2413年2月19日火曜日
  25. 25. Developers Summit 開発体制・利用ツール EVERYONE, GIT ON BOARD! • スプリントはなし。マイルストーンに向けてス コープを調整(内部ベータ、外部ベータ、一般公 開、一次改修……) • GitHub (private) + Travis CI、 Pivotal Tracker、Yammer、Facebookメッセージ、 メール、IRC、idobata Developers Summit 2013 Action ! 2513年2月19日火曜日
  26. 26. Developers Summit 開発体制・利用ツール EVERYONE, GIT ON BOARD! 大事なところなので手書きで失礼します Developers Summit 2013 Action ! 2613年2月19日火曜日
  27. 27. Developers Summit ユーザーストーリーで開発 EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 2713年2月19日火曜日
  28. 28. Developers Summit ユーザーストーリーで開発 EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 2813年2月19日火曜日
  29. 29. Developers Summit 業務連絡などはYammer EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 2913年2月19日火曜日
  30. 30. Developers Summit GitHubでも仕様の議論 EVERYONE, GIT ON BOARD! ursm: こんな感じにしてみました knsmr: なるほど!いいすね! xxx がyyyだとするとzzzのほうがいいか な? usrm: だとすると、こんな感じ? devにデプロイしたので見てみてく ださい knsmr: 素晴らしい! usrm: merged Developers Summit 2013 Action ! 3013年2月19日火曜日
  31. 31. Developers Summit git で実装過程がスケスケ EVERYONE, GIT ON BOARD! • 開発中にハマったり、悩んだり、議論したり、 コーディングスタイルや命名で迷ったりする様も 日々みえる • 圧倒的な「餅は餅屋」感がある • ノリノリで開発してもらえてるなぁと感じること も良くある。emojiが盛ん • 新卒2年目に師匠が突っ込むOJTまで毎日見える Developers Summit 2013 Action ! 3113年2月19日火曜日
  32. 32. Developers Summit 検収はどうしてる? EVERYONE, GIT ON BOARD! • Pivotalで「acceptボタンを押す=検収」とした • 契約区切りごとに検収書にストーリ一覧の打ち出しを付 ける • クラウド納品でOK? 実動サービスが確認できればこれ 以上の証跡はなし • コード、テストなど一式はCD-Rでも保管 • 法務にしろ経理にしろ、キチンと説明すると「それ、い いじゃないですか」で話が通ることのほうが多かった Developers Summit 2013 Action ! 3213年2月19日火曜日
  33. 33. Developers Summit 開発チームの皆さん と、ご一緒させていた だいています! Developers Summit 2013 Action !13年2月19日火曜日
  34. 34. Developers Summit Developers Summit 2013 Action !13年2月19日火曜日
  35. 35. Developers Summit 渾身のpull request EVERYONE, GIT ON BOARD! リーダブルコード p123! という如くの渾身の ジョークだったのに無反応にmerge済み…… Developers Summit 2013 Action ! 3513年2月19日火曜日
  36. 36. Developers Summit viewは結構いじります EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 3613年2月19日火曜日
  37. 37. Developers Summit ライブラリの挙動も調べて直します EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 3713年2月19日火曜日
  38. 38. Developers Summit データ移行のスクリプトも書きます EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 3813年2月19日火曜日
  39. 39. Developers Summit 悪乗り pull request…… EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 3913年2月19日火曜日
  40. 40. Developers Summit 業務妨害レベルの pull request EVERYONE, GIT ON BOARD! 予算都合で開発ストップ。じゃあもう自分でやる!という感じ でDBにtableを作ってassociation定義して……(実はリード 開発者を焼肉で懐柔して実装方針を教えてもらった)。 Developers Summit 2013 Action ! 4013年2月19日火曜日
  41. 41. Developers Summit 順序が逆? OSSにpull reqしてみた EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 4113年2月19日火曜日
  42. 42. Developers Summit ソーシャルコーディング陸続き! EVERYONE, GIT ON BOARD! GitHubのネットワークコネクション図。OSS もSIで作るアプリも同じクラウド、方法論。 陸続きなんだ、きっと http://www.flickr.com/photos/franck_/4460148300/ Developers Summit 2013 Action ! 4213年2月19日火曜日
  43. 43. Developers Summit 酷いコードもcommitします EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 4313年2月19日火曜日
  44. 44. Developers Summit お隣からベテランがひょっこり! EVERYONE, GIT ON BOARD! 西村:豪快にSQLが…… hibariya: SQL 一発で引け この辺がソーシャル るようにした ursm:3つ別々にSQLで求 めれば良いのでは? moro: SQLと聞いて!! お隣から参入! Developers Summit 2013 Action ! 4413年2月19日火曜日
  45. 45. Developers Summit やっぱりお隣から! EVERYONE, GIT ON BOARD! Developers Summit 2013 Action ! 4513年2月19日火曜日
  46. 46. Developers Summit 時にはリジェクトも! EVERYONE, GIT ON BOARD! えっ? Developers Summit 2013 Action ! 4613年2月19日火曜日
  47. 47. Developers Summit We are a team!!! Developers Summit 2013 Action !13年2月19日火曜日
  48. 48. Developers Summit 深夜3時に仕様の議論が勃発 EVERYONE, GIT ON BOARD! 深夜に、ふと目が覚め てブラウザに向かう。 あの仕様が気になる。 メモ……、すると予想 外にリアルタイムの反 応が! ブラウザのタブ がチカチカ、チカチカ Developers Summit 2013 Action ! 4813年2月19日火曜日
  49. 49. Developers Summit ローンチ日にプチ炎上 EVERYONE, GIT ON BOARD! スミマセン、炎上……。今から謝罪文を書きま す。深夜ですが即デプロイは可能でしょうか? We are a team! 物凄いスピードで次々とトラブル対策。速攻実装、速攻デ プロイ。ブラウザのチカチカが忘れられない。組織を超え たチーム感 Developers Summit 2013 Action ! 4913年2月19日火曜日
  50. 50. Developers Summit ソーシャルコーディングは企業にも浸透する EVERYONE, GIT ON BOARD! • インターネット → イントラネット → 企業間 VPN(クラウド経由) • Git ( dvcs ) → 分散協業 → ソーシャルコー ディング → OSS → SIer (Web系) → ユー ザー企業 Developers Summit 2013 Action ! 5013年2月19日火曜日
  51. 51. Developers Summit git で皆さんご一緒に たぶんアジャイルと同じで、git/GitHubのような特定のツールを使え ばソーシャルというものでもないのでしょう。というより、われわ れは100万年前からソーシャルな生き物。それが活かせるツールや方 法論が出てきているということ。使わない手はない。 Developers Summit 2013 Action !13年2月19日火曜日
  52. 52. Developers Summit Everyone, git on board !! 船に乗り込み、一緒にやろ う。同じ船で漕ぎ出そう! Developers Summit 2013 Action !13年2月19日火曜日

×