린 소프트웨어 개발 - 애자일 실천 도구 22가지 애자일 시리즈 4
메리 포펜딕.톰 포펜딕 지음, 김정민.김창준 외 옮김 / 인사이트 / 2007년 9월
평점 :
절판


이 책은 TPS(도요타 생산방식)를 소프트웨어 개발에 적용하는 것에 관한 이야기이다. LSD(Lean Software Development)이라고 불리는 것에 대한 내용을 말하고 있다. 소프트웨어 개발에만 국한되었다기 보다, 모든 복잡한 지식 작업을 바탕으로 신제품을 개발해야하는 많은 분야에서도 이 책에서 말하는 통찰력을 사용할 수 있다고 생각된다. 

린의 7가지 기본원칙과 그 원칙 아래 린사고의 도구들을 소개하면서 내용이 진행된다. 

1. 낭비를 제거하라.
실질적으로 고객의 가치를 높이는 일에 시간을 써라.
도구 1. 낭비 찾아내기.
도구 2. 가치 흐름도 작성.

2. 배움을 증폭하라.
어려운 문제가 있을 때, 피드백을 증가시켜라.
도구 3. 피드백.
도구 4. 반복. 
도구 5. 동기화.
도구 6. 집합기반 개발방법.  

3. 가능한 늦게 결정하라.
선택이 유효할 때까지 되도록 결정하지 않은 채로 둬라. 하지만 그 이상은 안 된다.
도구 7. 대안적 사고.
도구 8. 책임이 따르는 마지막 순간.
도구 9. 의사결정. 너비 우선 문제해결. 단순한 규칙. 

4. 최대한 빨리 납품하라.
고객이 요구하는 가치를 실현하도록 빨리 납품하라.
도구 10. 풀 시스템
도구 11. 대기행렬 이론
도구 12. 지연 비용.

5. 팀에 권한을 위임하라.
사람들이 자신의 잠재력을 써서 가치를 더할 수 있도록 하라.
도구 13. 자기결정권.
도구 14. 동기부여.
도구 15. 리더십. 
도구 16. 전문지식.

6. 통합성을 구축하라.
만들고 난 다음에 완전해지려고 땜질하지 마라. 처음부터 통합성을 생각하여 만들라.
도구 17. 인식통합성.
도구 18. 개념통합성.
도구 19. 리팩터링.
도구 20. 테스트

7. 전체를 보라.
전체를 희생하여 부분을 최적화하려는 유혹을 경계하라.
도구 21. 측정.
도구 22. 계약.  

이전부터 도요타 생산 시스템에 관심이 있어서, <도요타 제품 개발의 비밀>, <도요타 방식>  등과 같은 제프리 라이커의 책을 읽었었는데, 이 책에서는 소프트웨어 개발에서 간반 시스템을 어떻게 사용하는지에 관한 구체적인 아이디어가 있어서 재밌었다. 그리고, 불확실성이 감소될 때까지 돌이킬 수 없는 결정을 연기하는 것은 경제적인 가치가 있다라고 이야기하면서, 결정을 미루라고 이야기한다. 즉, 결정을 늦게 하고, 올바른 결정을 하는 것이 좋지, 조급하게 결정해서 나중에 많은 비용을 치루는 것보다 낫다는 이야기를 한다.  

소프트웨어 개발을 하다면 미래를 생각해서 여분의 코드를 작성하는 일이 있는데, 그런 것들이 낭비라고 말하고 있다. 미래에 필요할 것을 가정해서 당장에 필요없는 코드를 작성하는 것은 소스코드를 복잡하게 만들고, 필요이상의 재고를 생산하는 것처럼 낭비라고 말한다. 

이 책에서는 마스터 레벨의 엔지니어가 제품개발을 주도하면서, 고객의 입장에서 가치를 창출할 수 있도록 하고, 내부의 엔지니어들을 지도하는 이야기를 하면서 도요타의 치프엔지니어 제도를 설명하고 있다. <도요타 제품 개발의 비밀>에서도 자세히 다루고 있는 내용인데, 아주 재밌게 읽었다. 

일일빌드, 테스트 수트 등 고객의 사용자 요구부터 개발 조직 내부로 그런 정보의 흐름을 만들고, 짧은 주기로 우선순위가 높은 것을 빠르게 처리함로써 가치를 창출하는 흐름을 만드는 것에 대해서 상세히 설명하고 있다. 그리고, 대기행렬 이론, TOC 이론에서 공정중 재고를 처리하는 방법에 대한 다양한 아이디어를 제시하고 있다. 작은 분량으로 쪼개져야하고, 많은 작업자가 일을 처리함으로써 일부의 일이 정체되더라도, 전체의 흐름이 만들어지도록하고, 일이 오는 변화가능성을 감소시켜서 일정하게 일이 들어오도록 해야 한다. TOC 이론은 전체의 생산성에 제약이 되는 것은 병목구간의 문제를 해결해야함을 이야기한다. 모두다 바쁘다고해서 조직이 생산성이 나는 것이 아니라 오히려 병목구간의 문제가 해결되어야 전체적인 생산성이 올라간다는 것이다. 

그리고 처음부터 통합성을 고려해서 접근하기 때문에 너비우선 접근을 해서, 다른 형태의 전문적인 지식을 가진 사람이 필요하다. 

정말로 많은 좋은 아이디어를 담고 있고, 소프트웨어 개발에 대해서 기존의 폭포수 모델의 문제점을 뛰어넘을 수 있는 좋은 개념을 많이 담고 있다고 생각한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo