前提
自分の現在の所属はシステム開発部、既存パッケージの改修・保守を行っている部署です。
かなり息の長い自社パッケージ(LAMP構成)を2か月に一度改修しリリースするサイクルで活動しています。
開発部メンバーは、エンジニアとしての経験が深い方から、新卒入社の社員まで様々です。
そんな中でPaizaを使って格付けチェックしてみたので、その報告と感想です。
なぜ勉強会をやろうと思ったか?
- 自社パッケージの改修・保守に傾注しているため、スクラッチでコードを書く機会がない
- 中途社員はともかく、新卒社員が自社パッケージの言語以外に触れる機会がない
- メンバー間で各人の得意なスキルを知る機会がない
やったこと
20代の開発メンバー5~6人に声をかけて、だいたい週2回のペースでPaizaの問題を解きました。
Paizaとは、出された問題をオンライン実行環境でコーディングし、コーディング速度と実行速度を計測できるサイトです。
オンライン実行環境が準備されており、ソフトのインストール不要でだれでもすぐ参加できるため、Paizaを選定しました。
なぜ20代からかというと、うちの開発部の20代は男子も女子も全員ヒマな独身だからです。年齢差別じゃないです。
内容・ルール
- プログラミング言語の縛りはなし
- (別支店の子もいるので)全員でハングアウトビデオ通話を繋ぎ、よーいどんでスタート
- 解き終わった時点で回答結果画面のスクリーンショットをハングアウトチャットに貼る(一応エビデンスのため)
- だいたいみんな解き終わったらレビュータイムを設けて、全員分のコードレビューをする
言語は各々好きなものを使う
自社パッケージはLAMPなのでPHP一辺倒になるかと思いましたが、
自分だとC#、ほかにはgolangや、あえて不慣れなswiftを使ってみた子もいました。
言語仕様に依存せずにロジック構築能力を競えたことがメリットかな、と思います。
また、普段は触れることのない他言語の仕様をみんなが学ぶことができました。
解き終わったらコードレビューをする
問題にもよりますが、人によってかなり解き方が分かれた問題もありました。
みんなが知らない関数を使う子がいたり、特徴的な解き方をする子がいたりして、
誰のコードがどんな理由でどこが良いのか悪いのか、という技術的な討論ができました。
また、新卒の子が組んだコードが、ほかのメンバーでは上がらなかった奇想天外な組み方をされているけど効率的だったり、普段の業務では見られないようなものを見ることができたと思います。
続けているとどうなったか
他の開発部メンバー(30代以上)も興味を持ってくれるようになりました。
また、参加している若手メンバー(自分含む)が家でもPaizaで学習をするようになりました。
加えて、処理の実行速度を競う一面もありました。
例えば、ループが必要な処理でC#で組むと1秒かかる処理をpythonで書き直して1秒未満に抑えられるか!?などですね。
まとめ:良かったこと
- 声をかけると定時外だけど意外とみんな参加してくれる
- 開発メンバーに学習する習慣がちょっとついた
- 日常の業務で役立つ知識が増えた
- 別のメンバーがノウハウを持っている、日常の業務で使っていない言語の知識が増えた
まとめ:今後の課題
- 声かけ・企画する人が限られている(今回はほとんど自分でした)
- いかに他メンバーからも声があがるようにするか、継続的に続けられるか
- 回答済みの人が挑戦中の人を待つ時間をどう活用するか
- 挑戦中の人がいるときに、どういった判断基準で打ち切るか
さいごに
自社で開発メンバーの技術向上を図りたい!という方がおられましたら、
よければ参考にして頂ければと思います!
次回は開発部全体を巻き込んでライトニングトーク会を行った際のレポートをしたいと思います。