こんにちは、2020年2月からピープルソフトウェアにJOINさせていただきました kami_teru です。17年目のソフトウェアエンジニアです。よろしくお願いします。
今年、社内でFlutterアプリコンテストが開催されました。
そのあたりは主催のよわよわ氏が次のエントリにまとめていますので、ぜひ併せてご覧ください。
私もそのコンテストに参加した1人ですが、思うところあって、その後の『感想戦』の提案・企画・推進をやらせていただきました。転職してからコンテストの感想戦を開催するに至るまでの経緯と、感想戦をやってみた所感をまとめたいと思います。
ことの始まり
2020年2月中旬。
中途採用の入社手続きなどが一段落し、案件作業を本格化させようという頃、社内ポータルにこんな投稿が。
「これは kami_teru がどんなエンジニアなのかを社員の皆さんに知ってもらう良いきっかけ!」と考え、応募しました。
なお私の経歴は主に基幹系システムのバックエンド構築を主とするものだったので、Flutterもスマートフォン端末向けアプリケーションも未経験。不安もありましたが、やらなかった事を後悔するよりはと考えての挑戦1。あと賞金も大きかったし2。
やってみたこと
さて応募したものの、黙々とアプリ制作をしているだけでは「 kami_teru がどんなエンジニアなのかを社員の皆さんに知ってもらう」目的は果たせません。そこでいろいろやってみたことを紹介します。
QiitaにFlutterの技術情報を投稿した
私が習得したことを公開すれば役にも立てるかなと考え、ピープルソフトウェアのOrganizationがあるQiitaに投稿することに。
こんな記事を投稿しました。
- 【Mac不要】開発中のFlutter製アプリをiOSとAndroidに実機配備する手順 - Codemagic編
- 【Mac不要】開発中のFlutter製アプリを仲間のiOS端末に実機配備する手順 - Codemagic&TestFlight編
- 【Mac不要】FlutterアプリにFirebase SDKを組み込んでiOSとAndroidに実機配備する手順 - Codemagic編
- 【Mac不要】FlutterアプリにFirebase Crashlyticsを組み込んでiOSとAndroidに実機配備する手順 - Codemagic編
- 【Mac不要】iOSとAndroidのFlutterアプリから利用者のGoogle Photosにアクセスする手順 - Codemagic編 (前編)
- 【Mac不要】iOSとAndroidのFlutterアプリから利用者のGoogle Photosにアクセスする手順 - Codemagic編 (後編)
Fluterアプリコンテストの要件にiOSはありませんでしたが、制作するアプリが自分と妻のiPhoneでも利用したいものだったので、iOS絡みのエントリが多め。あと開発するならまずCI構築しないと気が済まない人になってしまった3ので、実機配備色濃いめです。
社内勉強会でFlutter×Codemagicの活用方法を発表した
社内向けの勉強会で発表時間をいただけたので、ネタにFlutter×Codemagicの活用方法を選び、「Flutterスターターキット」と題して発表しました。
要約すると前述のQiitaの記事になるのですが、実際にCIを動かしてデモンストレーションを行い、感覚として捉えてもらいたい発表内容にしました。
これらの記事や発表が実際に他の参加者の皆さんの役に立ったかどうかはよくわからないところですが、主催のよわよわ氏との関りが深くなりましたし、「盛り上げてくれてありがとう!」を言っていただけたので、やってみた意義はありました。
他にやってみたことは、家族や案件のメンバーに「こんなん作るんやで!」と自慢して自分を追い詰めたくらいですかね。。。どうせやるならグランプリ!を目標に必死で開発しました。
結果
グランプリをいただきました!
他のどのアプリも完成度が高い中でいただけたので、ありがたかったです。
そして、感想戦へ
アプリを提出して審査が始まった頃、コンテスト参加者に他の提出アプリが配付されました。そこには「自分にはないアイデア」や「使いたくなるデザイン」、「自分はあきらめた機能」などがあり、知りたい!という意欲が高まりました。
そこで参加者同士で技術的な交流を深める手立てはないかと考え・・・、
将棋界における「感想戦」の文化(Wikipedia - 感想戦)にインスパイアされ・・・、
『Flutterアプリコンテスト感想戦』を思いつきました。
それぞれの制作秘話や苦労話、他の提出アプリに対する感想を伝え合えば、各々の技術向上につなげられるかもしれない。
コンテスト主催のよわよわ氏に相談し、感想戦をの企画・推進の旗振り役を務めさせていただけることになりました。
感想戦を開催するにあたって
このご時世なのでオンライン開催というところだけは決まっていましたが、他は一から調整する必要がありました。
非公開?公開?
「コンテスト参加者だけでやるか?」それとも「公開でやるか?」が最初の分岐点でした。
- 前者だとより遠慮ない意見が飛び交って、より本来の目的を果たせそうです。
- 後者だと参加者が歩んだ道のりを広く伝えることで「次回は参加しよう」という人が増えるかもしれません。
実は、私は次回コンテスト運営に名乗りも上げていまして、今回のコンテストの参加者には偏りが見られることを理解していました。そこで後者のねらいについても運営メンバーに相談した結果、次のような方向で開催しよう、ということになりました。
第一部は公開のパネルディスカッション形式として全社員からの傍聴を募る。
第二部はアプリコンテスト参加者を中心とした身内に絞って、ワイワイやる。
これで方向が定まりましたが、第一部は運営メンバーだけでにやるのはハードルが高い。
全社員を呼ぶイベントだし、業務時間内にやってよいかなど、自分たちでは決められません。
そこで......、今期から発足した部署「経営企画部」に相談してみました。
経営企画部に相談
kami_teru「・・・ってことで、パネルディスカッションで次のような話をできればなぁと。」
- 制作秘話(実はこんな技術も織り込んでたんだぜ、とか、ここは妥協した・・・とか)
- 他の参加者のアプリに関する批評(ここが良い!とか、ここはこうしたらもっと良い、とか)
- コンテスト参加者ならではの苦労話
kami_teru「つきましては、当日の司会進行とか企画段階とか支援いただきたいのですが・・・」
経営企画部のえらい人「経営企画部としてはむしろ乗らせてください、となるイベント。開催にあたっては企画・集客・当日対応・事後フォロー・事後広報、いずれの段階でも支援可能です。」
即決!なんと協力的!これでもう大船に乗ったようなものです。
さらにここで、以下を決定。
第一部、第二部とも、定時時間後にオンラインミーティングを利用して開催する。(多くの人が参加しやすいよう考慮)
第一部は、定時後の1時間で開催し、業務時間内扱いとする。(要は、残業付けて良し)
第二部は、第一部終了後の1.5時間で開催し、打ち上げも兼ねる。(乾杯するので残業はつかない)
こういったデリケートなところを先に決めておけたのは良かったです。
そうして土台を整えた後、主役の皆さんへの呼びかけを行いました。
コンテスト参加者からの協力の取り付け
アプリコンテスト参加者向けの「感想戦の提案書」を作りました。
以下、その一部を紹介します。
-
提案と意義
Flutterアプリコンテスト『感想戦』のご提案
Flutterアプリコンテストに作品を提出されました皆様で、『感想戦』をしませんか?
『感想戦』とは将棋用語で、次のように定義されているものです。以下、引用 - ウィキペディアの執筆者,2020,「感想戦」『ウィキペディア日本語版』
対局後に開始から終局まで、またはその一部を再現し、 対局中の着手の善悪や、その局面における最善手などを検討することである。
またその目的は、以下のように書かれています。
感想戦を行うことによって、一局を客観的に見直すことができ、棋力の向上につながるためである。
皆様に『感想戦』を提案させていただく狙いはまさにそこで、それぞれの制作秘話や苦労話、他の提出アプリに対する感想を伝え合うことで、各々の技術の向上につなげたいと思っています。
-
やりたいこと
身内でわいわいと、制作秘話や感想、苦労話などをできればなぁと。
皆さんには、Flutterアプリを作り上げた仲間として、ぜひぜひ参加いただきたいのです。 -
加えて、お願いしたいこと
実は『感想戦』の一部を「社員みんな傍聴できるイベント」として切り出し、全社的に開催したいと考えています。狙いは、コンテストに興味を持ってくれる人を増やし、次回以降のコンテストがより盛り上がるようにしたい、ということです。
...(中略)...
この提案を経営推進部ご協力のもと、以下のように開催したい運びとなりました。- 「身内イベント『感想戦』」と「全社イベント『感想戦』」を同日開催する。
- 18:30~19:30を「第1部 - 全社イベント - Flutterアプリコンテスト『感想戦』」とする。
- 19:40~21:00を「第2部 - 身内イベント - Flutterアプリコンテスト『感想戦 兼 打上げ』」とする。
つきましては、皆様には第1部にも、できれば出演(オンライン顔出し)する形でご協力をお願いしたいなと。
※でもこれは当初計画していなかった「後付け」の話なので、できればお願いしますっ、というスタンスです。。。辞退いただいたからといって何もありませんので、ご安心くださいっ。
提案書にも書きました通り、この『感想戦』企画は、完全後付けの話。
ですのでFlutterアプリコンテスト参加者の負担にならないようにと心がけました。
結果・・・
全アプリの制作者(制作チーム代表者)に、第一部/第二部ともご出演&ご参加いただけることになりました。なんともありがたいお話でした。
感想戦の開催に向けて
必要な協力を取り付けることができたので、あとは当日に向けた準備を進めました。
以下を決定していくにあたっては、経営企画部のチームに相談させていただきました。
第一部:全社イベント - パネルディスカッション の準備
モデレーター
パネラーの半数以上を手玉にとれるモデレーターということで、社長にお願いしました。
パネラー
コンテスト参加者がパネラーですが、限られた時間内でより多くの言葉を引き出すために事前アンケートを取り、その回答をもとに当日の進行をする旨を伝えました。
司会進行
経営企画部からお二人に出演をお願いしました。オンラインミーティングの管理、進行・スライドの切り替え、タイムキーパーなどのすべてを担います。
(これで私は当日、一人のコンテスト参加者(パネラー)に戻ることができます。感謝。)
第二部:身内イベント - 感想戦 兼 打ち上げ の準備
こちらは成り行きに任せてワイワイと、というところですが、約10名がオンラインで会すると話すタイミングが難しかったすると考え、こちらもモデレーターを決めておくことに。
コンテストの審査委員長も務めていただいたプロダクト事業部のえらい人にお願いしました。
事前アンケートの作成
以下のような内容を、フリーフォーマットで記入いただく内容としました。
制作秘話
- 制作理由、制作のきっかけ。
- こだわったポイント、うまくできたところ。
- 制作に取り組む中で、何か得たもの、参加してよかったと思えたこと。
- 構想から実装完了までの期間の配分。
- 構想から実装完了までの期間の配分と、大まかな時間の使い方。
苦労話
- 苦戦した部分
- 妥協した部分
- 制作中、犠牲にしたもの
- その他エビソード/裏話
他の提出アプリについて
- 良いと思った他者制作アプリと、良かったポイント
- 他者制作アプリに「自分ならこうしたい」と思ったポイント。
今後のコンテスト運営のために
- コンテストに参加するに至った「きっかけ」や「想い」
告知
全社員向けの告知を行うにあたり、以下のような課題がありました。
- Flutterアプリコンテストの告知・応募開始から半年以上経ち、関心は薄れている。
- コンテスト表彰式は入賞作品のみの紹介だったので、どんなアプリがあったかを大半の全社員は知らない。
そこで、次の取り組みを行いました。
1. Flutterアプリコンテストの経緯をふりかえる投稿
以下のタイトルを1日1本ずつ、全社員が見れる場所に投稿。過去の投稿を引用しつつ、当時の背景も併せて紹介するようにしました。
- ことはじめ(昨年12月、Flutterコンテスト告知)
- 応募開始(2月)
- 審査員募集(7月)
- 表彰式(9月)
2. 提出アプリの紹介動画制作と公開
最終的に提出された8本のアプリの良さを広く伝えるには動画が最適であるとの結論に至り、急遽、各1分程度のアプリ紹介動画を制作することに。
制作はいろいろ事情が重なり私が8本分の制作を受け持ちましたが、以下のサービスを利用することで、短期間ですべてを作り終えることが出来ました。
制作したアプリ紹介動画は、感想戦開催の前日まで1日2本ずつを全社員が見れる場所に投稿しました。
その動画は、アプリ制作者の権利を守るためにここでご紹介できないことが残念ですが、動画をチェックいただいた制作者の皆さんからは好評を得ることができました。
感想戦当日
第一部:全社イベント - パネルディスカッション
以下の流れで進行しました。(所要時間:1時間)
- アプリ名、キャッチコピーと、制作者紹介
- 前半のお題
- [お題1] 特にこだわったポイント、うまくできたところ
- [お題2] 何か得たもの、参加してよかったと思えたこと
- [お題3] 苦戦したエピソード
- [お題4] 実は…こうしたかった!
- 後半のお題
- [お題5] 制作期間/苦労話・裏話
- [お題6] アプリ制作者が思った「このアプリ、良き!」
お題ごとにネタ(選択肢)を用意しておき、モデレーターが聞いてみたいネタを引く流れ。
前半では、4つのお題に対して各2アプリ分のネタを引き、出演者全員が一通り話せるよう工夫しました。
後半では、どのネタがどのアプリのものかを隠し、モデレーターに自由に引いて進行してもらう形としました。
当日の様子を少しだけ。
司会進行とモデレーターのフリにパネラーが乗せられる形で発言が回り、有意義な1時間を過ごせたと思います。
またイベント参加者とのコミュニケーション手段として slido を開設。イベント参加者の質問を司会が拾う形で紹介し、話題を広げることが出来ました。
第二部:身内イベント - 感想戦 兼 打ち上げ
第一部から少し休憩を挟んでの開催。各自の食べ物・飲み物が準備出来たところで、乾杯して始まりました。
最初こそモデレーターに話題を振っていただきましたが、その後は自然に生じた盛り上がりに流れをゆだねる形で、楽しい時間を過ごすことが出来ました。第二部で第一部での不足分を完全燃焼すする形にできたと思います。
また、これは参加者の一人としての感想ですが、「そうそう、これ苦労するよね!」とか、「実はこのアプリってすごくデザイン洗練されてますよね?」といったところがエンジニア同士で分かり合えたことや、アプリを完成させた苦労と喜びを皆で分かち合えたことがとても大きく、意味のある充実した時間を得られました。
社内アプリコンテストに参加し、感想戦の企画・推進をやってみて
ピープルソフトウェアに入社し、その文化に慣れる間もなくコンテストに応募、そして感想戦の開催まで首を突っ込んだわけですが、苦戦...といいますか、パワーをかけなければならない場面も多々ありました。
文章量の関係でここには書ききれませんでしたが、そのあたりは「エンジニア×感想戦開催技術」という視点でQiitaに投稿していますので、よろしければこちらもご覧ください。(重複する部分もあります)
しかし今、このように動いてきたことは、大変意義のあるものだったと思っています。
最後にその理由を列挙してみたいと思います。
社内アプリコンテストに参加して。
- 入社後すぐ、社内でもそういう企画好きな人たちとのつながりを得た。
- Qiita記事を大量に書くきっかけになった。
- 社内勉強会の発表ネタにもなった。
- おかげで早い段階で「kami_teruは記事書いたり発表したりする人」と知ってもらえた。
- 会ったこともない別地域・別事業部のエンジニアとやり取りするようになった。
- 転職直後に明確な目標を持てたことで、たぶん生き生きしていた。
- 案件以外が充実すると、案件も頑張れるというエンジニアあるある。
- 培ってきた技術は、スマートフォンアプリ向けにも通用するという自信を得た。
- Flutterは楽しい。Riveを組み合わせると超楽しい4。
- でもデザインはやっぱりできる人に頼むべきだなと。自身のセンスの限界を悟った...。
社内アプリコンテスト感想戦を企画・推進・開催して。
- 運営メンバーや経営企画部の皆さんと、一つをやり遂げた感動を共有できた。
- 広く参加者を募るイベントを開催する過程の大変さを思い出せた5。
- だけどピープルソフトウェアはえらい人たちがすっごい背中を押してくれる会社だと実感。
- えらい人だけじゃなく、各方面のエンジニアも上司も、助けてくれた。
- アプリ紹介動画が作れるようになった。
- アプリ紹介動画制作しているうちに、8本のアプリ全部に愛着が湧いた。
- 動画制作や感想戦を通じて、8本のアプリの制作者にも親しみがわいた。
- ここで出来たつながりが、その後の様々な活動に活きている。
- コンテスト参加者の皆さんと、一つのことを共にやり遂げた感動を共有できた。
- コンテストを主催してくれたよわよわ氏に、エンジニアの楽しさを伝道したい仲間はここにもいるよ!と、声が届いていたらいいな。
注釈
- 実は2週間悩んだ。。。あと時間を使うことだから、家族にも了承を得なきゃですし! ↩
- これがあると、家族の説得はらくちんですよねー ↩
- 昔、大阪で「継続的デリバリー読書会」を主催したりしてました。 ↩
- ご興味ある方は下の「Flutter×Riveに関するQiitaへの投稿」もぜひご覧ください。 ↩
- 若いころ、関西のエンジニアコミュニティに参加し、イベント運営を学ばせていただいた過去があったからこそ。感謝。 ↩