Search
Duplicate

린 소프트웨어 개발

왜 작업이 계획대로 진행되지 않을까?
이 문제는 비단 현재의 소프트웨어 업계에 뿐만 아니라 아주 오래전 공장에서 하드웨어를 만들기 시작했던 시기에도어쩌면 수천년전 건축, 토목 공사를 했던 사람들에게조차 의문이 되지 않았을까 생각이 됩니다
사전의 완벽한 계획에 의해 작업이 순차적으로 딱딱 이루어져서 그 결과인 완성품은 사전에 계획된 모습 그대로 나오는 것이 모두가 생각하는 가장 좋은 방식이 아닐까 싶은데현실은 항상 그렇지가 않습니다
이 책에서도 언급 되지만 그것이 안 되는 근본적인 이유는 애초에 계획이 실제 작업 환경의 복잡성을 완전히 예측할 수 없기 때문입니다
실제 작업 중에는 여러가지 요인들에 의해 항상 미리 계획된 내용은 변경이 생기게 마련이며 또 미리 예측 하지 못한 부분에서는 항상 문제가 발생하기 마련인데전통적인 방식인 상급 관리자에 철저한 계획에의해 모든 작업의 통제가 이루어지는 순차적 작업 방식은바로 이러한 계획의 변경이나 예측하지 못한 상황의 문제가 발생했을 시의 대응력이 떨어져결국 제품질의 하락, 개발 시간과 비용의 증가 같은 좋지 않은 결과가 발생하게 됩니다
더욱이 시대가 지나며 날로 늘어만 가는 개발의 복잡성으로 인해예측 불가능한 변경 사항에 대한 적절한 대응을 할 수 있는 방법이 필요하게 되었고이 책은 바로 그러한 문제를 줄여줄 방법론인 린 소프트웨어 개발 방법에 대해 이야기 하고 있습니다
도요타의 생산 방식을 기반으로 하여 만들어진 이 린 소프트웨어 개발 방법은개발 과정에서의 낭비를 줄이고 개발 도중에 발생하는 다양한 문제에 대한 대응력을 높일 수도 있고 보다 높은 품질의 제품을 만들 수 있는 여러 방법들을 소개합니다피드백, 반복, 동시 개발, 당김 시스템, 자기결정권, 리펙터링, 테스트 등이 바로 그러한 것들이지요
사실 개인적으로는 –물론 위와 같은 방법들도 모두 훌륭한 것이지만– 이 책에서 가장 크게 얻은 통찰은 항상 개선을 하는 자세를 갖는 것이었습니다한 번에 일이 마무리 될 것이라는 생각을 하지 않고 작업을 진행하며 문제가 되는 부분을 끊임없이 개선해서 점점 더 나은 결과물을 만들어 내는 과정은 비단 개발과정에서만이 아니라 모든 분야에 전반적으로 걸치는 내용인지라큰 감명을 받은 것이지요–이 부분은 게임 디자인에 있어서도 적용 가능하리라 보는데 자세한 내용은 다음에 정리해서 이야기해 보겠습니다
책 중간에도 언급되지만 사실 어떤 특정한 방법론이 모든 곳에서 통용될 수는 없습니다각자가 처한 상황에 맞춰 맞는 방법을 취하거나 혹은 자신들에게 맞게 변형해서 사용되야 하는 것이지요 –많은 곳에서 이러한 방법론을 도입하려다 실패한 이유가 개인적으로는 바로 여기에 있지 않을까라고 생각됩니다실천 가능한 방법들에 대한 소개도 물론 훌륭한 책이지만그보다도 낭비를 줄이고 끊임없이 개선한다는 기본 철학을 기초한다는 점에서 참 훌륭한 책이라 생각 됩니다그것을 이해할 수 있다면 어떤 환경에서든 좋은 방법을 찾아낼 수 있기 때문입니다