見出し画像

NeWorkエンジニア実践!大企業におけるスピード開発のすすめ

組織において新しいプロダクトを開発するとき、社内調整ばかりに時間がかかったり、内製したいけれど人材不足で難しかったり…。特に、組織が大きくなるほど、あるあるな悩みではないでしょうか?

かつてNeWorkチームも、同じ悩みを抱えていました。

NeWorkは、β版からたくさんの方に使っていただきながら、昨年7月に有料プランを含んだ商用版をリリースしました。ずっと応援してくれているユーザーの皆さんの期待に応え、これまで以上に気に入って使い続けていただくためには、一刻も早くプロダクトをパワーアップさせなければなりません。

そこで、

  • 週に1回、プロダクト改善につながるバージョンアップを行う

  • 複数の新しい機能の開発を行う

この2つを並行して取り組むことを決定しました。
しかし、決定したものの、実行のためには次の2つが課題となりました。

  1. 開発項目が増えるとそれだけ、ユーザーへの価値提供そのものではなく、社内説明や承認手続きなどの社内プロセスに稼働がかかってしまう

  2. アジャイル開発を進めるため、現状のチームレベルでは不十分

これらの課題を1つずつ対処し、ほぼ毎週の改善に向けたバージョンアップ開発と、複数の新しい機能の開発を並行して進めています。

いわゆる大企業において、NeWork はどのように開発スピードをあげる取り組みをしているのか、開発チーム 藤野と河野の話をご紹介します。

プロダクトにとって本当に必要なものを考える:社内プロセスの最適化

(藤野)週1回のバージョンアップと複数の機能開発に並行して取り組もうとした時、そもそも既存の承認フローでは、週に1回のリリース作業に社内調整スケジュールが合わないし、開発項目が増える=社内説明が増えるので開発稼働を圧迫してしまうという壁に直面しました。

NTTコミュニケーションズ(以下、NTTコム)における基本的な開発フローでは、一回のリリース作業のために2回の承認会議を通す必要があります。

1.   開発目的や方法について承認をもらう
2.  リリース項目や作業内容について承認をもらう

これらの会議はだいたい週に1回のスケジュールで開催されるので、次のリリースを実施するには最短でも2週間を要します。

もちろん、このフローにのっとり提供すべきサービスが多くあるのは事実です。ですが、NeWorkでめざすところは、「なる早でプロダクトの価値向上を実現する」ことや、「使ってもらいながら、バグ修正や改善をしてプロダクトを正していく」こと。いわゆる「走りながら考えて・考えながら走る」ようなタイプのプロダクトとはマッチしていないなと思ったんですよね。

そこで、直談判。偉い人たちに、承認フローを簡略化させてくれないかと正面突破を試みました。最終的には、NeWorkが成長していくためにはこれまで通りのフローでは難しいという理解を得られました。具体的には、資料作成や会議などは必要最小限にし、バックログやGitHubのPull requestを直に見てもらう。それらを判断材料として、リリースOKの判断をする体制で進めることになりました。

理解を得るには相応の時間がかかりました。というのも、社内の承認会議は、もちろん開発項目や方法に問題がないかを判断することが目的ではあるんですが、見方を変えると、活躍しているエンジニアメンバーが自分の実績をアピールできる場でもあるんですよね。それをスキップしてしまうと、やっていることを自身で説明をするタイミングが少なくなるので、誰が何をどう頑張ったのか、周囲に伝わりづらくなってしまいます。

なので、会議は簡略化していいけど、定期的に業務説明会やデモをした方が良いのではないかと言う話も出ました。でも、「ユーザーにとっての直接的な価値の向上にはつながらないからやめてください」とみんなで訴えました。良い評価をつけてくれたらモチベーションが上がるんだということも加えて(笑)

(河野)NeWorkのエンジニアとして、「プロダクトをより良くすること」に注力していきたいんですよね。みんな、プロダクトへの愛が強いです!

(藤野)あとは、決裁や社内調整なんかの開発とは直接関係がないようなところは、各エンジニアが開発に注力できるよう、全体をみている僕ができるだけ引き受けるようにしています。

大きな会社にはあるあるの話かもしれませんが、開発チームの所属であっても、実際には資料作成や決裁準備など、開発以外の対応も多かったりします。僕から言わせると、NeWorkチームには優秀なエンジニアが多いと自負していて、そんなメンバーたちが開発に集中できないのはもったいないと思って、僕が巻き取れる範囲はなるべく僕が持つようにしています。実際、河野さんから見たらもっとやってくれって感じかもしれませんが(笑)

(河野)本当に色々巻き取ってやってもらっているのに、開発が終わらないものがあると、いつも申し訳ないです…!
藤野さんが調整部分を拾ってくれるので、エンジニアメンバーが開発業務そのものに集中できるようになりました。ユーザーにとって嬉しいこと、気持ちよく使ってもらうための業務に時間をつぎ込むことができています。

(藤野)結局、上記でお話したように、社内プロセスを簡略化したりエンジニアの稼働を最大限に開発にあてる分担ができました。これによって、みんなプロダクトの成長が次々と見えるからモチベーションが上がっていることが伝わってきます。

僕自身も、社内での説得や説明など、上司に伝えることが難しいこともあるけど、伝える役目だからこそ見えているところもあり、このプロジェクトにいて楽しいです。

NeWork 2021年度のアップデート

開発加速とエンジニア育成は表裏一体:常に進化するチーム運営

(河野)開発スピードをあげるための取組みとして、チーム運営も見直しました。

NTTコムでは、これまでウォーターフォール型の開発プロジェクトが多かったため、NeWorkチームにはアジャイル開発の経験メンバーが少なく、さらには開発未経験者もいました。

そんな理由も相まって、昨年夏頃まではチーム分けをせずに僕がリーダーとして全ての機能の設計・レビューを担当していたんですが、僕のスケジュールによって開発が進まないケースが出てきたことが問題となりました。あるあるですね(笑)

このままではまずいなと思っていたのですが、当時は設計ができるメンバーがかなり少なく、開発体制の改善とメンバーのスキル向上が喫緊の課題でした。

そこで、LeSSという手法を取り入れ、複数の機能別チームに分割しました。これによって誰か一人がボトルネックになることがなくなり、また、チームメンバー1人あたりの裁量が大きくなったことで技術力が向上しました。

…しかし、ここで新たな問題が勃発。

自分の所属しているチームが担当する機能のこと以外、さっぱりわからなくなってしまいました。毎週やっている口頭での共有会だけでは各々が何を開発しているのか、何が問題になっているのかも全く伝わってこない状態。将来的にメンバーが離職や異動した時にサイロ化する恐れを避けるために、再度チームを統合し直しました。

このとき、「一つのチームに再統合しても、また当初の問題に戻ってしまうだけなのでは・・・。」と不安があったのですが、社内のアジャイル開発コーチに相談に乗ってもらうことで、その懸念は解決しました。

当初の統合チーム体制と異なるのは、複数のリーダーを立てて各リーダーが1人1機能の設計を担当する点です。リーダーではない各エンジニアは複数機能の開発を担当できるようにしました。

全員が同じチームなので、自分が開発を担当していない機能の情報を知ることがスムーズになって属人化を回避できるようになったし、同時に進めるべき開発項目の足並みを揃えられるようになりました。また、できる限り各メンバーに機能設計から担当してもらうことで、設計から開発、テストまでを自分の力でやりきれるメンバーを育成することを目指しました。

結果、今のNeWorkチームにうまくはまり複数機能の並行開発がスムーズに進むようになりました。

アジャイル開発コーチには、困ったことがあると定期的に相談をさせてもらっているのですが、“教科書通りではないけれど、僕らに合ったスクラム方法”を教えてもらえるので、これまでもかなり助けてもらっています。

(藤野)アジャイル開発コーチの他にも、会社の技術顧問に相談できる機会が多くあります。その道のエキスパートに指導してもらえることは、大きな会社で良かったことのひとつかもしれないですね。

NTTコムでは、ソフトウェア開発力の強化や、モダンなプロダクト開発手法の定着を目的に、その道のスペシャリストを技術顧問としてお招きしています。NeWorkでも、プロダクトマネジメントやアジャイル開発の進め方について、随時アドバイスをもらっています。会社の取り組みに恩恵を受けているなと実感します。

(河野)技術や開発手法に明るいエンジニアを育てることは、NeWorkチームにとっても会社にとっても将来への投資になると、プロジェクトへ参画した頃からよく考えています。大きな組織でプロダクトをつくるとき、一部の開発を他社へ委託することも多々あるかと思いますが、これって場合によっては難しい側面もありますよね。

チーム全体で詳細な技術についてきちんと理解していないと、他社へお願いできなくなってしまったときにチームが崩れてしまう。結局、別の人がツギハギで開発する他なくなり、プロダクトがだめになってしまうリスクがあるわけですから。

一人ひとりが力を発揮してプロダクトをつくる

(藤野)エンジニア一人一人が力を余すことなく発揮できていること、発揮できるようになるための環境を用意することが、結果としてNeWorkの開発スピードを大幅にあげることに繋がりました。

また、上記で述べたような社内関係者の皆さんの協力がなければ、週1回のバージョンアップと複数機能の並行開発を実践することは困難でした。会社や組織が一丸となって同じ方向を見ていること、後押しをしてもらうことが大きな組織で開発する上では欠かせないと思います。

(河野)改めて、NeWorkは多くの人に支えられて成り立っているので、恩返しができるように頑張らないとですね!

今開発をすすめているものの中には、モバイルアプリなどリクエストが多い機能もあり、皆さんの声を大切にしながら準備を進めています。乞うご期待!

*****

さあ、一緒に新しい働き方へ。
NeWorkサービスサイトはこちら!

NeWork note 編集チーム:中見麻里奈、原田結衣


この記事が気に入ったらサポートをしてみませんか?