애자일 프랙티스
벤컷 수브라마니암 & 앤디 헌트 지음, 신승환.정태중 옮김 / 인사이트
애자일 개발이란 것이 상황변화에 기민하게 대처하자는 것이다. 고객의 요구사항은 정확히 파악하는 것 자체가 불가능하고, 고객 스스로 자기가 원하는 것을 정확히 알고 있지 않고, 제대로 전달하지 못하고, 또 변하는 것이기 때문에 개발 자체가 굳어져 있으면 안된다는 것에 기인한다. 이러한 개발 방식은 최근에 대두되어 새로운 것으로 느껴지기도 하지만, 새로운 것이라기 보다는 기존의 방법론들이 간과하고 있던 중요한 것들을 다시 정리한 것들 뿐이다.
소프트웨어 개발이란것이 처음 대두되었을 때는 특정 방식이나 원칙이 없이 진행되었다. 그러다 체계적인 프로세스가 도입되었고, 다양한 무슨 무슨 방법론이 그것들이다, 그것들이 그렇게 유용하거나 성공적이지 않은 것을 경험으로 느끼게 되었다. 이런식으로 해서는 안되겠다는 것에 의하여 무언가 새로운 방법에 대한 강항 욕구가 발생했다. XP나 agile이 그에 대한 반응일 것이다.
이 책에서 언급하는 내용들은 새로운 것이 아닌 당영한 것들이다. 그럼에도 불구하고 새로운 것으로 받아들여지는 것은, 이러한 당연한 것들이 그동안에는 무시되어 왔기 때문이다. 없으면 개발이 불가능하다고 느껴지는 svn, junit, ant 조차 도입되지 않은 프로젝트 예는 수두룩하다.
모두 45개의 실행안을 얘기하고 있다. '항상 릴리스 가능하게 하라', '점진적으로 개발하라', '이야기하는 주석', '만들기 전에 사용하라' 등과 같이. 대부분이 편안하게 느껴진다. 그러나 이러한 것들이 개인적으로만 공감하고 실행되어서는 의미가 없다. 속한 팀 전체가 같이 공감할 때만이 실제 품질과 생산성에 영향을 줄 수 있다.
단위테스트를 도입하여 좋은 점을 정리해 본다.
- 유지보수 시에 수정된 코드에 대한 유일한 검증방법이다.
- 단위테스트가 가능하려면 기능별로 분리가 되어야 하고, 결과적으로 바람직한 시스템 구조가 된다.
- 코드에 대한 자신감을 준다.
가볍게 읽을 수 있고, 토론용으로 딱 좋은 책이다.