株式会社システムインテグレータ 製品企画室 横山弘典(@yokoyantech)
はじめに
先日、弊社主催でMIJS参加企業を対象とした、プログラミングコンテストを開催しました。 毎年開催しており、恒例のイベントになっています。
MIJSとは?
Made In Japan Software Consortiumの頭文字を取ったコンソーシアムです。「日本発のソフトウェアを世界へ!」という志を持った企業が集まり、製品の相互連携を行って海外展開および国内ビジネス基盤の強化を図っています。
コンテストはリモートで開催
プログラミングコンテストは弊社が開発/運営しているTOPSICを使って行われました。弊社も含め、MIJS各社から100名以上の社員に参加していただきました。
プログラミングコンテスト参加企業一覧
- ウイングアーク1st(株)
- (株)エイジア
- エレクス(株)
- (株)クエステトラ
- (株)システムインテグレータ
- SALES ROBOTICS(株)
- 東洋ビジネスエンジニアリング(株)
- (株)日本システムデザイン
- (株)ネオレックス
TOPSICはクラウドサービスであるため、拠点が異なる様々なMIJS企業がリモートでコンテストに参加することができました。コンテストの実施期間内であれば、場所と時間は自由に調整できるため、各社で業務を調整しながら受験していただきました。このように手間をかけずに開催できることはTOPSICでコンテストを開催するメリットの1つだと思います。 [RELATED_POSTS]
マネジメント層を中心とした運営チームを設置
今回、プログラミングコンテストを開催するにあたり、弊社のマネジメント層を中心に、MIJS企業の方々とともに運営チームを設置しました。運営チーム内で受験者のコードを読み、TOPSICの受験結果(正答数、回答時間、テストケース通過数)を踏まえ、可読性も考慮した上で順位付けを行いました。ちなみに、運営チーム内でも受験者と同じ問題を解いており、解説できるように準備しておきました。
プログラミングコンテストのPマークでパシャリ!
マネジメント層はコードを書かない、しかし評価だけはする、という形式では、受験者の立場からすると、内心「技術がわからない人に評価されても・・・」と思いがちです。
「言う人」、「やる人」に分かれるのではなく、指揮官先頭の考え方で、評価者も受験者と同じ問題を解く、という点が運営において重要なポイントであると考えています。
結果発表とソースコードのレビュー会
コンテスト実施後、コンテストの結果発表とソースコードのレビュー会を弊社で行いました。
優勝は株式会社クエステトラの江原良典さんでした。制限時間90分のところ、34分22秒で提出され、満点でした。圧倒的な技術力です!弊社の社員は4位、5位入賞という結果となりました。社員一同、来年のコンテストに向けてさらなる研鑽を重ねたいと思います。
結果発表
優勝 | 株式会社クエステトラ 江原良典さん |
---|---|
準優勝 | 株式会社 ネオレックス 天筒智也さん |
3位 | ウイングアーク1st株式会社 工藤光晴さん |
4位 | 株式会社システムインテグレータ 鎌田直哉さん |
5位 | 株式会社システムインテグレータ 荒井塁さん |
コンテストの上位者にはご自身が書いたコードの解説を行っていただきました。
また、それ以外にも若手や新人を中心に、自分が書いたコードを解説していただきました。
自分が書いたプログラムを大勢の前で解説するという機会は、プロジェクト内のコードレビューでも実施する機会は少ないと思います。発表したみなさんは非常に勉強になったと思います。
同じ問題に対してアプローチが異なるということが非常に面白かったです。JavaとC#が多い中、PHP で書く人、Pythonで書く人、GOで書く人など、様々な言語を使って解いており、非常に勉強になるレビュー会でした。
他の会社の人のコードを見て、「こんなに綺麗なコードは見たことがない!!」と言っている弊社の若手社員がおり、会社間での刺激も受けたのではないかと思います。
非常に盛り上がった懇親会
レビュー会の後は、弊社の近くで懇親会を行いました。
アルコールとおいしい食事で、「他社間の開発者同士で交流してほしい」という想いと、「和やかに歓談するだけではもったいない!!」という運営チームの熱い想いがあり、急遽、複数の会社混合で5人一組のチームを6チーム作り、プログラミングコンテストを追加で開催しました。
正直、無茶振りでは・・・と心配な面もありましたが、チーム戦ということもあり、非常に盛り上がりました。
予選と決勝に分け、決勝戦では実際に書いているコードをプロジェクターでリアルタイム配信するライブコーディング形式としました。
5人一組のチームであるため、全員が違う言語の使っているチームがあったり、新人さんやベテランの混合チームがあったり、ノートやiPad を使ってロジックを考えているチームがあるなど、会社の垣根を越えたコミュニケーションが活発化しました。
今回は様々な会社が懇親会に参加していただきました。初めて会う人たちが多かったせいか、最初は硬い雰囲気でしたが、TOPSICを使ったグループでのプログラミングを行なった後は、チーム内で自然と会話が生まれていました。
短時間とはいえ、ひとつのチームにまとまることでコミュニケーションが活性化されたのだと思います。また、参加者の多くが「とても楽しかった!!」と言ってくれたので、運営としても開催した甲斐があったと嬉しかったです。
プログラミングは一人で書くというイメージが ありますが、今回は5人でプログラムを考えたため、大きなペアプログラミングのような形になりました。
問題を噛み砕く人、アルゴリズムを考える人、ノートで書き方を整理する人、そして実際にコードを書く人などに担当が自然と分かれていました。また、経験が異なるメンバーが混在していたため、経験があるメンバーがどのような順番でロジックを考えているのか、どのような順番でコードを書くのかをリアルタイムで目の当たりにできたのは、とても大きな気づきだったと思います。
普段の業務ではWeb アプリケーションを作成しているメンバーが多く、またパッケージが 土台としてあるため、ゼロからプログラムを組み立てるという経験は新鮮だったと言います。業務を離れて、ゼロから組み上げる経験を簡単に積めるのもTOPSICのメリットの1つだと思います。
ライブコーディングで優勝したチームの皆さんには、弊社梅田の新刊「エンジニアなら知っておきたいAIのキホン」をプレゼントさせていただきました。
まとめ
TOPSICを使うことで社内でのプログラミングコンテストを簡単に企画開催することができます。TOPSICの活用事例として、弊社の事例がみなさまの参考になれば幸いです。
- カテゴリ:
- キーワード: