昨日8/23(土)はDevLove現場甲子園2014 東日本大会というイベントで天使コード(※1)についてのお話をさせていただいてまいりました。会場は日本オラクルさんで、過去に同会場でいろいろな研修を受けていた身としては少し感慨深いものがあります。そしてありがたいことに、講演の人気投票で見事トップを勝ち取り、MVPとしてラストに表彰をいただきました。いやー、びっくりだ・・・。
※1 例の単語を「しずかったー」で綺麗な言葉に変換すると、天使コードになります。
お話したスライド
8月上旬にSonicGarden Studyでお話したものを、更にブラッシュアップしてお話をさせていただきました。基本骨子は変わっていないのですが、「7つの秘訣」をコードレビューの心技体のうち、<心>と位置づけたところが大きく違う部分です。
心構えだけでコードレビューができるはずもなく、もちろん実装技術が伴わなければレビューができませんし、いくら心構えと技術の知識があったとしても実践から得られる経験がなければレビュー力は向上しません。という訳で、技と体の部分も、今後のSonicGarden Studyで発信していく予定です。
オフラインでもお話をさせていただいて嬉しかったのは、
- あのスライドを見て、現場でもコードレビューについて考える良い機会になりました!
- 実際に社内のコミュニケーションツールでURLを貼り付けてディスカッションしました!
- 7つの秘訣は分かったけど、いざ自分の現場で考えると難しくてモヤモヤする。でも、良いモヤモヤをもらいました!
といった声をいただけたことです。とても嬉しいです。これからもいろんな人達に良いモヤモヤを提供できればと思います。
各講演を聞いてTwitterでつぶやいたことまとめ
「スマホの動画をテレビで再生!動画共有アプリがChromecastと歩む物語」by 深澤ひかりさん
Adobe Airでのアプリ開発ってどんな感じなんだろうー。 #devlove
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
とつぶやいたところ、同僚から「Adobe Air重い」というコメントを頂きました。
それはさておき、我が家でもAppleTVにスマホの映像を流すことが多いので、スマホとテレビの連携というのはかなり使い道のあるユースケースですね。
この講演で紹介されていたREPREというアプリは特定の人の間で動画を共有することのできるアプリなので、例えば実家に子供の動画を送ったとして、その動画をお茶の間で再生してもらうみたいなユースケースで大活躍しそうです。我が家でもよくAppleTVでiPhone内の動画を流していますし、よくあるユースケースだと思います。
「私がドメイン駆動設計をやる理由」by 増田亨さん
「これ以上何もできないソフトウェア」をジェンガで例えるの、良い。触ると崩れちゃうのね。 #devlove
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
「これ以上何もできないソフトウェア」をジェンガで例えられていて、凄く上手いなーと思いました。機能を引っこ抜いても壊れる可能性があるし、どんどん機能を追加していっても壊れる可能性があるんですよね。
プログラミング言語/フレームワーク/実行環境はモデル化 + コーディングにおける「制約」。いきなり上手くはいかないので、ぐるぐるとプロセスを回しながら改善していく。制約を上手く活かしてモデル化するのも重要だと思う。 #devlove
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
業務の構造をコードで表現するということは、成長できるソフトウェアを開発する上でのコアだよね。だからこそプログラマが深く業務を理解するメリットがある。 #devlove
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
いかにモデル化するか、というのはプログラマの腕の見せどころですね。ただし、いきなり完璧なモデルを作れるような、そんな銀の弾丸的な方法論はなくて、モデルに関しても改善のサイクルを回すべきという話もありました。これは原田さん(@iwaoRd)も同じことを次の講演でおっしゃってましたね。
「Modeling × TDD × DDD」by 原田巌さん
「システムは物語でできている」良い言葉。言われたことを単純にモデル化する前に、それが何を解決するのかを考える、物語を考える姿勢は、より良いシステムをつくるために必要だと思う。 #devlove
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
「システムは物語でできている」という言葉自体は平鍋さんの言葉。様々な物語を紡いでいって、システムという一つの大きな作品を生み出すという考え方は、物凄くしっくりきました。
「俺が考えた最強のID連携デザインパターン」by 倉林雅さん
Twitter IDが似ている人の発表が始まった。@kura_labさん #devlove
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
Twitter IDの似ている@kura_labさんの講演でした。おかげでOpenID力が上がりました!
参加者ダイアログ(みんなでいろんなお話をする時間)
オリオンビール飲みたさ。話した後に飲みたいけど、ぬるくなっているのでは。 #devlove
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
講演を控えているのでビールを自重していました。飲みたかった。
「スカンクワークだからこそ必要! 誰でもグロースハッカーになる3つのこと」by 落合恭子さん
自分たちが考えていたユーザーへの価値と、実際にユーザーが感じていた価値が食い違っていたという例、すっごくよく分かる。だからこそフィードバックを得る仕組みが必要なんですよね。モデルママさんからフィードバックを得ているの、凄く良い。 #devlove創 #devlove
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
フィードバックは遅くても構わない、という考え方は、自分の考え方は絶対合っているという、自意識過剰的な側面がありますよね。ターゲットユーザーからきちんとフィードバックを得ているの、凄く良いなと思いました。いわゆるAARRR的な話ではないのも、良かったです。
「ワークショップデザインに期待されるもの」by 山岸ひとみさん
ワークショップデザインの話。提供したい本質を可視化して、毎回のミーティングで確認するようにしているとのこと。何かを実現しようと考えているときには、共通してやるべきことの一つですよね。 #devlove #devlove創
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
当日の現場でフレキシブルに動くために進行表を作りこむ必要がある。ちゃんと進行が決まっていないと、逆にフレキシブルに動けないんですよね。 #devlove #devlove創
— Masahiro Nishimi (@mah_lab) 2014, 8月 23
ワークショップデザインの話、凄く面白かったです。例えば会社内でのワークショップであれば、それぞれコンテキストの違うメンバーに会社内の課題に対して当事者意識を持ってもらう、といった目的のものがありますよね。ワークショップというのはそういった目的に対する手段の一つだとは思うのですが、上手くすれば大きな効果が期待できるため、多くの会社内でワークショップが行われていると思います。
ただ、狙いも何もなくワークショップを開いたとしても効果が得られませんし、ときには上手く納得感が得られるようにファシリテーションを行う必要があります。そういったもろもろの設計を行うワークショップデザインというのは、本当に興味深いと思って聞いていました。
再演の様子


なんと、賞状も頂きました。嬉しい限りです。

とてもリアルが充実した一日でした。
更に付け加えると・・・
黒曜石が大活躍しました。
売り上げランキング: 110