はむはむエンジニアぶろぐ

365日エンジニアリング

テスト駆動開発に出会って人生変わった話@ソフトウェアテスト Advent Calendar 2017 12月23日

ソフトウェアテスト Advent Calendar 2017 の23日目の記事です。
テスト駆動開発に出会って人生変わった話をします。

テスト駆動開発ってなんだ?っていう話やHow toの話はしません。
テスト駆動開発に挑戦してみようと考えている方のきっかけになればと思います。

テスト駆動開発について学ばれたい方は、以下の書籍を参考にしてみてください。

また、私が主催するテスト駆動開発の勉強会もよければ気軽にご参加ください。
毎回、経験者 〜 初学者の方々が議論していてタメになるかと思います。

hiro-o.connpass.com

人生が変わった

テスト駆動開発に出会いどのように人生が変わったのか。
先に結論だけ書きます。

「開発者として、この先もやっていける自信がつき更に人生の肯定感が増した」

テスト駆動開発は、開発者の人生を豊かにする手法です。
私はそう思っています。

出会いのきっかけ

テスト駆動開発に出会ったのは、私が学生の頃。
ちょうど、アルバイトでシステム開発をしていたときのことでした。

良いコードを書きたい、かっこいいシステムをつくりたい、メンテナンス性が高いコードを書きたい。
漠然とそんなことを思いながらシステム開発をしていました。
しかし、実際には自分が書いたコードなのに読めなくなったり、リリース後の機能追加によるバグの多発などに悩む日々が続いていました。

バグが深刻な場合は、気合と根性で一から作りなおしていました。
DB設計すらもリリース後に一から再設計することもありました。
良いコードを書くことに思い入れがあったものの、月日を重ねるうちにシステムも大きくなり体力的にも精神的にも作り直しをし続けることに限界が来ました。
エンジニアの仕事に対して思い入れがあったものの、自分はこの先やっていけないんじゃないかと考えるようになりました。

そんな時に、購読していたサイトでテスト駆動開発に出会います。
どうやら、生産性が上がり, かっこいいシステムがつくれるそうじゃないか。
当時の私は、受け入れテストしか知らなかったので、この出会いに衝撃を受けました。

そして、テスト駆動開発を実践するようになったのです。

出会ってから

藁にもすがる思いで、テスト駆動開発にのめり込みました。
テスト駆動開発を取り入れ、自身の開発スタイルに溶け込むまで半年かかりました。
周囲に実践している人はいなかったので、指導してくれる方がいればもっと早く扱えるようになったと思います。
社会人になってから、実際に現場でテストを書いているエンジニアの方にアドバイスを頂いていたときが一番理解が進みました。

テスト駆動開発を実践するようになり、明らかにコードの見通しが良くなりましたし、システムを安定させたまま徐々に進化させていく術を学びました。
そして、なによりコードを書くのが楽しくなりました。
テスト駆動開発の目的は「動作するきれいなコードを書くこと」
まさにそれを実感することができます。

テスト駆動開発を学んでいくうちに、これはただの開発手法でないことに気づきました。
うまく説明できないけど、人間の脳の性質を捉えていると思います。
「考えること」と「悩むこと」は違います。
悩む時間が減り、考える時間が多くなりました。

要求や仕様をどのように分解するか、整理するか。
全体を把握するための、トップダウンの視点とボトムアップの視点。
一つづつ確実に明快にタスクをこなしていく大事さと爽快さ。
目標地点を定め、ヤバくなったら撤退する意思決定。
継続的に努力するモチベーション管理。

テスト駆動開発を実践する中で、これらのことを学びました。
ただ、テストコードを書いていたつもりだったが、学ぶ過程でこのような副次的なプレゼントを与えてくれました。
これらは、プログラミングだけでなくプロフェッショナルとして生きていく上で大切なスキルです。
コミュニケーションやマネジメント, 採用の能力など職種関係なく通用します。

最後に

テスト駆動開発に出会う以前は、コードを書くことにストレスを感じていて自信も失われていました。
しかし、テスト駆動開発に出会った後は、前に進んでいる感覚が増し自己肯定感に溢れてきました。

すると、日々の言動や振る舞い, 顔つきも変わってきます。
プログラミングだけでなく色んなことに挑戦できるようになります。
自分の意志や決断、人生を信じることができます。
テスト駆動開発は、開発者の人生を豊かにする手法です。

これから、テスト駆動開発を学ばれる方を後押しできればと思うので、お気軽に連絡していただいてもらって構いません。

twitter.com

明日はokauchiwaniさんです!
お楽しみに。