圧倒亭グランパのブログ

30年後の自分にもわかるように書くブログ

「共同開発環境」によって変化しそうなものを妄想してみた

最近は、TDDやペアプロに興味があります。それらにとって「共同開発環境」がどう影響するかを妄想してみました。

目次

 

共同開発環境

先日、立て続けに VSCとAtomで共同開発環境の発表がありました。

code.visualstudio.com

teletype.atom.io

www.publickey1.jp

ペアプロではどういう効果があるのか、とても興味がありました。

試してみたいなーと思ったところで、技術メンターで弊社にいらしている@t_wadaさんと試してみる機会がありました。

驚いたことや使用感は、@t_wadaさんがtogetterにまとめていらっしゃいます。

togetter.com

これに加え、今回は、自分で勝手に「共同開発環境によって変化しそうなもの」を妄想してみました。

 

共同開発環境によって変化しそうなもの

テストの価値が上がりそう

これは真っ先に思いました。共同で開発している時は、「ゆるいconflictが常に起きている」というイメージでした。「見えない箇所で相手が修正していて、こっちの修正と噛み合わないのでは。。」と少なからず思ってしまうので、都度テストを回さないと不安が増大してくと思います。別ブランチが同時に存在しているようなもので、お互いの修正方向が別の方向に向かっていくと、もうそれは手遅れになります。頻繁にテストを回して確認する必要があります。

こういった状況なので、テストの価値をとても感じました。テストがないコードは、共同開発環境で開発を進めるのは難しいでしょう。テストのないコードは共同開発環境の恩恵を受けられず、テストのあるコードとの開発スピードがどんどん広がっていくと思います。

ペアプロの変化

共同開発環境はペアプロに少なからず変化をもたらすと思います。いままでのペアプロは、ドライバーとナビゲータに分かれていましたが、共同開発環境によってその差は曖昧になると思います。もはや、スイッチという概念すらなく、時には二人がドライバーになったりもすると思います。こうなると、ナビゲーターの俯瞰的な視点が失われかねないので、少し注意が必要かもしれません。

おそらく、また「新しいペアプロの方法」が考え出されるのではないかなと思っています。自分でもこのあたりを編み出してみたい気もします。いろいろ試してみたいですね。

並列プログラミングと似ている「並列開発」

リアルタイムで共同編集できるので、「これは並列プログラミングに似ているな」と思いました。爆速で処理できるけど、それは使いどころがあるし、かなり複雑な処理になる。syncして同期もしないといけない。共同開発環境での開発も、そのようなものだと思います。使い所によっては逆にコストになることもあるでしょう。各々の開発をsyncする場面では、テストを回すことになると思います。そういう意味で、テストの価値が上がるという話にもつながってくると思います。

なかなか難しい「並列◯◯」ですが、その流れがついにコーディングの世界にもやってきたという感じでしょうか。

 

まとめ

まだまだ試行錯誤が続く共同開発環境ですが、大手もこのような機能を大々的に発表しているわけですし、新たな開発スタイルの誕生は近いかもしれません。このあたり、非常に興味があるので、どんどんチャレンジして知見を増やしていきたいと思っています。