about 4 years ago

先週末に Agile Samurai Base Camp に参加してきました
エンジニア見習いで経験が圧倒的に足りてない自分ですが
熱心な弟子として自分なりに学んだことをまとめたいと思います

アジャイル開発とは

ASBCの最初はアジャイルサムライ監訳者の一人である角谷信太郎さんの基調講演から始まったのですがそのスライドの中に アジャイルなソフトウェア開発の定義が載っていました!

開発がアジャイルであるということは、協調性を重んじる環境で、フィードバックに基づいた調整を行い続けることである。

なるほど(ΦωΦ)
てっきりインセプションデッキやTDDとか出てくるのかと思いましたが定義はこれだけなのですね。ずいぶんスッキリしててわかりやすいです。 価値あるソフトを毎週届ける ことや 顧客と開発チームが揃ってアジャイルチーム であることもアジャイルな開発を支える構成要素なのだと感じました。

他にもアジャイルサムライの作者(Jonathan Rasmusson)が何故アジャイルサムライを書こうと思ったのかなど面白い話もありました。当時もアジャイル開発に関する本は色々あったけどまとまってないし全部読むのは大変だったからまとめた本が必要だと思ったそうな。

TDDどう始めるの?

第二セッションは インセプションデッキTDD の二つのテーマに分かれて開かれました。
自分はコーディングに近い方に興味があったので和田卓人さんのTDDについての講演に参加しました。

「動作するきれいなコード」、ロン・ジェフリーズのこの簡潔な言葉は、TDD(テスト駆動開発)の目標である。動作するきれいなコードは、あらゆる理由で価値がある。 - Kent Beck

なるほど(ΦωΦ)
TDDの目標は「動作するきれいなコード」を書くことだと思いました。
「動作するきれいなコード」を書くには

  • きれいなコードを書いてから動作するコードを書く方法
  • 動作するコードを書いてからきれいなコードを書く方法

の二つがありますが前者は難しいそうで和田さんの説明がとてもわかり易かったです。
曰く、

  • 「良い設計には実証方法が少ない」
  • 「完璧主義の呪い」

と。
良い設計と言うのはそれ自身だけで良い設計と判断するのは難しく動作させてみて初めて気づくことも多い。なのでまずきれいなコードを書こうとするとそれがきれいであることを実証するまで動作するコードを書けないという完璧主義の呪いに陥るそうです。おぉ怖い…

結局 動作するコードを書いてからきれいなコードを書く のが現実的だということで
これを実現しているのが テスト駆動開発 .
TDD

  1. 目標を考える
  2. その目標を示すテストを書く
  3. そのテストを実行して失敗させる(Red)
  4. 目的のコードを書く
  5. 2で書いたテストを成功させる(Green)
  6. テストが通るまでリファクタリングを行う(Refactor)
  7. 1~6を繰り返す

のサイクルで行われるそうで、4で動作するコードを書き6で綺麗にしてるんですね。

TDDを行うためにはテストと呼ばれるプロダクトには関係ないコードを書く必要があるのですが、
これは聞いてる限りかなりめんどくさそうですね…
ですがテストを書くのは自分がコードに不安のあるところなのでテストがあれば祈りながらビルドをすることも減るのではないでしょうか。
とりあえず僕は未だ見習いなのでTDD前提の開発スタイルを身に着けていきたいです(`・ω・´)ゞ

テストは目的ではなく手段

これはこころに留めておいたほうがよさそう…

最後に和田さんはTDDはなにより 健康のために 大事だとおっしゃっていました。
コードの健康、チームの健康、自分の心の平安。
これを保証するためにもTDDは大事なんだそうです。
大事だと思います(TT)

まとめ

このあとお昼休みがあり午後にはライブコーディングなどがありました。
自分は午前の講演でお腹がいっぱいになっていたので午後はライブコーディングを眺めながらのんびりできてよかったです(´ω`)
(内容も玄人向けのものが多かったので…)

ASBCに参加してアジャイルサムライをもう一度読み直したいと思いました。
今ならもうちょっと色々理解できると思いますw

京都の大学生である自分がASBCに参加できたのは本当に偶然が重なってでした(感謝!!)
とても勉強になりましたしまだまだ学ぶことも多いと感じました。
来年も開催された時はまた参加して実践的な内容が理解できるように今からがんばりたいと思います٩( 'ω' )و

← 『指数・対数のはなし』を読んで 姫様と地獄のランキング♪ →
 
comments powered by Disqus