Pragmatic한 Test-Driven Development

그간 Programming 책이라곤 language syntax에 관련한 것 밖엔 읽어본 적이 없는데, 최근 들어서 SW 개발 자체에 관련한 책을 2권 읽어볼 기회가 있었다. 하나는 Pragmatic Programmer이고, 다른 하나는 Test-Driven Developement이다. 짜투리 시간에 꺼내 읽다보니 생각이 잘 나지 않아서 요즘 Pragmatic Programmer를 틈날 때 한번씩 더 읽어보고 있다.

두 책 모두 개발 목적을 향해 더 실용적인 행동을 권장하고 있다. 자칫 coding을 하다가 지엽적인 문제로 길을 잃는 나에게 매우 유익한 충고들이다. 특히나 Pragmatic Programmer의 Tracer Bullet 부분은 Test-Driven Development에서 추구하는 가치와 비슷한 듯?

  1. Users get to see something working early. 결국 유저, 혹은 상관, 교수님은 더 빨리 무엇인가가 실제적으로 동작하는 걸 확인할 수가 있게 된다. (완전하진 않더라도)
  2. Developers build a structure to work in. 테스트-개발-리팩토링의 싸이클이 돌아갈 수 있는 구조가 갖춰지면 일하기도 쉽다. 이제부터는 세부적으로 채워넣기면 하면 되니까…
  3. You have an integration platform. 이미 유닛 단위로 테스트할 수 있는 플랫폼이 있으니, 한번 테스트를 하기위해 빅뱅 수준의 탄생을 준비하지 않아도 된다.
  4. You have something to demonstrate. 진행 중간, 중간에 교수님, 혹은 상관에게 무엇이라도 보여줄 수 있지 않은가? 이게 정말 좋은 일이다. TDD 환경이 없으면 Coding 중입니다라는 대답도 처음 몇 번하고 나면 그 다음부터 힘들어진다.
  5. You have a better feel for progress. 실질적으로 눈 앞에 진행 상황이 보이면, 의욕이 훨씬 샘솟는다.