Yahooのペアプロ・TDDワークショップに参加しました

2021年1月28日にYahooさんが42Tokyoの生徒向けに主催してくださった、ペアプロ・TDDワークショップに参加しました。

本記事はその参加レポートです。

そもそもペアプロ、TDDとは

ペアプロ、TDD、どちらもXPのプラクティスの一つです。

XPとは、

Wikipedia より

エクストリーム・プログラミング、XPは、 ソフトウェア品質 を向上させ、変化する顧客の要求への対応力を高めることを目的としたソフトウェア開発プロセスである。

ペアプロは、ペアプログラミングの略で、2人のプログラマがドライバーとナビゲーターの役割に分かれ、1つの画面でプログラミングを行う開発方法です。

TDDは、テスト駆動開発(Test-Driven Development)の略で、テスト→実装→リファクタリングのサイクルを繰り返していく開発方法です。

内容

Zoom上でワークショップが行われました。このワークショップはもともと8時間の内容を2時間にぎゅっと凝縮したものとなっていました。

ワークショップでは以下の3つが行われました。

  1. XPの説明
  2. Yahoo社員のライブコーディング
  3. 生徒同士のペアプログラミング

XPの説明

XPの説明では、XPがなかった頃の課題、XPについて、5つの価値と主要プラクティス13個について知ることができました。

ライブコーディング

ライブコーディングでは、ペアプログラミングで行うお題のデモンストレーションを見ました。この時、開発サイクルの説明を交えつつライブコーディングをされていました。

開発サイクルは、

  • PMから与えられたストーリーをじゃんけん見積もり
  • 実装
  • 受け入れテスト

という流れだそうです。

ペアプログラミング

その後、生徒同士でペアプログラミングを行いました。

内容は、Node.jsとVue.jsでじゃんけんゲーム、電子書籍アプリの実装を行うことになりました。しかし、私たちのペアは時間が足りず、電子書籍アプリの実装まではたどり着くことができませんでした。

オンラインでペアプログラミングをするにあたり、Zoomの画面共有 + 遠隔操作機能を使いました。Zoomの遠隔操作機能はVSCodeと相性が悪いらしく、キー入力を受け付けなくなるトラブルがありました。それでも、2人でプログラミングをする楽しさは体験できたと感じます。

感想

ライブコーディング時に、開発サイクルの説明がなされ、実際の業務のイメージがつきました。

ペアプログラミングは、42のP2Pラーニングと親和性が高く、チームプロジェクトで使ってみたいと思いました。

TDDは、大規模なプロジェクト、長期間開発するプロジェクトで特に役に立ちそうだと思いました。 これまでのプロジェクトで、新機能を追加したものの既存機能にバグを埋め込んでしまい再度修正……ということがありました。最初にテストを書いておくと安心して機能追加できそうです。

ワークショップで学んだことを生かして生徒たちと開発していきたいと思います。