TDD and Refactoring Help

테일러주의

18. 테일러주의와 소프트웨어 from 익스트림 프로그래밍 2판

  • 테일러리즘: 노동 생산성 증진이 목표

  • Frederic Taylor

  • 최초의 산업공학자

  • 공장의 생산성을 체계적으로 개선하는 사례들을 엄밀하고 설득력있게 제시

  • 자신의 가르침을 위한 강력한 메타포 선택

    • "과학적 관리"

    • 서술적 이름(descriptive name)을 선택할 때는 반대 개념이 매력 없는 이름을 고르면 도움이 됨

    • 누가 비과적인 관리를 좋아하겠는가 ?

    • 관찰, 가설, 실험을 적용

    • 전문적인 지식과 역량이 요구되는 일에는 부적합하며, 노동자들의 자율성과 창의성은 무시한 채 효율성의 논리만을 강조했다는 비판

  • 심각한 단점

    • 단순화를 위한 3개의 가정 때문

      • 일은 대체로 계획대로 진행됨

      • 미시적 최적화는 거시적 최적화를 낳음

      • 사람들은 대개 서로 대체 가능, 일을 하려면 무엇을 해야 하는지 지시를 받을 필요가 있음

      • BDUF: 모든 요구사항을 미리 파악, 정의 가능하다는 가정

  • SW 개발과 안 맞음

    • 테일러식 사회공학의 첫번째 단계

      • 계획과 실행의 분리

        • 방법과 소요 시간 결정은 교육받은 공학자

        • 작업자들이 주어진 과제를 주어진 방법으로 주어진 시간 동안 충실히 따르면 모든 일이 잘 될 것이다

        • 작업자는 기계의 톱니바퀴이다

      • SW 개발에서도 테일러의 메이리가 들릴 때

        • 권한이 있는 사람이 다른 사람의 추정치를 만들거나 변경할 때

        • 엘리트 아키텍트, 프레임워크 그룹이 사람들이 정확히 어떤 방식으로 일해야 하는지 규정할 때

    • 두번째 단계

      • 품질 부서를 따로 두는 것

        • 테일러는 작업자들은 할 수만 있다면 언제나 꾀를 부린다고 생각

          • 불신, 감시의 대상

        • QA에 의존하면 공학부서의 누구도 품질에 책임을 지지 않게됨

Last modified: 31 October 2024