BowNowチームの開発工程がめちゃイケな理由!
こんにちは!クラウドサーカス開発部門です。
今回はMAツール『BowNow』の改善開発を担っており、今期(2022/6)から新規開発・技術的負債の返済も担当することになった佐古田さんからBowNow改善開発の流れについてお話ししていただきました。
とにかく最高のプロダクトを開発するための流れであると実感しており、BowNowチームのメンバーからも社外に共有したいと思える内容なので、ぜひ、本記事を通じて開発に携わる多くの方々にも知っていただければと思います。
※ご意見様々あるかと思いますが、BowNowチームの取り組みとしてご一読いただければ幸いです。
BowNowの改善開発の手法について
まず、よくある改善開発の手法は以下の流れだと思います。
テストチームがテストを行う→バグがあった場合にチケットを上げる→開発側がそのチケットを確認する→コードを修正する→再度、テストチームに確認してもらい、問題がなければそのまま実装。
しかし、BowNowチームの場合、開発フローの中で、最初に実装方針の策定という工程が入ります。これは、通常ならチケットを確認して、コードを書くという工程に対して、コードを書く前に、実装するための確認を行うことです。この実装方針の策定のレビューでは、開発ディレクターとリードエンジニアとチケット起票者が担当し、そのレビューでOKが出て、初めて実装に移ることができるという流れになります。
他にも、テストチームにテストを依頼する前に、開発者独自でテストを行うなど、他社では経験しなかった、BowNow開発チームの非常にいいな!と感じた開発フローの一部です。
自分が感じた3つのいいな!ポイントは下記の通りです。
1. 実装方針の策定が開発工程に入ることによって、トータルの開発工数が減る
2. 開発者が独自でテストを行うことによって、結論、開発効率が上がる
3. コードレビューによってプロダクトの充実につながる
※今回は1.と2.についてお伝えさせていただき、3.のコードレビュー文化についてはまた別途、記事を書かせていただく予定です。
実装方針の策定が開発工程に入ることによって、トータルの開発工数が減る
実装方針の策定(調査期間)という工程があるのは比較的珍しいと思っております。どんなメリットがあるかというと、せっかく修正したのにまた同じところでエラーが起きてしまうような事象が少なくなります。さらに、早い段階でメンバーと実装方針を共有しておくことによって、一人では気づけなかった別の問題にも気づくこともできます。結果的に、調査という工程を入れることによって、全体としてコストが低くなります。
開発者が独自でテストを行うことによって、結論、開発効率が上がる
次に、開発者が独自でテストを行うことによって、どんな効果があるかという点についてお話しします。それは開発者の皆さんやテストチームの皆さんなら1度は感じたことのあるかもしれない、「わざわざテストチームがテストしなくても見つけられるだろ!」レベルのバグを事前に見つけることができるということです。
本来、受入テストで上がるはずだったバグの数が減るため、開発チームとテストチームのコミュニケーションコストが減り、メンバーがそれぞれのタスクにフォーカスできるため、比較的、予定通りに開発を進めることができます。結果、開発効率が上がるというロジックです。
開発者が独自でテストを行わない場合、受入テストで上がるバグが増える→開発チームとテストチームのコミュニケーションコストが増える→一つのバグに費やす時間が増える→開発効率が下がる….となるかと思います。
実際に、出戻り作業という、実装に関係ないところで時間を使ってしまうことを未然に防ぐために、テストチーム(受入テスト)に渡す前に開発者が独自でテストを行うことで、トータルの開発コストを削減し、プロダクトのクオリティ向上に繋げることができると実感しているので、開発効率を上げるという点で非常に有効だと思います。
最後に
まとめ
いかがでしたでしょうか?自分自身、実装方針の策定や開発者が独自でテストを行うという工程を経験し、大規模開発となるBowNowのクオリティの向上を肌で感じながら、日々業務ができています。
スピードという点では遅いように見えるかもしれませんが、トータルの工数を考えたときに非常に合理的な開発の流れだと考えています。
採用に関して
BowNowではRuby on Railsの開発エンジニアメンバーを募集しています!
クラウドサーカスのメインサービスであり、大規模開発プロジェクトに参画して、プロダクトを成長させませんか?
カジュアル面談も実施しており、個別でお話ししてみたいな!という方はぜひこちらからカジュアル面談のお申し込みをお願いします!
この記事が気に入ったらサポートをしてみませんか?