[책] 자바 프로젝트 필수 유틸리티

프로젝트를 관리하는 방법은 여러가지가 있습니다.

하지만 문제는 그 여러가지 방법들이 그다지 프로젝트를 성공으로 이끌어주지 않는다는 점입니다. 저 책을 다 보고나면 뭔가 프로젝트에 혁명이 오긴합니다. 하지만 놀랍게도 그걸 하기전과 한 후에 프로젝트의 순수한 성공률을 놓고 보면 그다지 달라지지 않는 경우가 많습니다.

하지만 확실한건 테스트주도개발, 코드품질검사, 지속적통합, 빌드자동화, 원격저장소, 이슈트래커 등을 통해 프로젝트의 성패와 상관없이 결과물의 품질이 매우 좋아진다는 점입니다.

이 점에 대해서 오너로서는 참 애매한 심정입니다. 결과물이 허접해도 돈벌어다주는게 중요하지 품질이 높은게 중요한건 아니거든요. 반대로 프로젝트가 성공할땐 품질이 뛰어나면 차후에 매우 도움이 되지만 품질이 뛰어나도 프로젝트가 실패하면 별로 의미는 없습니다.

우리가 보통 엄청난 대규모 프로그래밍을 하지 않는다는 점을 생각해보면 과연 저 모든 것들을 도입하는 과정에서의 시간과 비용, 진행하면서 추가로 들어가는 비용등이 향후에 보상될까라는 점도 의문이긴합니다.

린, 스크럼 이라 알려져있는 프로젝트 진행론은 아주 간단한 철학에서 출발합니다. 뭘할지 정확히 알지 못하는데 어째서 그 일을 하는가? 라는 거죠. 왜 그 일을 하는지 정확히 설명할 수 있으면 이미 그 프로그램을 만들기도 전에 완성된걸 가정하고 테스트도 할 수 있다고 봅니다. 어찌보면 기존의 분할방식 개발론은 로직은 분할하여 내부로부터 짜나갔다면 현대 개발론은 호스트코드를 먼저 짜보고 개발하라는 쪽으로 생각할 수 있습니다.

호스트코드를 보고 내부를 짜야 쓸데없는걸 짜지도 않고 개발한 결과물이 목적에도 부합한다는거죠.

그런 역발상식 개발을 하려면 반드시 도구들의 도움이 있어야합니다. 원래 말이 안되잖아요. 호스트를 보고 모듈을 짠다는건..

따라서 그렇게 역으로 개발해도 내가 문제없이 개발한건지 끊임없이 검증하고 테스트해서 확인해주는 툴을 같이 써야합니다. 그게 바로 저 도구들이죠. 한빛에서 좀 야비하게 비슷비슷한 자동화도구를 책 세권으로 나눠서 출간했습니다. 한 권씩 모으다가 결국 세권을 다 샀군요.

결국 3 저자 중에 가장 쓸모가 있는 책은 자바프로젝트 필수 유틸리티 인 듯합니다.

이런 어려운 내용을 공부하지 않더라도 작게나마 실천해보세요.

  1. 코드를 짜기 전에 내가 뭘 짜려는지 먼저 자세하게 정리해 메모장에 적는다.
  2. 메모장을 바탕으로 주석만 갖고 개발한다.
  3. 그 클래스를 사용하는 호스트 코드를 작성한다.
  4. 컴파일한다.
  5. 에러나는 곳을 수정해가는 식으로 개발한다.

이건 켄트백아저씨의 테스트주도개발을 아주 간단하게 축약해본 버전이라 할 수 있겠네요.

%d 블로거가 이것을 좋아합니다: