非エンジニアがFirefox OS WoTハッカソン - Fx0 meets mbed -に参加して得たこと #fx0xm
こんにちは.
私は本業では営業だったりチーム作りだったりそのマネジメントだったりと、全然エンジニアリングとは関係ない仕事をしています.
そんな私ですが,やはりもっと技術に,というかものづくりに関わりたいなと考えており,自分のバックグラウンドでものづくりにどのように貢献できるかというのを試したいと思っていました.
そんな折,@toyowataさんのツイートだったかfacebookの書き込みだったかでこのハッカソンの存在を知り,絶好の機会だと思い,思い切って参加してみました.
1. 当初の考え
ラズパイをいじったり,mbedでLチカしてみたりといった遊びのようなエンジニアリングはやっていますが,技術分野で貢献できるという考えは持っていなかったので,その他の業務を担おうと考えていました.
2. アイデアソン本番
アイデアソン(何を作るかのアイデア出し)自体は50分しかなかったので,結構スピード勝負だったのですが,結果としては色々なアイデアが出て,その時のメンバー間ではコンセンサスの取れたアイデアを一つ選出できることができました.ここで私が気を付けたのは以下のようなことです.
- ブレスト => カテゴライズ => 選定という流れで進める
- ブレストはとにかく多くの意見がでるようにする.質より量.
- 人の意見は全部肯定するような雰囲気作り
- 時間管理
3. リクルーティング
アイデアソン(アイデア出し)とハッカソン(ものづくり)でメンバーの異動がありだったので,メンバーのスカウトというのが重要な要素でした.うちのチームはソフトのエンジニアはFirefoxの中の人がいたので強そうでしたが,mbed経験者が私(戦力外)しかいなかったので,多分H/Wに不安があるなと思って強そうな人を探しました.
私がmbedを買った時に同時に買った本の著者である@jksoft913さんのチームのアイデアがうちのアイデアと親和性高そうだったので,一緒にやりましょうよって言ったら振られました(笑).
でもその後チームのメンバーがナンパしてきてくれたり,他のチームから組み込みやっててmbedも使ってますって方が流れてきてくれて,6人体制に.完全に私はワークしてなかったのですが,結果オーライでした.反省点は以下の通りです.
- どのような人が必要かを明確にしておくべきだった
- 誰がどういうスキル持ってるのかとかを開始前に把握しておくべきだった
- アイデア発表の時点でハード強い人来てくださいってアナウンスしてもこっちから取りにいかないとまず来ない
- うまくいきそうな勢いをアピールして人を惹きつける工夫が必要だった
これってまんま企業の採用と同じだなーと思いました.
4. 全体のシステム検討
アイデアとしては何を作るというのが決まり,メンバーも揃ったのですが,具体的な方法論は決まっていないので,そのあたりを詰めるフェイズです.どのセンサで何を取って,それをどのマイコンで受けてどこに送って,どんな出力にしましょうとか,こことここはどんな通信規格でデータのやり取りをしましょうなんてことを決めました.
ここくらいまでが自分が技術的に貢献できる限界かなと思っていたので,積極的に議論に加わるよう心がけましたが,その時に意識したのが以下のようなことです.
- あとで問題が発覚すると大変なので,少しでも懸念があったらトンチンカンな内容かもしれなくても言う
- この時点で多分各メンバーの描いている最終形にズレがあると思っていたので,そのあたりを明確にして,全員で同じ最終形を描けるようにする
- それぞれのスキルを確認しながら,どのように分担するかイメージしながら仕組みを作るよう促す
結果,以下の写真のようなスキームになりました[1].
部屋の環境やスマホからの操作などを入力として,家電やWebサービスを駆動するためのプラットフォームです.この後mbed周りは誰,OpenWebBoard(OWB)でサーバ立てるのは誰,OWBでディスプレイへの出力部分を作るのは誰,といった具合に担当を決めました.
5. 作製
ここは私が関われるところはあまりないだろうと思っていたので,少なくとも以下のような業務は行おうと考えていました.
- それぞれの作業の進捗管理
- それぞれの作業間のつなぎ込みのサポート
- 他チームの情報収集
- 進捗の履歴残し(Fabble[1])
- 買い出し(結局なかった)
でも実際やってみると意外と私ができることも多く,サンプルコードを改変してセンサの値をサーバ側に飛ばしたり,センサのアナログ信号をデジタル信号に変換したりといったところを書くことが出来ました.このあたりはいままでやりたかったけどやり方が分からなかったところだったので,学べたことはかなりありがたかったです.
6. 発表
ここをやらないでどこをやるんだというくらい,私ができる数少ないパートでした.基本的に大枠は初日の開始時点から作り始め,製作物の進捗状況や方向転換の状況などを元に微修正を加えていきました.気を付けたことは以下の通りです.
- デモでまごつかないように準備に力を入れる(特に無線LANとの接続まわり)
- 万が一に備え,資料は他のPCでも映せるようクラウドに置いておく
- 事前に練習する(できなかった...)
- 説明の前にデモを見せて,裏の仕組に興味を持ってもらってから説明する
- 将来性を感じさせる内容にする
発表の際にデモで「あれ?つながらない,さっきはつながったのにな。」とかやると聴衆が一瞬で自分の作業やネットサーフィンに戻ってしまうと思ったので,ここは気を付けました.それでも発表1分前にIPアドレス取得できなくなったときはめちゃくちゃ焦りました.結果,ブレッドボードから配線がぬけかかってたのが原因で,すぐ直って良かったです.
また,いざ発表しようと思ったらMacがプロジェクタに繋がらないとか,PCの電源が落ちたとか,Windows Updateが走り始めてしまったとかアルアルなので,クラウド上に公開して他のPCからも速やかにアクセスできるようにしました.
かのスティーブジョブスですらプレゼンの前には何十回以上も練習したそうです.また,内容よりも話し方や態度が大事なんて意見も聞くので[2],練習を行おうと思ったのですが,意外とソース書いたりすることになったりてんやわんやで練習は全くできませんでした.本当にダメな例です.練習できなかったこともそうですが,こういう言い訳をするのも良くありません.
通常は説明をしてからデモを見せるのですが,奇をてらって先にデモを見せて聴衆に「どういう仕組みで動かしてるんだろう?」と疑問を持たせてから説明しようと試みました.ところがここは練習不足がもろに出て,デモの内容があまり伝わらなかったかなぁと反省しています.
将来性を感じていただけるようプレゼンしようと心がけました.2日間で作れるものには限界があると思っていましたし,ハッカソンだからビジネスとか考えなくていいやというのも面白くないと思っていたので,将来のビッグビジネスの種を作りたいと思っていたからです.結果として司会の方からもそういった旨のコメントをいただけましたし,個人的にもこれをもっと発展させたいと思えるプロダクトになったのでこの点には満足しています.
このハッカソンの内容は全てオープンにするということでしたので,遠慮なくこれを土台に色々と発展させていきたいと思います.その進捗は随時Twitterとかこのブログでも共有しますし,Fabbleにも書いていこうかなと思います.
参考文献
[1]Fabble「Fx0-hackson-20150214-T6」(http://fabble.cc/daisukekmr/fx0xhacksonx20150214xt6)
[2]Hatena Keyword「メラビアンの法則」(http://d.hatena.ne.jp/keyword/%A5%E1%A5%E9%A5%D3%A5%A2%A5%F3%A4%CE%CB%A1%C2%A7)