SlideShare a Scribd company logo
アイデアを
  塩漬けにしない
世界中の人に手伝ってもらう方法

 サイボウズ・ラボ 西尾泰和(@nishio)


                  2012-04-28 ニコニコ超会議
                  超エンジニアミーティングにて発表
                                       1
まずは自己紹介

• その後、
 • 塩漬け→???事例紹介
 • ???のメリット紹介

                 会場の騒音レベルが高いので
                 喋る内容を文字化しておきます。
                                 2
2008年

Javaで実装された
  Python処理系
   Jythonの本

              Javaの硬さとPythonの柔らかさの
              いいとこ取りをする的な話(在庫なし)
                                     3
2011年

  特集
言語設計の
 基礎知識
        個別の言語ではなく、言語の設計思想
        (何を目的として作られたか)を知ることで
        色々な概念をよりよく理解しようという話。
        60冊分のPDFが入った総集編買うのがオススメ
                              4
緑色のブログ




         5
最近ハマっている
  プログラミング言語
        Alloy
• 軽量形式手法、SATのDSL
• 仕様を自然言語で書いても実装するまで間違いに
 気付けないじゃん?だったら間違いがないか検証
 できる仕様記述言語使おうぜ?という話
                           6
わりとメタ好き
• 特定の言語・ツールよりも少しメタな
 言語の比較や言語の構造が好きみたいだ
 (最近気づいた)

• 今日の話はさらにメタ:
 アイデアを塩漬けに
  しないためには?
                      7
アイデアを実現する方法
• 学生の時:
• アイデア→自分の時間を使って実現する
• 社会人:
• アイデア→自分の時間を使って…あれ?
• 夏休みが1ヶ月あるとか恵まれてたんだな…

                         8
「時間がない」
• 時間は貴重なリソース
• 「やりたいけど時間がない」→「いつかやる」
  がどんどん増える

• 実現してないアイデアは
 いいアイデアに思えてしまう(逃した魚は大きい)

• 「あーこれいいアイデアなんだけどなー、
  やる時間がないんだよな」←生産的じゃないね

                           9
なぜ塩漬け?


• 「やりたいこと」がなぜ塩漬けになるの?



                        10
事例紹介


• 塩漬けの実例とどう解決したかを説明
 受賞作+古いiPad+妻の要望=?




                      11
受賞作: Virtual Star
• 実は僕の作ったCG作品がASIAGRAPH 2009の
 優秀作品に入選してお台場
 科学未来館で展示されてた
 んだけど見た人いるかな?

• 以上宣伝でした!!!
• せっかくだからもっと露出
 したい!特に世界の人に!

                                12
iPad 2発売…


• 古いiPadは何に使うか…



                  13
置き時計がほしい by 妻

• しかし、なかなかいいデザインの時計が見つから
 ないんだよなぁ。妻は僕の受賞作は気に入ってる
 らしいけど、そういうデザインの無いしなぁ。

• アイデア:
 そうだiPadアプリで時計を作ろう

                           14
そして
数ヶ月
塩漬け   15
なぜ塩漬けに?
• 「やりたいこと」なのになぜやらない?
• できない?→できるつもりでいる。iPhone
 アプリの収益でiPadとiPhone4S買ったし。

• 時間がない?
 →他のこと色々しているじゃん?Alloyとか

• やる気がない?
 →Yes, やる気は貴重なリソース

                             16
やる気を出すには?


• これは語りだすと長いので今回は割愛!



                       17
やる気がでない
• 成果には興味があるが過程に興味がない
• 面白くない、めんどくさい
• これ自分じゃなくて良くない?
• 誰か代わりにやってくれないかな…
• →誰かって誰だよ!

                       18
代わりの人を探そう


• そこでクラウドソーシングですよ!
• oDeskを使ってみた


                     19
oDeskの解説
• して欲しい仕事を投稿する
• 世界中の人が応募してくる
• よさげな人がいたら契約する
• 成果物をチェックする
• 問題なければ対価を支払い評価する

                     20
して欲しい仕事を投稿
• 何がしたいのか?
• 客観的なゴールは?
• 時給か成功報酬か?
• 締め切りは?
• 予算は?

              21
世界中から応募が来る
        インド

         スペイン

              ウクライナ



プロフィールやメッセージのやり取りをして
   よさげな人がいたら契約する
                      22
成果物をチェック

• 出来るエンジニアはいまのところ100%DVCS
 を使っている。Bitbucketのプライベートリポ
 ジトリをソースコードの共有に使った

• メールやSkypeでコミュニケーション。仕様追
 加・変更を交渉したり、バグを指摘したり。



                             23
時給契約の場合
これは今紹介している件とは違うプロジェクトだけど
時給契約なら10分に1枚ランダムなタイミングで取られた
スクリーンショットをこんな感じの画面で確認できる。
                          24
対価を支払い評価する
• クレジットカードやPaypalで払える
• oDeskの手数料は1割
• そして雇った人がよかったかどうか
 各種項目ごとに五段階評価をする




                        25
雇用主も評価される
   お互いひどいことしない抑止力




                26
oDeskの解説は以上!


• 僕はoDeskの営業じゃないんで!!



                       27
なにをやった?

• ウクライナの人にiPad/iPhoneアプリの
 UI周りを頼んだ(回転, 設定, 無料版, etc..)

• CG描画時に呼ばれる関数を用意してもらい、
 僕はその中身だけ実装した

• 彼の実働は3日くらい
    「UI周り」と一言で済ませているけども、デバイスの向きを取って上が12時になるよう
    に回転するとか、設定ボタンを押すと設定画面がでるとか、設定がきちんと保存されて
    再起動した時にきちんと復元されるとか、iPad/iPhoneと無料版/有料版の組み合わせで
    4パターンのバイナリが必要だが一つのプロジェクトでどうやるか、など「知ってれば難
    しくないが知らないと時間のかかる『めんどくさい』こと」がたくさんある。
                                                28
完成: Virtual Star Clock
                            無料版もあるよ!




これは円しか書かれていないのに錯視
(主観的輪郭)で星が見えるVirtual Star
黄金比が持つ1 /φ = φ - 1という構造
がこの現象を作り出している。
(デモ: 画面をタップして描画過程を)
                                       29
メリット
予想以上にいろんなメリットがあった!

• 塩漬けタスクの分割
• 価値観の再確認
• 違う視点の体験
• 実装と学習の加速
• グローバル化の恐怖
                     30
塩漬けタスクの分割
• 何が自分でないとできないことか?
 何が他人でもできることか?

• どう説明したら他人に「自分のやりたいこ
 と」を伝えられるか?

• どういう部品を作ってもらったら、
 やりたいいろんなことに応用が効くのか?
         「塩漬けになっていること」の全部が自分でやらなきゃいけ
         ないことなの?一部切り出して誰かに任せられない?
         任せるためにどう説明するか、タスクの明確化、ゴールを客
         観的に定義。再利用性とコンポーネントの設計。
                                  31
価値感の再確認

• 成果にどれだけの価値を感じているか?
 いくらまでなら払うのか?

• その金額でやってくれる人が見つからな
 かったら自分でやるの?やらないの?

• 本当に、それ、やりたいの?
      その「やりたいこと」にいくら払えるの?1000円?1万円?10万円?
      達成のためにお金を払うことも自分でやることもしない?
      それ本当に「やりたいこと」なの?
                                       32
実装と学習の加速
• エンジニアの生産性は知識によって加速する。
 自分より詳しい人に頼むと自分より短い時間で
 自分よりよいものができる。

• 詳しい人の知識が詰まったコードを読むことで
 自分の学習も加速!知識は貴重なリソース

• 自分が寝たり仕事したりしている間にやりたい
 ことに近づいている!自分のメニーコア化!
       自分の「やりたいこと」のためのコードだからコードリーディングのや
       る気も高くなる。不明なところは聞ける。作った人と議論ができる。
                                      33
違う視点の体験
• 自分がプログラマの応募を見て選抜すること
 で、どんな応募がダメかわかる

• 自分が仕事を頼む側を経験することで、どんな
 プログラマが一緒に働きたくないかわかる

• 英語でコミュニケーションしてものを作った
 実績を持つことで英語恐怖症を克服
       「英語に自信がない」って人も多いかと思う。自信は客観的な成果から
       生まれる。勉強してもTOEICの成績が上がっても不安はなくならない。
       「これは英語でコミュニケーションして作った」という実績が必要
                                        34
グローバル化の恐怖
• インドやインドネシアの大卒初任給は2∼3
 万円。5∼10倍の賃金格差がある。

• 安い時給で働くエンジニアを目の当たりにし
 て→自分の(日本人の)時給はなぜ高いのか?

• 「日本語」という言語障壁のせい?
 その障壁はあと何年自分を守ってくれる?
      インドネシア人のプログラマと自分は何が違うのか?
      日本に済んでて日本語でコミュニケーションできるところ?
      なにか差別化しないと仕事は安い方に流れてしまう。何を目指すか?
                                        35
まとめ
• アイデアを塩漬けにしないための一つの方法:
 世界中の人に手伝ってもらう

• 予想以上のメリットがあった!
 ぜひ一度体験してみるとよいのでは!

• 時間・やる気・知識は貴重なリソース

                   ご清聴ありがとうございました!
                                 36
おまけとQ&A




          37
おわび
• インド人に作ってもらった別のプロダクトだと
 か、試しに時給契約でインドネシア人を雇ってみ
 ている話だとか、$5のタスクにデザイナが9人応
 募してきたので試しに4人契約してみた話だとか、
 ダメな応募をしてきた人たちの話だとかは話の流
 れ上割愛しました。書ききれないし。

• 来年か再来年くらいにノウハウ本を出すかもね。
                           38
No 「安く雇える」
• 個人的には「クラウドソーシングで安く雇える」
 という発想に警鐘を鳴らしたい。

• 給与格差を考えると、こちらが500円値切ると
 あちらは5000円値切られたように感じる。
 だったら500円ボーナスを出して5000円分
 喜んでもらったほうがいいんではないの?

• やる気は貴重なリソース。小銭をけちって貴重な
 リソースを失ったのでは逆効果じゃない?

                           39
Q&A
• Q: 会社がお金を出してくれません
• あなたは会社が買ってくれない技術書は
 読めないのですか?

• Q: 会社が認めてくれないから
 会社のプロジェクトで使えません

• あなたは会社のプロジェクトで使えない技術は
 学べないのですか?

                          40
Q&A
• Q: でもお高いんでしょう?
• 最低価格は$5で技術書1冊買うよりは1桁安い
• つまり、本当に「経験したい」と思っているなら
 上記3つのQは問題ではないはず。
 本当に「経験したい」と思ってるのだろうか?
 やらない口実を探しているのではないか?


                           41
Q&A
• Q: 成果物の著作権は?
• それは両者の合意次第。契約前にメッセージのや
 り取りができるのでそこで詳細な条件を詰めても
 いいし、仕事の投稿時に「著作権はこちらに属す
 る」と書いておいても良いし。

• (追加)「OSSとして公開」を条件に入れることで
 「金のために書く人」より「名誉のために書く
 人」が来るようバイアスを掛けたりとかできる。
      (「追加」は現場で言いそびれたがスライドで追加した内容)
                                 42
Q&A
• Q: やる気を出す具体的な方法はあるか
• 万能の解決策はないし、僕もぜひ解決策を知りたい。
 一つのケースは「山頂に行きたい」と言いつつ「どう
 やって行けばいいんだ?」という状況。「行きたい」
 と言ってても何も変わらない。どう歩くのが最短経路
 かは分からないが、とにかく1歩歩いてみよう。そう
 すれば景色が変わり「こっちは行き止まりだ」などの
 知識が得られる。戻ることになるかもしれないが一歩
 踏み出すこと。それによって対象をより深く知ること
 で道を見出す必要がある。
                         43
Q&A
• Q: Jythonはいまどうなの?
• 僕は今はあまり興味が無い。
•   (追加) Jythonはかたい言語Javaとやわらかい言語Pythonを協
    力させ、適材適所で使うことで生産性をあげよう、という挑戦
    だった。しかしPythonはJavaとは無関係に設計された言語
    だ。親和性が高いとは言いづらい。また静的型付けを前提とし
    て作られているJavaのライブラリ群を動的型付け言語で扱う
    ことの問題点も認識されるようになった。

•   JVM上で動く言語はその後たくさん生まれた。Jythonの6年
    後に生まれたScalaなど、型を重視する言語が勢力を拡大して
    いるのはそのあたりが理由ではないだろうか。
                                        44
Q&A
• Q: 会社から降ってきた仕事を全部クラウドソーシングに
 投げたら働かずに稼げるのでは?

• それは可能だが筋悪。全部外注できるということは、つ
 まり「誰でも出来る作業」しかしてないってこと。会社
 がクラウドソーシングを知らない間は稼げるだろうが、
 知った時点であなたは必要ない人間になる。外注できな
 い部分こそが競争力の源泉。自分のできることのうち、
 外注できないことが何かを考えて、それを伸ばすべき。


                                45
Q&A
• Q: 英語はちょっと苦手…
• 「英語が苦手」を行動しない口実にしてない?
• 日本人を相手に日本語でクラウドソーシングす
 ることも可能 * まずは日本語で「タスクの分
 割」や「価値観の再確認」のメリットを体験し
 てみるのもいいかもね。止まっていても景色は
 変わらない。まずは1歩踏み出そう!

   * クラウドワークス http://crowdworks.jp/
                                  46

More Related Content

アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-