진화하는 팀을 위한 개발 환경 구축 안내서
의사소통의 부족, 무질서한 팀이 유기적이고 능동적인 팀으로 변해가는 과정과 도구들이 팀에 스며드는 방법을 보여준다. 프로젝트 구성원의 역할이 세분화하면서 증가한 협업 비용을 낮추는 방법, 생산성을 위해 도입한 다양한 오픈 소스 라이브러리와 프로젝트 간의 의존성으로 발생하는 복잡함을 관리하는 방법, 구성원의 거부감을 낮추면서 애자일한 팀으로 발전하는 과정을 보여주면서 개발 환경, 개발 프로세스, 개발자가 애자일하게 변하는 모습을 보여준다.
개발자가 일하기 편한 프로젝트 환경 만들기
소프트웨어가 복잡해진 만큼 개발 환경도 복잡해졌다. 복잡해진 개발 환경을 관리하는 어려움을 Maven, TeamCity, Equinox p2 등 프로젝트 필수 유틸리티로 쉽게 관리하는 방법을 보여준다. 프로젝트마다 다른 프레임워크 버전을 일관되게 관리하고, 프로젝트 환경에 맞는 이클립스를 구성하는 법, 팀원 간에 공통된 개발 환경을 공유하는 방법을 소개해 복잡한 프로젝트 환경을 더 쉽게 관리한다.
변화에 적응하는 팀 만들기
프로젝트 환경 만들기의 어려움은 단순히 도구가 아니라 사람에게 있다. 변화에 거부감을 드러내는 팀에 프로젝트 도구를 도입하고, 점진적으로 팀의 변화를 이끌어가는 모습을 보여줌으로써 자신의 팀에 어떻게 적용하면 좋을지에 대한 실마리를 제공한다.
- 버전 관리 시스템(Subversion)으로 소스 코드 관리
- 이슈 관리 시스템(Trac)을 활용한 문서와 프로젝트 관리
- 팀 협업을 위한 이클립스 개발 환경 구성하기
- Equinox p2로 이클립스 플러그인과 인스턴스 관리
- Maven을 이용한 빌드와 프로젝트를 관리하는 법
- TeamCity로 프로젝트를 통합하는 법
- Cobertura로 소스 코드 품질 기준 측정하기
- Checkstyle로 소스 코드를 통일하는 법
- Findbugs, JDepend, PMD, CPD로 소스 코드 분석하기