Webメディア運営とシステム開発事業を展開するネクストレベルですが、開発の特徴について教えてください。
ベースは、「まずはやってみよう」の精神です。良いアイデアがあれば、積極的に採用しますし、短期間で実装して検証します。 すこし軽率に聞こえるかもしれませんが、適当にやっているわけではなくて、アイデアの根幹となるものがなんなのかを深く考えて、本当にコアな部分、課題解決に必要な最低限の部分から実装することでスピード感のある開発を実現しています。 「まずはやってみる」ことができるからこそ、社内からアイデアはどんどん出てきますし、「アイデアベースでまとまってないし、言わないほうがいいかな」という消極的な雰囲気が生まれにくくなっていると思います。 例えば、私たちは元々リモートワークのために他社のサービスをいくつか使っていたのですが、それでは普段感じている課題を解決しきれてはいませんでした。 それならば、普段感じている課題をまとめて解決できるものを作ってしまおうということとなり、「Flender(フレンダー)」というリモートワーク用プラットフォームの開発が始まりましたが、このサービスは1週間でα版を公開して、現在も社内で利用しながらβ版として改良を続けています。
どうしてそのようなスピード重視の開発を行っているのですか?
理由が3つあるので順を追って説明します。 まず1つ目は、私たちの事業のビジネスモデルと関係しています。 私たちの事業の一つであるWebメディア運営はとても流れの早いビジネスで、いま必要とされている施策が1ヶ月後には別のものになっていることも多く、一つ一つに時間をかけすぎると準備ができる頃には使えないものになってしまいます。それでは他メディアに負けてしまう。必要な施策を素早く次々に実現していく必要があるというわけです。 2つ目は、変化に柔軟に対応するためです。 いきなり100点のものを作ろうとすると、当然それなりの時間がかかります。そうなると常に変わっていくビジネス環境の変化に対応しきれず、完成する頃にはズレたものができあがります。ズレたシステムは使われなくなり廃れてしまう。それよりは早い段階で利用できることを目指して、実際に使いながら、利用者の声を聞きながら、質を高めていく。この流れを大切にしています。 3つ目は、モチベーションです。 スピード感を持って継続的にリリースを重ねていくと、リリースのたびに利用者の反応を直に感じることができます。実際に喜んでもらえるところを目の当たりにするというのは大きなモチベーションに繋がります。この機能は評判よかったなとか、この機能は全然反応なかったなとか、こういった反応はモチベーションになるだけでなく、そのまま後の開発内容に反映させることもできます。
スピード感のある開発というのも、難しさがあると思いますが、ポイントはなんですか?
ポイントは優先度と保守性です。 課題の本質を見極めて、適切な優先度設定をすることで、必要とされているものを最短期間で提供することはできます。ただもう一つ考える必要があるのは「その後にもずっと開発は続く」ということです。 機能は次々と追加されていくし、誰かが引き継ぐかもしれないし、誰かが作り上げたものを自分が引き継ぐかもしれない。そうなったときに、読みやすく、保守しやすい設計・実装になっているかどうかが、システムの成長スピードに大きく影響します。 スピード感を意識しつつも、短期的な目線と長期的な目線のバランスをとっていくのが大切だと思います。