Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

【デブサミ2013公募レポ】14-A-7 レポート
「ソーシャルコーディング革命後の開発委託の世界~QA@ITの事例」

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2013/04/24 14:00

 近年、大きな盛り上がりを見せている『ソーシャルコーディング』。GitHubやその他環境推進のためのオープンソースが登場して以降、サービス企業の開発現場や受託開発の現場において、それら手法の導入も次第に試み始められています。

目次

 そんな『ソーシャルコーディング』について、とある開発事例をもとに発注側/受注側それぞれの視点から講演+ディスカッションを行うセッションが、Developers Summit(通称、デブサミ) 2013初日の最終時間帯に行われました。

 本稿では、その内容についてレポートしていきたいと思います。

編注:編集部都合で掲載が遅くなってしまいましたが、デブサミ2013の特別企画として実施された「公募レポーター」の記事を掲載させていただきます)

講演の部

 本セッションの司会は、タワーズ・クエスト株式会社取締役社長であり、TDD(Test Driven Development:テスト駆動開発)の伝道師、そしてイベントに先立って2013年1月に発売された書籍『SQLアンチパターン』(※この書籍、初の“父:和田省二氏との共同監訳”でもあります)も好評な和田卓人氏によって行われました。

 まず始めに講演の部。こちらについては、アイティメディア株式会社 @IT統括部 @IT副編集長、西村賢氏がその発表を行いました。

1.はじめに

 西村氏は@IT(アットマーク・アイティ)で編集記者の仕事を行う傍らで、趣味と実益を兼ねて技術を勉強していくうちに、より興味関心を抱くようになり、「サービスを作らせてくれ!」と会社に上申したそうです。

 諸々の経緯があり、株式会社永和システムマネジメントに開発を委託。そしてリリースされたサービスがITエンジニア向け質問・回答コミュニティ、『QA@IT』です。

 海外には同様のサービスとして『Stack Overflow』がありますが、西村氏はまさにこの「Stack Overflowの日本語版を作りたい!」という思いを抱いていました。

 さらにはそれを「今のモダンな方法で作りなおすべきだ。エンジニアの皆さんの生産性向上に貢献したい。質問に対しズバリの回答が出てくるように。それを日本語で実現させ、ノウハウを蓄積させたい」と考え、先の行動に移した、という形です。

ITエンジニア向け質問・回答コミュニティ『QA@IT』
ITエンジニア向け質問・回答コミュニティ『QA@IT』

 永和システムマネジメントの技術者により、動くプロトタイプがまずは作られはじめ(※結果としてこのプロトタイプは破棄されることになるのですが、その辺りについては後述)、賛成ムードかつ期待も高まる中、『ツールに関係者を呼び込む』『アジャイル、クラウドについて繰り返し説明をする』『プロジェクト関係者を減らす』などの施策と共に無事にシステムローンチを完了。

 QA@ITのローンチ後は、同様の手法で『イベントカレンダー+ログ』なるシステムのリリースも果たします。

 ここで気になるのは、『なぜメディア企業がサービスを?』という点。西村氏は、『重要なポイントです』と前置きし、自らが携わってきた情報メディアとプラットフォームの変遷を交え、『メディアとサービスの接点に価値が生まれてくるだろう』と力説。

 マーク・アンドリーセンの『ソフトウェアが世界を飲み込む』という言葉を引用し、『いろいろな産業で、ソフトウェアによる革新が起こっている』と指摘しました。

 また西村氏は、ソフトウェアの得意な人達が既存産業に乗り込んで行ったり、未知の領域を切り開いていくには、アジャイルが適しているともコメントしています。

2.QA@IT、開発プロジェクトの道のり

 プロジェクト開始にあたり、開発言語はRuby一択ですんなり決まりました。これは、『担当者(西村氏)が分かる言語が良い』との和田さんの助言もあったとのこと。

 永和システムマネジメントに任せよう、と決まるまでは、西村氏は各コミュニティで評判や実力、実績を聞き、各エンジニアのGithubのリポジトリや、技術ブログを見るなどしていろいろ探していたそうです。

 最終的に、永和さんで提案しよう、と話を持ち掛けたところ、永和システムマネジメントの角谷信太郎氏は「西村さんがやるなら全然ありじゃないですか!」と快諾。

 「決め手としては本当、"知ってたから"に尽きる。元々人間関係があったし、Rubyのコミュニティでも『いつか皆さんの所に、"一緒に作りませんか?"というかもしれません』と言っていました。属人性上等! だってソーシャルですもの。by Nameです」と当時を振り返ります。

 まずはスプリントはなし、マイルストーンに向けてスコープを調整していく形でプロジェクトは始動します。

 環境としては以下のようなツールを取り揃えておりました。

  • Github(private)
  • Travis CI
  • Pivotal Tracker
  • Yammer
  • Facebookメッセージ、メール、IRC

 GithubやCI(継続的インテグレーション)環境が整った状況で、西村氏は開発現場のいろいろなトピックを目の当たりにします。

  • GithubにPull Request、Travis CIでテスト。コードの周りに人が集まり、他チームのメンバーも時々状況を覗きに来たり、コメントを残すことも。
  • Pivotal TrackerでのAcceptアクションを検収扱いにして、検収完了後にデプロイ作業を実施。
  • Github上で仕様の議論がなされ、承認されたらマージ。
「大事なところなので手書きで失礼します」と紹介された、西村氏のスケッチ
「大事なところなので手書きで失礼します」と紹介された、西村氏のスケッチ

 このプロセスは西村氏自身も「素晴らしい!」と思ったそうです。Githubでは実装過程の透明性が非常に高く、開発中にメンバーがハマったり迷ったりする姿を見ることもでき、そして、圧倒的な『餅は餅屋』感を感じたとのこと。

  • ノリノリで開発してもらえているなぁと感じることもよくあった。メンバー間で絵文字を使うなんてことも普通に。
  • 西村氏自身もGithubを使いこなすようになり、時には悪乗り的なPull Requestをしてみたり…。(ライフゲームを404ページに取り込んじゃえ!→すんなり承認、取り込まれた)

 開発現場でGithubに習熟してきた西村氏、今度はOSSにPull Requestを試みます。本来なら順序が逆?(OSS→開発現場)のような気もしますが、この過程は特に問題となることもなく、すんなり成功。

 この経験を踏まえて、西村氏は『ソーシャルコーディングは陸続きなんだなぁ、使っている環境も同じだ』と実感。タイミングを併せて表示された『Githubで何がforkされているか』を示すグラフを見ても、確かに陸続き、繋がっている感じが非常に強く感じられるデータと見て取れます。

 そんな印象的な場面を見てきた西村氏、中でも特に印象的な場面だったと振り返るのが以下のシーンでした。

 時は、システムのローンチ日。ところがその日、プチ炎上な状況が発生してしまいます。

 「今から謝罪文を書きます。深夜ですが、即デプロイは可能でしょうか?」と申し訳なさそうにメンバーに申し入れる西村氏。「そうは言っても、契約だから厳しいよなぁ…」

 すると、返ってきた答はなんと、「We are Team!!」。ものすごいスピードでトラブル対応が進み始めます。

 一瞬でタスクが出来、一瞬で処理が実装され、一瞬でタスクが消化された。

 「その際の"チカチカ"(通知アラートが光る様)は、忘れられないですね」と西村氏は当時を振り返り、感慨深そうに語りました。

 西村氏は、気付いたら「僕らがやります」とチームを代弁する発言が多くなっていたそうです。実際は西村氏1人しかその場にいなかったとしても、上記のような連携を経ていくことで、自然とチーム意識が芽生えてきたのだと思われます。

 西村氏はまとめとして、「これから先、ソーシャルコーディングは企業にも浸透していく。ユーザー企業の内製アプリケーションなどにもそういう流れは来るのではないか」と述べました。また自身のActionとして、「Gitで皆さんご一緒に。結局のところ、人類は昔からソーシャルしてきた。それをサポートするツールがあるのなら、どんどん使おう。Everyone git on board!」とコメントし、事例発表講演を締めました。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • しんや(シンヤ)

    2010年末~2013年前半位までの期間で興味のある勉強会に頻繁に参加。参加してきた勉強会のレポートブログとTogetterをひたすらまとめ続け、まとめ職人(自称/他称含む)として暫く過ごしておりました。色々な縁あってDevelopers Summit 2013では『公募レポーター』も務めました。...

バックナンバー

連載:【デブサミ2013】セッションレポート

もっと読む

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5