(全国高専プログラミングコンテストで)半年間PMをした感想、思ったこと,知見

はじめのはじめに

この記事はプロコンゼミ(SPC同好会) その1 Advent Calendar 2018の16日目の記事です。

adventar.org

はじめに

今年度も、私はプログラミングコンテストに出場しました。自由部門1番の「iBird」です。

http://www.procon.gr.jp/

1年生のときには三重県の鳥羽で、2年生のときには山口県の大島で開催され、今年度は徳島県の阿南でした。それぞれ課題、競技、自由部門として参加したのでコンプリートです。(1年生のときはサブメンバーであったが。)

特に今年の弊ゼミは全ての部門が通り、1年生もそれなりの人数が会場入りしたおかげで30人もの大群で行動しました。しかも、初めてのぶちょーで初めてのPM(プロジェクトマネージャー)だったのでなかなか大変でした。そのお話を少しだけ書きます。ぶちょー就任してからもう8ヶ月、プロコン本番からもう2ヶ月たっているので大分記憶が飛んでいます。あしからず。

プロコンゼミ代表のお仕事

代表としてのお仕事は

  • プロコン全体のミーティング
  • 各部門のリーダー決め
  • 予算決め
  • 細かい作業と細かい作業の割り振り

とかです。正直あまり思い出せません。

プロコンゼミ全体のミーティング、各部門のリーダー決めは年度の最初に終わりますが、予算と細かい作業の話は毎週毎日毎時間のように出てきました。会計の人をはじめ、部員とのコミュニケーションをしないときついです。(超重要)

インフラとか作業環境を整えたり、掃除やらなんやらしなきゃいけないのかもしれないですが、弊ゼミは能動的に活動する人ばかりなので、重い仕事はないと思います。勝手にやってくれるので。

プロジェクトマネージャーのお仕事

4月から10月までの間、作品のことを常に考えてしまいます。この仕事が本当にきつかったです。

3月

イデア出し。自分の部門は本校の別のイベントで出たアイデアを流用しようと考えていたのでそんなに精神を病むことがなかったです。課題部門はなかなか難航だったみたいです。ただ、変に首を突っ込むと共倒れするということは分かっていたのであまり口出しをしないでおきました。

4月

メンバー集め。slackの履歴を見ると4月9日に自由部門のチャンネルを作ってメンバーを集めてますね。自分自身すごい早めに行動していたつもりだったのですが今思えば遅くない程度だったのでどんなに頑張っても早すぎることなんてないみたいですね。

f:id:ynakano1127:20181216172228p:plain

5月

1年生が入ってきました。

この頃から毎日活動してますね。5月はずっと予選提出資料で苦しみました。その頃は自分が予選提出資料を一人で書いていたので先生からの圧力がダイレクトに来たのを覚えています。23時まで先生の部屋に残るのが日常になっているので過去の自分ほんとうにすごいなーという気分です。なんだかんだでこのときから利用者へのヒヤリングや物品購入など済ませているのでなかなか優秀だったのではないでしょうか。

6月

前期中間試験です。予選提出から2週間でどう勉強しろと。テストが終わってから今の開発フローは始まりました。今ある作品の前に何個かリポジトリは作っていたのですがほとんど捨てたも同然です。でもまぁ一回でうまくいく開発ではないのは分かっていたので良い経験になったかと思います。

今の開発フローというのはアジャイルトップダウンです。2つのメインページを作ってから細かい実装を以下のようなフローで実装していく形になります。Issueは日本語に直訳すると「問題点」ですが、タスクリストとして機能しました。

f:id:ynakano1127:20181216180419p:plain

7月

夏休みが始まる前に主力メンバーが1人消えます。バカンス羨ましいです。ブルジョアを見るたび「資本主義 ああ資本主義 資本主義」

彼が担っていたDockerを引き継ぎを自分がしました。データベースのスキーマ構成をして一通りWebAPIを作った記憶があります。同時並行でフロントのタスクを別の人に任せていたのですが、「不安定なAPIに合わせたフロントはどうせ書き換わるのだからやりたくない」と言ってきたのをよく覚えています。アジャイル開発だからしょうがないと当時は思いました。知識が入った今、考えればデータベースとインターフェースはしっかりしたほうがいいと思います。しかし、とりあえず実装しなければその知識は入らないのです。どの程度知識をつけて実装をするのかは難しいところですね。ただ、一つ言えるのは試作品を完成させてからのウォーターフォール開発は強いということです。最優秀賞・内閣総理大臣賞をとった偉大なる先輩はプロコンで出す前に一度文化祭で展示をしたそうです。

8月

完全にメンバーの遅刻が常習化します。自分しかミーティングに参加しない日もありました。以下先生のありがたいお言葉。

f:id:ynakano1127:20181215213508p:plain

開発フローにしたがって実装の毎日です。ただし、土日とお盆はちゃんと休みました。メリハリ大切。

f:id:ynakano1127:20181215212717p:plain

バカンスに行った人が帰ってきたので自分は開発からすこし手を引くことができました。夏休み末はもう時間取れないぞ!!!なんて脅しを受けてデスマしてました。本当に精神に悪い。

自分の青春の夏休みはプロコンで終わりました。バケーションらしいバケーションはのんのんびよりばけーしょんしかなかったです。本当に精神に良い。

nonnontv.com

9月

パンフレット原稿、システム調書の締め切りが月の最初らへんにありました。提出期限30分前に電車の中で確認すると図番号のミスを発見します。先生と電話をしながらテザリング通信で提出しました。

f:id:ynakano1127:20181216181227p:plain

提出後、一転、先生は余裕を見せ始めました。確かに開発が進み、予選資料に近づいているのはそう。だけど、自分の中の信頼度成長曲線は発散しまくりです。issueを作ってpullrequestをapproveする繰り返し。むしろ不安さえ出てくる始末です。ここで入ってくる全期末試験。終わった頃には残り1ヶ月です。

10月

先生の急な仕様変更がきつかったです。ただ、クリアしないと実証実験に入れないのでしょうがなかったのかと思います。結局、8月の最後に予定されていた実証実験はこの月に送られました。休日にslackでタスクを託すのはすごく心苦しかった。

この月は他にもいろいろな事があった気がするのですがよく覚えていません。文化祭のときに部室で「うわぁあと一週間じゃんwww」と発言した記憶は残ってます。

本番4日前

集荷1日前。荷物の梱包をしなければなりません。そして梱包する前に一度、デモンストレーション会場の設営準備練習をしなければなりません。文化祭の振替休日だったこともあり、午前は3人くらいしか居ませんでした。集荷まで残り24時間もないのに課題部門のリーダーがサーバーをいじっていてとても腹が立ちました。午後には人が何人かきてすごく助かったような気がする。 f:id:ynakano1127:20181216155000p:plain

本番3日前

集荷です。発送料の関係で65inchディスプレイ、43inchディスプレイ、A0パネル×2、ディスプレイスタンドをテープで巻いて一つの荷物としました。160cmx58cmx102cmで、三辺合計320cmです。運送会社と相談するときにこの数字がネックになり、集荷の手続きは困難を極めました。発送直前は伝票が印刷できなかったり荷物の準備がギリギリだったりで辛かった。

本番2日前

限界です。飛行機に持ち込むものの整理とかをやったのかな?

本番1日前

出発です。出発予定時刻に起きました。「絶起」ってやつです。でもまぁ、集合時間に間に合ったのでOK。飛行機でも寝ることは許さずpull requestを確認していました。現地着いてからは少しの間自由時間が取れたので罪悪感を感じながらカラオケで少し寝ました。

その後、会場に行って参加者受付をしました。ホテルに戻ってからデモンストレーションとプレゼンを先生と確認しました。n時間ぶりの風呂に入って、寝たのは3時くらいですかね。

本番1日目

寝坊して朝食を食べ損ねました。1400円くらいだったような...。

リーダーは参加者連絡会議に出ます。弊高専教授が前で話して「権力」を感じました。

システムセッティングをします。噂で「セッティングする時間は厳密に決められている。時間より前に荷物に触れてはいけない」とか聞いていました。今年だけかわかりませんが時間より前に周りの高専がやっていたのであまり気に病む必要はなかったようです。

プレゼンを見ます。自由部門が1番で課題部門が2番でした。発表場所が別だったので両方は見れないと思っていたのですが自由部門が終わってすぐ移動したら案外入れました。

それ以降はデモンストレーションの一般公開です。自分のことばっかりで他高専の作品は全く見れませんでした。最初のうちはコミュ症発揮して説明ではない説明になります。ですが、結局慣れなので説明のパターン化がされてだんだん作業のようになってきます。

学生交流会に参加します。例年とは違くて大喜利でした。

本番2日目

寝坊して朝食を食べ損ねました。1400円。あーあ。

デモンストレーションの一般公開中に審査員が回ってきて審査をします。企業の方とプロコンの方が3回に分けてやってきます。それとは別にマニュアル審査の方が来て予定通りの挙動をするのかをチェックします。

問題は多々ありましたが問題なく終わりました。(支離滅裂)

結果発表しておしまいです。敢闘賞でした。どうせならいい結果がほしかったですけどまぁしょうがないです。

ホテルに戻ってグダっていたら阿南高専の方から電話がかかってきます。「ヤマトで受け付けられない大きさの荷物があったのでどうしますか」と

  • 阿南高専の方が一度学校に持って帰って弊高専へ発送
  • 今すぐ会場に取りに来て

の二択が示されました。前者は申し訳ないので後者を選びました。とりあえずホテルに持って来たのはいいけどこれからどうしようみたいな。

本番終了1日後

飛行機が20:30なのでこの日は大半が自由時間の予定でした。荷物がなければ。朝から佐川急便の集荷を待ちました。先生に出会い直接営業所まで運んでもらいました。圧倒的感謝です。取り戻した自由時間でカラオケに行きました。向かいの部屋に後輩たちがいました。オタクの習性を見た。

半年間PMをした感想

感想は疲れた。ですかね。

思ったこと

です。

1つ目は審査員がプログラム自体をあまり重要視しないということです。最近ではソースコードの自動生成や便利なツールやライブラリを使うことによって実現可能な幅が大きくなりました。だからこそ実現可能なものの中でどのようなアイデアを出してどのように売り出すかが重要視されるわけです。確かに純粋な技術を極めたいのなら研究者の論文を読むほうが楽しいですからね。また、UI、UXも見られます。短い審査時間の第一印象はとても大きいようです。どうでもいいですがMakerFairで見た「Windows 10 IoT Core」を利用した作品はとても見栄えが良くて驚きました。Linuxを得意とする弊ゼミは向いていないように思います。今更Windowsで開発はしにくいですが機会があればやってみたいです。

2つめ。アジャイル開発は回してこそ成り立つ手法です。今回のプロコンでこれを上記の開発フローを回せたといえる人は9人のメンバーの内、自分含めて3人くらいだったように思います。振ったタスクを遠慮なく切った(他の人に回した)結果です。なぜ切ったかというと「遅かったから」なんですね。でも、1回目のフローは遅くて当然で、2回目、3回目になると当然早くPullRequestが飛んでくるはずなんです。後々に受け取れるメリットを考えず「今、遅れているから直ちに切ります」という判断をしたのはもったいないことだったと思います。

分かったこともあります。プロコンで出すWeb開発ごときでは3人がちょうどいいのです。実際ものができてしまったので、確実に言えることです。逆にデザイナーや言語能力者が足らなかったです。プレゼンとかPR資料では何もわからず何もできませんでした。結局先生の言う通りにしていけばよいという「先生駆動プレゼン」や「先生駆動PR資料」になってしまいました。

3つめ。車があると便利です。集荷を頼むより実際に持っていって受け付けられるかを確認するほうが早いです。自由時間で自由に行動ができます。ホテル-会場間の運搬も先生に頼りっぱなしでした。来年は運転手として貢献したいと思います。

知見

知見としては何かあるんでしょうがこれといって出すものもありません。必要になったときに使える知識が増えたと思いますが意識して絞り出しても難しいです。

おわりに

限界にならないように頑張ったけど結局の所限界になってしまうことが分かった。 プロコン辛かったけどいい経験でした。若いって素晴らしい。来年は受験勉強で開発には参加しないと思う。

日本語が下手なので読みにくい、伝わらないところがあればご指摘ください。