この記事は、コドモンAdvent Calendar 2024 25日目の記事です。🎅🎄
プロダクト開発部の岡村です!
コドモン開発部では、「ユーザに価値を素早く届け続ける」アジャイルな組織になるために、2021年からXP(エクストリームプログラミング)を取り入れ始めました。 なぜXPを取り入れているのか?と聞かれることも多くなってきたので、ブログにまとめようと思います。
前提
XPは価値基準・原則・プラクティスの3つから成り立っています。

XPでは、原則を意識しながらプラクティスを実行することで、価値基準を体現していくことを目指します。
XPを取り入れた理由
不確実性が高い現代において、変化の波を乗りこなしていくためには、組織・チーム・プロダクトの全てが変化に対応できるような状態を保ち続ける必要があります。 その中でも、プロダクトが変化に対応できる状態を保ち続けると言うのが、特に難しく、重要だと考えています。プロダクトの設計が複雑で、拡張性が低い場合や、技術負債が蓄積していると、新しい機能の開発を行う際に、迅速な対応が困難となり、事業の競争優位性を失ったり、信頼性の低下を招く可能性があります。
3年前にXPを採用した大きな理由の一つは、プラクティスの中にテクニカルプラクティスが明確に定義されており、上記のような状態を引き起こしにくく、変更容易性が高いプロダクトを構築できる可能性が高まると考えたからです。
プラクティスを眺めてみると、ペアプログラミング、テスト駆動開発、リファクタリング、継続的インテグレーション、小さなリリース、トランクベース開発、10分ビルド等、現代のソフトウェア開発において、当たり前にやりたい1プラクティスがたくさん並んでいます。しかし、この当たり前にやりたいこと を当たり前に行えるようになるのは容易ではありません。
テクニカルプラクティスが存在することで、組織全員で目線を合わせ、同じ方向に向かうためのコンパスを手に入れることができるようになるため、プロダクトが変化に対応できる状態を保ち続けやすくなります。
XPを取り入れる前から、「もっとうまく変化に対応できる組織になろう」というモチベーションはありつつプロダクトが変化に対応できる状態になってはおらず、開発チームでユーザーに届ける価値をなかなか最大化できないということが起きていました。
そこに対応するために、コドモンではXPを取り入れました。
取り入れた結果
XPを取り入れたことにより、「開発プロセスの効率化とプロダクト品質の向上を重視する文化」を実現できたと感じています。また、メンバーのエンゲージメントが向上し、協力的な雰囲気が醸成されました。これにより、持続可能で安定した開発体制を確立できたと感じています。
どのプラクティスも強力ですが、ペアプログラミングが特に大きな力を発揮していると実感しています。 コドモンでは、開発のみならず、問い合わせ対応、調査、テスト等を基本的にペアで行うことを推奨しており、1日の8割程度は誰かとペアで作業を行います。
その結果、以下のような効果を得ることができました。
属人化の解消
コドモンではペアプロをするにあたり、1日に1回以上ペアを変更することを推奨しています。 これにより、特定の人しか知らないという状況が生まれにくくなり、誰かが突然の休みや長期休暇を取っても作業が止まるということがなくなります。
フィードバックの高速化
ペアで作業を行うと、設計や、実装に対するフィードバックをその場でもらうことができるため、高速でフィードバックサイクルを回すことができます。
負債に立ち向かう勇気
コドモンはリリースされて10年が経過しようとしており、負債が蓄積しているプロダクトとなっています。 負債に対して1人で向き合うのは、根気が必要であり、なかなか大変な作業ですが、ペアでやると不思議と勇気が湧いてきて、負債に立ち向かうことができます。 また、1人でやっていると、ちょっとこの辺を改善しようかなと言うのも、なかなか一歩目が踏み出しづらいということが起きがちだったりします。 そこをペアでやると勇気が湧いてきて、フットワーク軽く一歩目を踏み出すことができます。
プロダクトも自分達も成長し続ける
コドモンの開発部では、フロントエンド、サーバーサイド、インフラ、Web、モバイルといった領域ごとに担当を分けるといったことはせず、ユーザに価値を届けるために、必要なのであればチーム全員で必要なところを開発するという組織になっています。そのため、自分が得意な領域の実装をするときは、周りに自分の知識を波及させつつ、逆に自分が得意じゃないところは、得意な人から学びつつ進めることでき、プロダクトと自分たちの両方が成長し続けられるという状況が作り出せています。
終わりに
現状のコドモンにはXPがあっていたという話で、ずっとXPをやっていくのかと問われると、わからないというのが回答になります。新しいパラダイムが出てきたらそれにシフトするかもしれないし、しないかもしれないです。重要なのは、自分たちが正しく進めているのかを常に見直し続けることだと思うので、それを継続することで、ユーザに価値を届け続けられる組織を目指し続けたいと思います。
- 今のコドモンにおいて、当たり前にやりたいという意味で、全ての組織でそうするべきとは考えていません↩