パソナテックさんとのコラボで、イベントをおこないました。
平日ということで、限られた時間でおこなわなければならず、説明はザックリやりました。
最後にリファレンスなどの紹介をしました。興味がわいた人はそちらをどうぞ。
イベントの資料もあわせてレポートと公開をします。
ペアプログラミングのテーマはボウリングのスコア
トイプログラミングのテーマとして、よく使われるボーリングのスコアを算出するユニットを作るのをテーマとしました。残念ながら約75分という時間では、パーフェクトゲームまで作成できる人はいませんでした。
資料を見てもらうとわかりますが、3フェーズにわけて、1フェーズごとにGitHubのリポジトリからCloneしてきて、ペアプログラミングをおこない、完成したらPull Requestを送信して、ペアを変えるということをしました。
みなさん、フェーズ1は全員クリアされたので、当初のテスト駆動開発、ペアプログラミング、GitHubはすべて手を動かせました。
なぜ、テスト駆動開発、ペアプログラミング、GitHubなのか?
資料にも掲載していますが、テスト駆動開発やリファクタリングという技術は、アジャイルソフトウェア開発手法の中では、プログラマ個人が身につけていることが基本となっています。
チームではありません。プログラマ各個人が身につけていて当たり前なのです。
身につけていなければなりません。身につけていなければ**「アジャイルなソフトウェア開発はできない」**と考えていただいても間違えありません。
テスト駆動開発
テスト駆動開発などのスキルは、天才的なハッカーでなければ身につけることができないようなモノではありません。あなたが簡単なプログラムを書けるように、学べば身につけることができる**スキル**なのです。
最近、こんな記事がネットで話題になりました。
アジャイル開発手法自体にテスト駆動開発の明記はありませんが、プラクティスとして、テスト駆動開発や自動テストについては存在します。つまり、アジャイルにソフトウェアを開発するための習慣なのです。
Christian Johansen、長尾高弘 |
書評はこちら→本当のJavaScriptを知っているか!具体的にコードで学べる「テスト駆動 JavaScript」
ペアプログラミング
あえて、会社の同僚や知人とはペアを組まないようにお願いしました。せっかくの機会なので、まったく文化の違ったプログラマから学びあって欲しいという意図がありました。
また、知識やスキルをお互いに補完し合いながら実施できたのでとても良かったです。明日以降にテスト駆動開発を現場で浸透させたり、知識を補完し合う練習ができたでしょ?
たった90分やっただけでも、GitやGitHubについて、JavaScriptについて、エディタについて、多くのことを学び、濃厚な時間だったでしょう。
働いている現場で、ペアプログラミングのようなことをしない。という人達は、違うプログラマから多くのことを学べることを実感して頂けたのではないでしょうか。
あなたが尊敬する先輩や、技術に敏感な後輩と一緒にペアプログラミングをしてみてください。多くの学ぶべきことを発見し、大きな一歩を踏み出せると思います。
ローリー ウィリアムズ、ロバート ケスラー、Laurie Williams、Robert Kessler、長瀬 嘉秀、今野 睦、テクノロジックアート |
GitHub
世界標準の開発プラットホームです。Gitの使い方はもちろんですがGitHubを使いこなせるようになって、視野を拡げ、質の良い多くのコードに触れることは、多くの学びを得ます。
そんなツールを使いこなすためには、まずは触ってなれて、いじくり回すことがポイントです。
入門特集を執筆しましたので、手にとって頂ければ、Pull Requestおくって、取り込むという最低限のソフトウェア開発に求められることはできるようになります。
WEB+DB PRESS編集部 |
感想などを拝見して…
イベントのアンケートを拝見しました。満足度は非常に高かったようです。
今回、少ない時間でプログラミングをするので、簡単なお題を選びました。慣れている人であれば15分程度、大体30分はかからないお題です。
残念ながら、完成させるに至る人はいませんでした。これは、今回のイベントが参加者にとって良かったのです。
はじめてのことや、慣れていないことに実際に手を動かしてみて、うまくいかないから完成に至らなかったのでしょう。良い質問を受け、躓きを一緒に解消し、一歩一歩必要な事を学んでいた様に感じました。
お題のプログラムを完成させることが目的ではないのです。そのテーマを通して、参加者が何かを学び、持って帰って、育て、身につける。それが本来の目的です。せっかくだから、完成させたい。という気持ちもわかります。
週に1回2時間ぐらいペアプログラミングの小さなイベントが定期的にできるような欲しいですね!コワーキングスペースとか、ギークバーみたいな所が協力してくれないかな…。