ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 실용주의 프로그래머 정리 8
    Study/실용주의 프로그래머 2021. 12. 21. 00:19

    실용주의 프로젝트

    이번 장에서는 실용주의 기법들을 팀과 프로젝트에 적용하는 방법에 대해 알아보겠습니다.

    41. 실용주의 팀

    이전 장들에서 배운 실용주의 기법들을 팀 전체에 적용하는 전략을 알아보겠습니다.

    깨진 창문을 없애라

    깨진 창문은 팀원 전체가 관심을 가지고 정리해야합니다. 코드를 정리하는 인원 몇명을 두는 것은 현실적으로 불가능합니다. 팀 전체가 지저분하거나 개선해야되는 코드를 방치하지 말고 깨끗히 정리합시다.

    삶은 개구리

    프로젝트 전체 환경 변화를 지속적으로 감시하고 관찰해야 합니다. 아무도 모르게 프로젝트가 망가질 수 있습니다. 필요하다면 감시자 역할을 팀원 중 한명에게 맡겨서 변화를 지속적으로 감시하도록 할 수 있습니다.

    소통하라!

    팀원들끼리 활발하게 소통해야합니다. 또한 외부와 적극적으로 소통해야합니다. 무뚝뚝하고 과묵해보이는 팀은 좋지 않습니다.

    반복하지 마라

    반복적인 작업을 팀원들이 하지 않도록 해야합니다. 필요하다면 코드 중복을 관리하는 팀원을 지정합시다.

    직교성

    직교적인 조직을 만들어서 각 조직이 맡은 기능을 수행하도록 해야합니다. 팀을 기능적으로 적절히 분리하면 자기 기능에 대해 책임을 지게되고 각 팀들이 변화에 대응할 때 다른 팀에 영향을 주지 않고 상호작용 수를 줄일 수 있습니다. 팀원들의 피로를 줄여줄 수 있습니다.

    자동화

    반복되는 작업은 자동화 합시다. 도구 제작자 역할을 지정하는 것도 좋습니다.

    덧칠을 언제 멈출지 알아라

    팀은 개인들로 이루어지기 때문에 각 팀원이 자신의 방식을 사용할 수 있도록 해줍시다.

    42. 유비쿼터스 자동화

    적극적으로 자동화를 도입합시다. 다음 예시를 참고해서 자동화를 많이 합시다.

    • 개발 환경 설치 자동화
    • 컴파일 단계 자동화
    • 코드 생성 자동화
    • 자동으로 회귀 테스트 돌리기
    • 빌드 자동화
    • 최종 빌드 자동화

    43. 가차 없는 테스트

    테스트를 가능한 빨리, 그리고 자주, 자동으로 테스트 합시다. 테스트의 중요성은 말 할 필요가 없습니다. 대부분 개발자들은 테스트가 중요하다고 생각합니다. 모두가 중요한 것을 알지만 테스트는 너무 귀찮습니다.


    그렇지만 귀찮음을 이겨내고 테스트를 가차없이 한다면 큰 이득이 있습니다. 미래에 발생할 수 있는 큰 버그를 막아주고 미리 알 수 있습니다. 여러 단계의 테스트를 활용해서 마치 그물망을 펼치듯이 버그와 오류를 확인합시다.


    테스트의 종류는 다양합니다. 단위 테스트, 통합 테스트, 성능 테스트 등 다양한 단계가 있습니다. 많은 테스트를 하면 좋지만 매번 직접 수행하기가 힘듭니다. CI/CD 파이프라인을 만들어서 테스트를 자동화해서 자주 돌릴수 있도록 만들면 좋습니다.


    개인적으로 이번 장에서 가장 중요한 내용은 테스트 자동화라고 생각합니다. 수동으로 하는 테스트는 결국 놓치게 돼있고 실수하게 돼있습니다. 매번 검증할 수 있도록 자동화를 하면 견고한 시스템을 만들 수 있을 것입니다.

    44. 결국은 모두 글쓰기

    문서화를 잊지말고 합시다. 문서화는 귀찮은 작업이지만 나중에 도움이 됩니다. 문서화를 할 때 주의할 점은 코드와 문서의 내용이 일치되지 않도록 하는 것입니다. javadoc 주석을 활용하면 코드에 문서화를 같이 할 수 있습니다.


    글쓰기도 프로그래밍과 비슷한 면이 있어서 dry, 직교성 등의 원칙을 지키면 좋습니다. 예를 들어, 마크다운 형태로 문서를 저장하면 그냥 글로도 볼 수 있고 두레이 같은 협업 도구를 사용하면 PPT 형태 또는 회의 모드로 볼 수 있습니다.

    45. 위대한 유산

    클라이언트가 기대하는 시스템을 잘 파악합시다. 결국 소프트웨어는 사용자를 위한 것이므로 사용자가 기대하는 바를 충족시켜주는 것이 최고의 소프트웨어를 만드는 길입니다. 예광탄과 프로토타입을 잘 활용해서 사용자가 기대하는 것을 이끌어냅시다.


    더 나아가서 사용자가 기대하는 것 이상을 보여줘서 놀라게 합시다. 좋은 평가를 얻을 수 있습니다. 근데 왜 제목이 위대한 유산인건지는 모르겠네요..

    46. 오만과 편견

    방어적으로 행동하지 말자. 책임감을 가지고 다른 사람들에게 방어적으로 행동하지 말자.

    댓글

Designed by Tistory.