[개발 방법론] 필요한가??
안녕하세요. yeTi입니다.
오늘은 방법론에 대한 제 생각을 적어보고자 합니다.
요즘 꽂혀있는 단어들이 있습니다. 약속, 규약, 규정, 계획, 상세화, 명료화, 문서화, ..
공통적인 특징은 틀을 만들어 내용을 담는것입니다.
이 단어들은 그 동안 SI 프로젝트들을 진행하면서 가지게 된 의문들로 인해 꽂힌거 같습니다.
'개발에는 필요도 없는 문서들을 왜 만들지??'
'업무에 대한 인수인계는 왜 항상 빈틈이 생기지??'
'개발시 생기는 리스크 관리는 어떻게 하지??'
'내가 짠 코드가 효율적인가??'
'업무간 공유는 어떻게 유기적으로 할 수 있지??'
이런 의문들에 대한 해결책으로 규정을 새우고 이를 문서로 남기는것을 생각하고
개발에 대해서는 CBD 방법론을 도입하여 개발에 대한 상세한 내용을 문서화하고 업무 내용에 대해 문서를 작성하여 기록하고
SVN을 통한 철저한 형상관리와 빠짐없는 코드리뷰로 개발 소스의 완전함을 추구했습니다.
그러다보니 개발외 업무 비중이 80%이상을 차지하게 규정을 정하고 문서에 모든 내용을 담으려고 노력하고 현행화 하려고 하다보니 체력적으로나 아이디어적으로나 시간적으로 한계에 부딪히는 느낌을 받았습니다.
이러던 와중에 All of Software의 '개발 프로세스가 개발 문화를 이기기 어려운 이유' 라는 글을 읽고 생각에 반전을 가져오는 계기를 만들었습니다.
이우소프트의 CEO인 전규현씨는 이렇게 말합니다. 'SW를 가장 효과적으로 개발하는 방법은 프로세스에 상관없이 가장 적절한 과정으로 개발하는 것이다. 그 적절한 과정은 성숙한 개발 문화 속에 있다.'
프로세스가 정교해 질수록 해야하는 절차는 복잡해지고 내용이 방대해진다고 합니다. 따라서 개발에 대해서 개발자의 역량에 맡기고 성숙한 문화를 만들어가면서 개발 효율을 늘린다는 것이 주요 내용입니다.
순간 개발자의 역량에 맡기고 성숙한 문화를 만든다는 문장을 듣고 자유로운 분위기에서 모든 팀원들이 능동적으로 제안하고 협의하고 진행하는 그림이 스쳐지나갔습니다.
어떻게하면 저런 문화와 역량을 만들어갈 수 있을까요??
모든 일에는 장점만 있는것은 아닌데 개발자의 역량에 맡기고 성숙한 문화를 구성하면서 생기는 단점은 무엇일까요??
결국은 적절한 문서화와 적절한 능동성을 만들어 가야할까요?? 여기서 적절한것은 무엇일까요??
성숙한 문화란 어떤걸까요??
서로 다른 생각을 가진 사람들이 만나서 개발을 진행하면서 동일한 업무 환경을 구성한다는 것은 참 어려운 일인거 같습니다.
참고 문헌
- All of Software : http://www.allofsoftware.net/2017/02/blog-post.html