チームメンバーと共に学ぶ会社を目指して
システム、ウェブサイト、アプリなどのソフトウェアを開発する会社は、日々の業務だけでなく、技術力を高めていくために学習やトレーニングを並行して進めていく必要があります。今日は、よりよいコードの書き方や新しい言語を継続的に学んでいくために、当社の開発チームで取り組んでいることを紹介していきたいと思います。
コードレビュー
ほぼ毎日、開発メンバーはコードリポジトリにコミットしていきます。コミットされたコードはレビューされて、修正・改善された後に開発ブランチにマージされます。繁忙期には、レビューしなくてはいけないコードの量も増えるので、レビューが甘くなってしまうこともありますが、最低限どういった機能をどういった目的で書いているのかを理解することに努め、このコードレビューという作業は欠かさないようにしています。
レビューの手順は、その日の気分や状況にもよりますが、まず前日のコミットを一覧で表示させて、分量を大体把握します。ローカル環境にpullして動作を確認して、期待される仕様からかけ離れた動作になっていないかを確認します。不具合や、挙動に違和感を感じる箇所があれば、メモっておきます。そして、コミット毎に変更されたコードに目を通します。リファクタリングできそうなコードや、効率化できそうなコード、理解するのが難しく説明が必要なコードについても、メモっておきます。
一通りコミットを確認すると、気になった箇所のメモの一覧ができあがります。この一覧は、コードを書いたメンバーへのフィードバックとなるのですが、一覧を渡すだけでは、伝わらないことがあったり、レビュアーが思い違いしていただけという可能性もあります。そういった行き違いを極力避けるために、必ずビデオ会議で一緒にメモの一覧を潰していくことにしています。このビデオ会議は、基本的に毎日午前中に行っていて、デイリースクラムと呼んでいます。
デイリースクラム
デイリースクラムという呼び名ではありますが、これはアジャイル開発を導入しようと試みた当初の呼び名の名残のようなものであって、実際のデイリースクラムとは少し内容が異なります。複数プロジェクトをまたぐことがあったり、15分以上の長めの打ち合わせになったり、雑談になったりします。
リモートワークのため、Slackなどでの連絡が主流となり、チームメンバーと口頭でコミュニケーションを取る機会が減ってしまったので、それを補うためにデイリールーティンとしての顔合わせといった位置付けでやっています。
例えば、新入社員など会社に馴染む機会を得られずにいきなりリモートワークを強いられている場合、日々の何気ない状況の中で交わされる言葉が失われているのではないかと思います。そういった機会を意識的に発生させることには意義があると考えています。社歴が長いメンバーについてはデイリーでは行いませんが、プロジェクトが進行しているときは、コードレビューのフィードバックと進捗確認をデイリーで行うことで、コミュニケーション不足を解消しています。
毎日ビデオ会議やるなんてひと昔前のやり方で効率が悪い、Slackで十分だ、好きなときに仕事させてくれ、などと言われてしまうかもしれません。確かに、効率の悪い会議というものは往々にして存在します。私も、中身のない会議は嫌いな方です。なので、このデイリースクラムは典型的な会議ではなく、あくまで仲間の状況確認とプロジェクトの進捗について認識を合わせることが目的のフレンドリーな会話を行う機会なのだと考えています。そして、費やされる時間以上のメリットが、日々言葉を交わすことで得られていると感じています。
自由日
そうはいっても、せっかくリモートワークが浸透してきて、自分のペースで仕事ができるようになってきたのに、毎日顔を合わせるのはきついと感じることがあるかもしれません。そこで、ある程度独り立ちしたチームメンバーには、週に1日、自由日を与えます。以前、Googleで似たようなことをやっているということをどこかで読んだことがあり、それをマネているだけなのですが、進行中のプロジェクトのことを忘れて、個人のプロジェクトに取り組むことが許される日を設定します。
大きなプロジェクトが進行していると、週5日間、同じプロジェクトに取り組むことになり、プロジェクトが完了するまで、他のことができなくなってしまいがちです。例えば、プロジェクトが落ち着いてきたタイミングでアプリ制作を始めてみたが、プロジェクトが忙しくなってしまって数ヶ月間アプリ制作から遠ざかってしまったという状況が考えられます。もちろん勤務時間外に勉強することで、継続することは可能かもしれませんが、体力的に難しくなるかもしれません。それに、勤務時間の外ではしっかり身体と精神を休めて欲しい。
とはいっても、せっかく学習したことを忘れてしまうのは、もったいないことです。そういうことを避けるためにも、勤務時間内に、継続的にプロジェクト外のことを学び、個人の技術力を磨くための時間を持ってもらうことに意義があると考えます。
この自由日というのは、学習意欲のあるチームメンバーには有意義な成長するための時間となり、精神的に疲れたチームメンバーにとっては心に余裕を取り戻すための良い機会になると思います。
学習支援
実務の中で、我々が教えられることには限界があります。ネットを調べることで学べることは多くありますが、書籍などの教材から学べることには、また特別な価値があると思います。リモートワークとなり、物理的な書籍を共有することが難しくなりましたが、書籍の購入を支援しています。ITの資格試験の学習教材や受験費用はもちろんのこと、資格試験に合格した際には報奨金もあります。
また、Udemyなどのオンラインコースの受講についても、受講料を支援しています。私も新しい言語などの基礎を学ぶために、Udemyのコースはいくつも受講させてもらいました。Udemyではセールが頻繁に行われいるので、基本的にセール価格のときを狙っていますが。笑
もちろん受講を希望する場合は承認を得る必要がありますが、必要となる技術を学ぶことができるトレーニングプログラムなどがあれば、参加費用はできるだけ支援していくというのが、当社のポリシーです。
一緒に働く仲間に求めること
こんな感じで、日々チームメンバーと学びながら仕事をしているシナゲートでは、一緒に働く仲間を募集しています。ギラギラした若者には少し物足りないくらいのんびりしているかもしれませんが、会社として成長していくことを望んでいます。ただし、家庭や自分の時間を大事したいという思いが強い会社です。そういった理念に賛同し、共に技術力を高め、世の中に大きな貢献ができる会社に成長していくために一緒に仕事をしていける方々との出会えれば幸いです。
アメリカの大学で、コンピューター・サイエンスと数学の学士、コンピューター・サイエンスの修士を取得。帰国後、ゲームなどのローカライズをする会社に就職。開発寄りの仕事を探していたところ、シナゲートに拾っていただき、現在はバックエンドを中心にウェブシステムやアプリの開発に従事。日本語と英語でのコミュニケーションが可能。
関連記事
CONTACTお問い合わせ
システム開発やWEBサイト制作についてのご相談、お見積のご依頼などは、下記の窓口にて承ります。
まずはお気軽にお問い合わせください。お問い合わせはEメール・お電話にて承ります。
03-6413-7735受付時間/9時~18時(土日祝 定休)
- 制作のお問い合わせはこちら