프로젝트인원 7 인에 개발자 5명에 프로젝트에서 제가 맡은 임무는 프로젝트 개발 프레임워크에 대한 가이드라인 마련이나 적절한 라
이브러리를 제공하거나 프로토타입 코드를 통해 개발자들간에 코드의 차이점을 줄여나가는 역활입니다.
프로젝트 초기 전체적인 아키텍쳐에 관해서 작은 시간을 빌어서 토론도 하고 스터디도 해나가면서 어느 정도 절충안을 잡았습니다.
이 때 다른 개발자분들이 전부 저보다 경력이 많으시고 나이도 많으셨습니다. 그래서 제가 가지고 있는 생각을 어느 부분에서는 충돌
없이 내려놓아야 할 때도 있었습니다.
대분에 충돌의 발생 가능 지점은 시간과 일정이었습니다. 이런 시간과 일정에 대한 기준점은 물론 전 동의 하지 않았습니다.
나름 초기 시간이 많이 투자 되는 부분이 있을 수 도 있지만 후반 고객의 변심에 더 빠르게 대처 할 수 있다고 생각 했습니다.
그래도 밥이 안되기 때문에 어느정도 선에서 절충안을 내놓기를 중복에 관해서는 관대하지 말자였습니다.
프로젝트 중 발생하는 코드에 대해서는 중복이 2번이상 발생하면 제거하자였습니다.
시간이 지나고 프로젝트인원이 빠져나가고 추가적으로 들어온 고객요청 또는 오류 에 대해서 코드를 살펴보던 전 깜짝 놀랐습니다.
어느 한 서비스 코드에서 4시간 정도에 중복 제거 작업을 통해 거의 반적 이상의 코드를 제거 했고 코드가 말하는 바가 명확해졌
기 때문입니다.
분명 중복제거를 하자고 말했고 서로 지켜가고 있다고 믿었는데 많은 중복이 발생하고 있었습니다. 그냥 중복이 아니라
cut&paste 가 너무나 명확하게 보이는 ....
아마 시간적으로 조급함을 가지고 있었나 봅니다.
하지만 제가 4시간에 걸친 작업을 보았을때 조금만 생각 했다면 좋았을것을 하고 생각했습니다.
이번 중복 제거 작업을 한 이유는 고객요구 사항 반영을 위해 제가 작성하지 않은 코드를 이해 하기 위한 리펙토링중 하나였습니
다.
왜 이렇게 시간에 조급해 하는 걸까요 ?
--
Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ab...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 abqna+un...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.
제 생각에는 조급함보다 귀찮음이 더 많지 않았나 합니다.
제 경우에는 중복 제거를 위해 리펙토링을 하다보면 하루를 넘기기도 하고,
잘못 수정해서 사이드 이펙트(추가 문제)가 발생하기라도 하면 2~3일을 날리기도 했습니다.
이런점들 때문에 솔직히 귀찮고 부담으로 느껴지고, 또 나중으로 미루기도 하는 것 같습니다.
흠. 그래서 주기적인 코드 검토가 필요한 것 같습니다. ^^;
이상 주저리 주저리 였습니다. ^^;
--
Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ab...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 abqna+un...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.
양완수님 말씀처럼 “리펙토링을 너무 거창하게 생각하는듯합니다.” 라는 말이 공감이 가네요.
안녕하세요 .
깨친 창문의 예에도 알수 있듯이 몇몇 구성원이 냄새가 나는 코드들을 조금씩 작성해가면
다른 구성원도 쉬이 영향을 받게 되겠죠. 그것도 빠른 속도로...
코드리뷰나 페어프로그래밍 또는 코드 검사 툴 (FxCop같은.. 함수 최대 라인수, 클래스 최대 라인수, 작명법 처럼 어느정도
기계적이긴 하지만 효과가 없진 않습니다)
같은것을 이용하시면 조금 도움이 될것 같습니다.
제일 중요한건 중요 구성원들의 "지속적인 관심과 의지"이지 않을까요.