リモートワークで開発する時に注意していること
社員ブログ
初めまして。ディライテッドでエンジニアをしている深澤です。
メンバーからは、ザワ氏。社長からは「息子」と呼ばれています。笑
まずはじめに、私はエンジニアですので、なかなかサービスを使ってくださるユーザさんとお話をする機会はないのですが、徐々に多くのユーザーさんにサービスを使って頂いて本当に感謝でいっぱいです。
ありがとうございます。
それでは早速記事に移っていきます。
今回は、iPad無人受付システム「RECEPTIONIST」の開発の進め方について書いてみようと思います。
開発は基本的にリモートワーク
私たち開発チームは、水曜日に定例のミーティングを行い、基本的にリモートです。要するに好きな場所で開発を進めています。
「たまにリモートで働く」という形はよくありますが、日常的にリモートで開発し続ける、という形は少し珍しいと思います。
なので
『果たしてこの進め方でスムーズに開発が進むのか?』
と疑問に思う方もいるはずです。
このような開発スタイルは、それぞれ会社の環境によって異なると思いますが、一般的には以下のような問題点があると思います。
– コミュニケーションが取りにくいため認識にズレが生じる恐れがある
– コミュニケーションの量が減ることにより、生産性が低くなる恐れがある
– バグ等が出てしまった時に、共有に手間がかかる
などなど..。
リモートワークは、これらの問題をどう解決して開発の生産性を上げるかが鍵になってきます。
そこで私たちは、水曜日の定例ミーティングで「実装方針」や「認識合わせ」を徹底的に行う。
ということを意識して開発を進めています。
リモートワークの問題を解決する為に行っていること
上で述べたように、水曜日に定例のミーティングがあります。
そこで、きちんと認識を合わせたり実装方針をある程度共有することを徹底的に行うことで、それぞれがリモートで働く中で生まれる問題点を解決できるようになるのです。
もちろん開発を進めていく中でコミュニケーションが必要となる場合は、以前COO真弓がブログで紹介していたコミュニケーションツール「AppearIn」や「Slack」を使って積極的にコミュニケーションを取るようにもしています。
(関連記事:プロダクト開発業務を効率化する便利ツール3つ)
具体的な進め方としては、タスク管理ツール「Waffle」というツールを使って、定例ミーティングで上がった施策などをIssue(開発すること)としてカンバン方式で積んで行きます。
その後、積んだIssueについて一つ一つ話し合いを行い、認識を合わせていきます。
エンジニアも開発するだけでなく、ビジネス側を意識して開発をしているので、『本当にその機能必要だっけ?』というような視点を持ち話し合いを進めます。それにより、メンバー全員が共通の認識を持ち、納得した形で実装を進められます。
生産性を上げる為に行っていること
私達は「アジャイル開発の手法」を使って、タスクにポイントをつけるようにしています。
ポイントを集計することで、1週間のおおよその実装できる量を把握することができます。
(ポイントの量も徐々に増えています)
正直なところ、サービスは成長段階なのでやりたいことは山ほどあります。
しかし、全てのことを短期間で実装することは不可能です。
(できたらいいなあ…)
そこで、実装できる量を知っていると優先順位を正確に判断してタスクを積むことになるので、再度、それやる必要ある?という議論になり、無駄なものを削ったりユーザーの声をきちんと聞くようになります。
他にも色々な工夫をしながら開発をしていますが、このように私たちはリモートワークの問題点を解決しながら、開発を進めてきたので、結果的に個人の生産性が最も上がる形で開発ができるのです。
今後は社員数も増えていきますので、環境に合わせて開発の進め方を柔軟に変化させていこうと思っています。
これからもより良いサービスを作っていきますので、皆様引き続きRECEPTIONISTをよろしくお願いします。
「自分にあっていそうな働き方だなあ。」「ここで働きたい!」と思った方はぜひ一緒に働きましょう!
お問い合わせはコチラから!