チーム開発における3つの掟 | スマホアプリ開発記

スマホアプリ開発記

スマホアプリやサービス作りで感じたことを書いています。

CyberZの開発では、3つの掟を用意しています。

1. 読みやすく生産性の高いコーディングを心がける
2. 一つの事故が会社に多大な損失を与えうることを常に意識する
3. 個人のスキルより開発チームの生産性を意識する

エンジニアが守るべきことはもちろんもっと他にもありますが、開発組織の一員として特に全員に必ず心掛けてほしいものを3つに絞っています。

■ 1. 読みやすく生産性の高いコーディングを心がける


エンジニアとしては当たり前のことではあるのですが、意外に本気で意識しないといけないものだったりします。生産性の高いコードを書くには経験や慣れも必要になりますから、とにかくコードを書き、人のコードを読んで訓練しなくてはなりません。

読みにくい、汚いコーディングを許してしまうと、その後の改修や機能追加が難しくなり、そのコードが癌のように蝕んで全体の開発スピードを落としていきます。

読みやすさというのはちょっとした意識で劇的に向上させることができます。それは、自分が書いたコードを、いつか他人が改修するかもしれないと常に思うことです。そうすることで、自分が書いたコードに対して客観的視点が生まれ、わかりにくいコードは書かないようになりますし、コメントの書き方もすごく親切になります。

■ 2. 一つの事故が会社に多大な損失を与えうることを常に意識する


二つ目は、システム障害や事故が即損害に直結する場合には非常に重要です。

CyberZの開発では、本番サーバーへのアクセス権を得るためのランク制度を用意しており、成果を認められ、一定のランクに達する必要があります。メンバーによっては1年近くかかることがあり、比較的高いハードルを置いています。

重要なのは、この世にミスをしない人間はいないということです。別の言い方をすると、会社に多大な損害を与えるようなミスを犯すリスクが誰にでも常にあるということです。だからこそ、テストが非常に重要になりますし、本番サーバーで作業する際にはダブルチェック・トリプルチェックを必ず実施する必要があります。

自分が行うことに対して、他人のレビューを必ず受け、何か起きた際に自分だけの責任にはならないように心掛けてください。

■ 3. 個人のスキル以上に開発チームの生産性を意識する


三つ目は、チームがかなり大きくなってきた今、改めて大切なポイントです。個人のスキル以上に、というのは、個人のスキル向上は当たり前で、それをどれだけチームに還元できるかということです。

内定者研修(サイバーエージェントでの弟子入り研修)や、CyberZの新人に対して課題を出す際に私が必ず言うことがあります。それは、自己解決力と、周りに対してのサポート力を発揮して欲しいということです。

自己解決力とは、何か問題があった時にそれを自力で解決するスキルです。エンジニアがリーダーになる上で絶対求められる条件です。一方、自分が何かの問題にはまったということは、チームの他のメンバーも同じことにはまるかもしれないわけで、そうした情報は共有していく必要があります。特にチームで開発している場合、ある一人だけがスキルが高い状態では結局開発は早く回りません。知見、ノウハウは積極的に情報共有し、それが連鎖することで非常に強い開発組織になると思います。

また、情報共有は社内だけでなく、社外に対してもブログ発信や勉強会、講演など、どんどんやっていくべきと思っています。情報を発信するところほど、新しい情報がやって来ます。

CyberZの開発も急激にメンバーが増えています。
改めて、チームで開発をすることを意識し、更に強い開発組織にしていきたいと思っています。