2011年10月9日日曜日

TDD Boot Camp For C++

前述のような問題意識で、

http://thatsmyway-esper.blogspot.com/2011/10/tdd.html

開発サイクルを短くするためのスキルを身につけるために

TDD Boot Camp 東京 for C++

http://www.zusaar.com/event/agZ6dXNhYXJyDQsSBUV2ZW50GK_kBgw

に行ってきました。
行ってみての感想としては今まで参加した社外イベントの中で一番よかったです。

というのも、

1.実際にプログラムを書いてTDDサイクルを回すことで、
小さいサイクルでプログラミングするスピード感を感じることができた

2.一人では導入するのが面倒くさい、TDD環境を自分のPCに導入することができた

3.ボトムアップでやっていくことの重要性を意識することができた


というのがあったからです。


1.実際にプログラムを書いてTDDサイクルを回すことで、
小さいサイクルでプログラミングするスピード感を感じることができた

これは実際にやってみないと見たり聞いたりしただけでは
分からないことだと思いました。そして、TDDとは話が逸れてしまいますが、
演習のペアプログラミングがすごく楽しくてあっという間に時間が過ぎてしまいました。
疲れましたが、久しぶりにアルゴ的な頭の使い方をして、
仕事の疲れとは違って爽快でした。

2.一人では導入するのが面倒くさい、TDD環境を自分のPCに導入することができた

TDDをやるうえで、一番の敷居はここだと思っています。
私は普段メーカーの製品のデバイスドライバのソフトを作っていますが、
かなりエレキと近いところをやっていて、業務でオシロスコープで波形を測ったりするくらいで、
開発環境がWeb系のプログラマなどに比べて非常に弱いです。
設計者も全員がとは言いませんが、構成管理ツールやテストの自動化などに対して
非常に意識が低く、人によっては作業を全部手でやらないと安心できないという人すらいます。

今回TDDをやるために導入したものは

1.GitHub(分散リポジトリ)
2.GoogleTest
3.Visual C++ 2010

です。知っている人が上記をネットからダウンロードして、
使う分には何も問題ありませんが、知らない人が独力で上記をダウンロードして設定するのは
結構厳しいと思います。

てか、GitHubがすごくいい。
分散リポジトリを初めて使ったのですが、
開発者がローカルで気軽にファイルをコミット(Cin)できるというのがすごくいい。
テストが動いた時点ですぐにファイルをコミットしていくことができるので、
一度に大量にファイルをコミットする場合に比べてすごく安心感があります。
TDDでは失敗するテストを先に作って、
それを成功するようにプロダクトコードを書いていくので
作る側としてはテストを作れば作るほど、
動作が保証されていくので非常に安心感があります。
後、GoogleTestはテストが自動なのでテストの数が増えても苦になりません。


3.ボトムアップでやっていくことの重要性を意識することができた
自分一人だけTDDやって、生産性が向上したとしても、
あまり組織としての利益というのはあまりなくて、
周りを巻き込んでやることの重要性というのを再認識しました。
そして、何かを変えるにはトップダウンではなく
ボトムアップでないといけないのかなとも思いました。

例えば、コンサルの人が使うような資料を以って上を説得して、
トップダウンでTDDをやろうとしても、
きっと異なる開発環境や開発スタイルへの不適応が起こって、
形骸化して破綻するような気がします。
今までそういうのを何度も見てきているし。

最近、誰でもできるようなフレームワークを作って
設計は上流までで、下流のプログラミングは誰でもできるようにして、
安い人件費でコストを下げようみたいな風潮を感じることがありますが、
誰でもプログラミングできるわけがないと思っています。
分かりやすい設計をすることは重要ですが、
誰でも設計・実装できるようにするというのは夢物語で

ちゃんと技術を分かっている人が草の根でやって、教育して
全体の底上げを図っていかないとだめなのかと思います。

というわけで、自宅に環境も整ったことなので、
仕事の合間にTDDの活動にコミットしたい名と思います。

また次のイベントがあったら行きたい!


0 件のコメント:

コメントを投稿