요즘 팀에서 '설계'에 대한 교육과정을 만들고 있습니다. TDD 메일링 리스트를 읽던 중 좋은 디자인 good design 이란 단어가 눈에 띄어 옮겨봤습니다. 밥 아저씨가 한 말입니다.
One reasonable definition of good design is testability. It is hard to imagine a software system that is both testable and poorly designed. It is also hard to imagine a software system that is well designed but also untestable.
Robert C. Martin (Uncle Bob)
설계의 끝이 어디냐? 저는 '개발을 시작할 수 있는 곳'이라고 생각합니다.
그럼 좋은 설계는 뭐냐? 개발된 코드가 테스트 하기 좋으면 좋은 설계다. 이 두 질문을 합쳐보면 어떻게 설계를 해야 하는지 답이 나오는 거 같습니다. :-)
한편으로 초보자도 숙련자처럼 잘 쓸 수 있게 만든 UI가 잘 만든 UI이듯 좋은 설계는 초보 개발자도 숙련 개발자 처럼 잘 이해할 수 있게 만든것은 아닐까요.
좋은 설계는 테스트를 잘 할 수 있는가(testability)로 정의할 수 있습니다. 설계의 목적은 결국 무엇입니까? 잘 작성된 설계 산출물을 만드는건가요? 아닙니다. 결국 잘 동작하는 시스템을 만드는 것입니다.
그럼 테스트 용이성은 또 뭐라고 정의할 수 있을까요 ? :-)
설계, 개발, 테스트는 따로 분리할 수 있는 작업이 아니라 한꺼번에 이루어져야 합니다.
그럼 테스트 용이성은 또 뭐라고 정의할 수 있을까요 ? :-)
'Work & Study > 애자일 개발' 카테고리의 다른 글
| 애자일 관련 직업(job) 얼마나 성장하고 있는가 (3) | 2010/02/23 |
|---|---|
| 2009년에는 애자일이 얼마나 성장했을까 (2) | 2010/02/22 |
| 좋은 디자인이란? (0) | 2010/02/11 |
| 요구사항이 라면 심부름이라면 (4) | 2010/01/26 |
| 리팩토링을 하면 안되는 진짜 이유 (4) | 2010/01/23 |
| 구글이 만든 새로운 언어 Go (0) | 2010/01/21 |


