iOSDC Japan 2018 で、ベストトーク賞2位をいただきました。タイトルは「iOSアプリの開発速度を170%に向上させたデバッグノウハウ」です。この記事では、スライドの紹介に加えて、スライドに書ききれなかった背景やレビュー体制などについてお話ししようと思います。
発表スライド
スライドでは語られていない発表の目的
この発表は少し特殊な構成で組まれています。発表内で繰り返し出てくる「動作確認の自動化」とは、実のところ「テスト」のことです。しかし、私はこの発表でなるべく「テスト」というキーワードの使用を避けました。
この背景には、iOSDC ではテスト関連の CfP が通らないという経験則があります。私はこの原因を CfP 選考に関わる方たちに次のような人が多いからではないかと推測しました:
- テストをやったことがなくて興味がない
- テストに嫌な体験がある
そこで、上記のような方にも受け入れられてもらえるようなテストの発表を企画しはじめました。前者については丁寧な動機付けとチュートリアルで対応できそうでしたが、後者の対応には頭を悩ませました。ここで閃いたのが「テスト」という言葉を使わないでテストの重要性を説明するというアイデアです。
なぜ「テスト」という言葉を避けたかというと、テストにまつわる嫌な体験が、最近の「テスト」という言葉の使われ方にあると感じたからです。例えば、皆さんも「テスト」を書かなければ村八分、といった押し付けがましいものを見かけることがないでしょうか(この悪い風潮への言及は@t_wada氏による「テスト駆動開発入門」の付録Cによくまとまっています)。このような状況では、テストがどんなに役立つものだったとしても拒否感が先にでてしまうのも無理はありません。そこで、今回の発表では嫌な体験を引きずらないように「テスト」という言葉を避けたのです。
スライドの制作体制
今回印象的だったのは、「スライドをどうしてこんなに綺麗に作れるのか」というご質問でした。端的に理由を説明すると「腕のいいレビューアに丁寧なレビューをしていただいていたから」に尽きると思います。
具体的には、今回の発表ではデザイナー視点(@cocopon氏)・想定聴衆視点(@yokoyas000氏)・社内のテスト識者視点(SWETのみなさま)・社内のiOS識者視点(社内のiOSエンジニアのみなさま)・出版社視点(PEAKSのみなさま)の方々からの多面的なレビューをうけています。また、私が以前から使っているこのスライドテンプレートについては、過去に@itakura2氏のレビューも受けています。
また、私側からもよりよいコメントをいただくために、レビューアに以下の事項を伝えるように努力していました:
想定する聞き手:
- テストをやったことがない
- テストにいいイメージを持っていない
最終的に伝えたいこと(上の方を優先):
- テストを学ぶことの重要性を知ってほしい
- テストを学ぶはじめの一歩はそこまで難しくない
- 自動化の谷の越える/越えないかで天と地の差がある
備考
- 「テスト」が嫌いな人のために「テスト」って言葉は使わないようにしてます
このようなレビューイの工夫とレビューアの方々のご協力によって、わかりづらい配置や説明をことごとく洗い出すことができ、今回のスライドが削り出されたのです。ですから、今回の発表はレビューアの方々の協力なしには辿り着けなかったものと痛感しています。たいへん感謝しています。
言葉のチョイスについて
また、発表や質疑の言葉のチョイスについてもご質問がありました。
これを一般化するならば、「人に何かを伝える機会が多いほど、言葉が磨かれる」ということではないでしょうか。
嬉しかったコメント
以下、嬉しかったコメントです(ありがとうございます!):