블로그내용 소개 – 에릭 싱크


원문 : http://software.ericsink.com/No_Programmers.html

개발자와 프로그래머의 차이에 대해서 기술한 블로그 내용.

여기서 ‘프로그래머’란 새로운 기능을 코딩하고 운이 좋으면 버그를 고치는 일만 하는 사람입니다. 프로그래머는 스펙을 작성하지 않습니다. 자동화 테스트케이스를 작성하지도 않습니다. 그리고 자동화 빌드 시스템을 최신으로 유지하는데 도움을 주지도 않습니다. 또 고객이 힘든 문제를 해결하는 걸 돕지도 않습니다. 설명서를 작성하는 데 힘을 보태지도 않고, 테스트에 참여하지도 않습니다. 코드를 읽는 일조차 하지 않습니다. 프로그래머가 하는 일은 오로지 새 코드를 작성하는 것뿐입니다. 소규모 ISV에서는 이런 사람을 원하지 않습니다. 여러분에게는 코드를 작성하는 특수 임무를 맡은 ‘프로그래머’가 아니라, 성공적인 제품 개발을 위해 다양한 방식으로 기여하는 ‘개발자’가 필요합니다.

라는 내용의 글을 에릭싱크 자신의 블로그에 올려놓았다. 위 글을 언급하는 이유는? 최근에 다시금 어떻게 하면 무지막지하게 고생하는 팀원들과 나 자신에게 좀더 테스트 코드를 작성하고 활용하게 할 수 있을까에 대한 고민을 다시 새로이 시작하는 시점에 참고가 될만한 내용이라고 생각해서이다.

물론 테스트코드 .. 작성하면 된다. 무조건 통과할 수 있도록 거기에 맞추어서 코드를 추가할 수도 있다. 형식적인 자료만 될 수 있는 코드도 무지하게 추가할 수 있다. 하지만, 스스로가 이건 정말 도움이 되는 것 같다… 정말 도움이 되었다. 라고 느끼지 않는 다면 얼마 지나지 않아서 다시 이런 자동화된 테스트 코드를 작성하는 것을그만 둘 것이다. 나 자신도 물론 그럴 것이고.

문제는 현재까지는 이런 테스트 코드를 작성하는 일이 재미도 없고, 그리 도움이 될만하다고 느껴본적이 없으며, 쉽게 느껴지지도 않는다는 것이다.

어떻게 하면 진정으로 도움이 되는 테스트라고 생각할 수 있을까? 어떻게 하면 이런 것을 경험할 수 있을까? 누군가 나서서 이렇게 하자!! 라고 지속적으로 외치기만 해서 해결될 수 있을까?

일단 위에나온 에릭 싱크의 말처럼 접근을 시작하는 것도 좋겠다. 누구나 자신이 발전하는 것을 좋아하기 때문이다. 이렇지 않는 사람이라면 전혀 재고의 가치도 없을 것이다. 발전을 원하는 사람들에게라면 어느정도 씨앗이 될 수 있을 만한 거리를 제공하고, 어떻게는 테스트 코드를 작성하는 것도 하나의 일이며, 이런 일을 할 수 있는 시간을 확보해서 제공하는 것만이 결국에는 모두에게 이익이며 개발비용을 오히려 절감할 수 있는 것이라는 사실을 윗사람들에게도 제공할 수 있도록 데이타가 축적되어야 하겠다.

# 우선 작은 성공을 경험할 수 있도록 제공하자.

# 쉽다고 느낄 수 있도록 자동화할 수 있는 방법을 고민하자.

# 신입사원도 자연스럽게 할 수 있는 상태가 되면 누구에게나 쉬운 것이다.

거창하게 모든 것을 한꺼번에 통합할 필요성은 없다. 단위테스트 코드들이 늘어날 수록 테스트를 자동화해서 매번 거치는 코드들은 그만큼 검증되었다고 인정해주는 분위기가 되어갈 때 즐거움을 느끼는 ‘개발자’ 단계로 들어가는 것임을 상기시켜야 하겠다.