はじめに
最近、僕の会社ではモブプログラミングに挑戦しており、複数人で一緒にコードを書く機会が増えてきました。
そんな中で生まれたのが「共創プログラミング」(以降、共創プロと記載)です。
個人的には共創プロがとても気に入っており、最近では週1回は取り組んでいます。
コードの質や生産性が向上し、何よりも楽しいです!
本記事では、共創プロとは何か、なぜそれをすると嬉しいのか等を書いていきます。
ちなみに、「共創プログラミング」は完全な造語です笑
共創プロとは?
文字通り、複数人で一緒にプログラムを創り上げることを指します。
ペアプログラミングやモブプログラミングと似ていますが、共創プロでは明示的にドライバーを設定しないという特徴があります。
共創プロでは全員がドライバーであり、全員が議論をするモブになります。
コードを書きながら相談し、時には全員で手分けをしてコードを書いていきます。
共創プロやると何が嬉しいの?
僕が感じる共創プロのメリットは主に以下の3つです
議論により新たな視点が得られ、進行がスムーズになる
実装が進むと、「このコードをどこに書こうか」、「パフォーマンス的にはこうした方が良いけど、コードの見通しが悪くなりそう」といったトレードオフが発生します。また、何かモヤモヤするけど言語化できない状況もあります。
そういった場合に、仲間と議論をすることで気づきを得られ、前に進めることができます。
作業の分担により効率が上がる
ある程度コードの方針が立ったら、あとは作業です。
特に複数のファイルを扱うときには、作業の手分けが可能となり、効率的に進行できます。
多角的な視点で見ることで、レビュー時の手戻りが少なくなる
レビューで「この部分の考慮が欠けているよ」といった指摘を受けることがあります(言われたことない方、シンプルにすごいです!笑)。
しかし、議論の場で事前に考慮漏れを潰せることも共創プロのメリットだと思います。
共創プロはどういう時にやると良いの?
初期の設計、リファクタリング、複雑な機能の実装など、特に効果を発揮すると思います。
設計段階ではコードがあったほうが話しやすいこともあるので、共創プロでざっとコードを書きながら進めると、より良い議論ができます。
一方、非常にシンプルな機能(例えば単純なCRUDなど)については、1人でやった方が効率的かもしれません。
具体的にどうやるの?
コードをシェアして且つ、画面共有する
僕の会社ではVSCodeのLive Sareというプラグインを使ってコードをシェアしています。
一応Live Shareで他の人の作業ファイル等追従できるのですが、自分の開いているファイルを変えたくない等あるので、画面共有もして作業の様子を見ることができる状態にしています。
あとは、作業並行パターンだと以下のように分担したり。。
Aさん「interface定義して、この処理実装しておきますね。」
僕「じゃあそのinterfaceを具体実装やっておきます。」
または、複雑な実装をしたり。。
僕「この設計こういうふうな実装だと良い気がするんですけどどうです??」
Bさん「おおまかには良いですが、それだと○○サーバーへの負荷かかるので、ここ考慮した方が良さそうです。」
という感じで進めていきます!
共創プロをやる際の注意点は?
技術レベルに大きな差がない人同士でやると良い
レベルに大きな差があると、共創というより指導のようになってしまいます。
共創プロでは、コードを議論の材料とし、作業を効率的に進めることが目的ですから、メンバー間で技術レベルの差があまりない方が良いかと思います。
コミュニケーションを常に取り続ける
共創プロの真髄はコミュニケーションです。
作業を分担するにも、どこを担当しているのかを把握するにも、常にコミュニケーションが必要です。
2人でやる時、意見が割れたら決断するか、一旦後回しにする
トレードオフが発生し意見が割れる場合、一旦決断を下して進むか、後回しにすることも有効です。
全く決まらない場合には、第三者を交えて決定するのも良いでしょう。
人数を多くしすぎない
個人的には2 ~ 3人くらいがやりやすいと感じています。
人数が多いと喋れにくいですし、作業中人が余る等発生するためです。
おわりに
今回は共創プロについてお話してきました!
普段1人でコードをずっと書いているという人も、たまには他の方と一緒に書いてみても良いかも知れません!
では良いコードライフを👋