2016년 7월 12일 화요일

솔루션 개발을 위한 프로세스 개선 활동

소프트웨어를 만드는 회사가 어느 정도 안정기에 도달하면 개발과 품질 프로세스에 대해 관심이 많아지는 것이 일반적이다. 완성된 소프트웨어가 계속 누적된다면 프로세스에 대한 필요성을 더 느끼게 된다. 좀 더 체계적인 형태로 소프트웨어를 만들고 관리하면 불필요한 요소가 줄어들고 품질이 더 향상될 것이라는 기대감 때문이다. 이처럼 소프트웨어 개발 프로세스에 대한 요구는 날로 증가하고 있지만 실제 적용을 통해 성공한 사례는 많지 않은 경우도 사실이다. 반드시 필요한 부분이기도 하지만 이로 인해 발생하는 관리적인 요소도 많다는 것이 적용 해봤던 회사들의 의견이다. 이번 회에서는 소프트웨어 개발 프로세스를 올바르게 적용해서 성공할 수 있는 방법이 무엇인지에 대해 사례를 보며 살펴보기로 한다. 사례 적용에 참여했던 ㈜Coocon의 한용만 박사를 만나 자세한 사항을 들어본다.

Q: 사례를 살펴보기 전에 소프트웨어 개발에 프로세스가 필요한 이유에 대해 간략히 설명해 주시죠.

소프트웨어를 개발하기 전에 준비하는 것은 생각보다 많습니다. 일반적으로, 요구사항과 인프라 환경, 그리고 제반 사항이 모두 적힌 RFP나 제안서를 보면서 준비를 하게 되는데요. 프로세스가 필요한 이유를 두 가지 관점으로 말한다면 먼저, RFP나 제안서에 적힌 요구사항대로 잘 만들고 있는지 계속 확인을 하면서 진행을 하기 위해서입니다. 아무래도 오랫동안 개발 일정이 지나고 많은 개발 작업을 하다 보면 본의 아니게 놓치는 경우가 당연히 생겨납니다. 이러한 경우를 방지하기 위해 사용하게 되고요. 또 한가지는 개발되는 과정을 체계적으로 정리하려는 목적도 있습니다. 이렇게 정리된 것으로 품질이나 나중에 재사용에서 유용하게 쓸 수 있습니다. 정리하자면, 고객 관점에서도 필요하고 개발팀 관점에서도 필요한 것이기 때문에 프로세스는 소프트웨어 개발에서 반드시 필요한 요소입니다. 각 회사의 개발 노하우나 프로세스를 표준화 한 것이 개발방법론입니다.

Q: 프로세스는 소프트웨어 개발에서 매우 중요한 요소로 보이는데요. 그런데, 많은 개발자들이 프로세스나 개발방법론에 대해 거부감을 나타내는 경우가 많습니다. 그 이유는 무엇일까요?

한마디로, 프로세스나 개발방법론에 문서 작업이 많기 때문입니다. 대개의 개발자들은 소프트웨어 개발만 하기를 소망합니다. 개발자들에게 프로세스나 개발방법론은 문서 작업만 하는 불필요한 일이라고 생각할 수 밖에 없지요. 많은 학자나 전문가들이 이를 해결하기 위해 많은 노력을 했지만 개발자 입장에서는 해결할 방법이 없는 것이 맞는지 모릅니다. 그래도, 최근에는 애자일과 같은 다양한 방법들이 나오면서 조금씩 해소가 되는 중이라고 볼 수 있습니다.
이러한 거부감을 해결할 포인트는 개발자에게 불필요한 것을 하지 않게 하는데 있습니다. 매우 어려운 문제이기도 하지만 프로세스나 개발방법론을 적용해야 한다면 불필요한 문서 작업만 줄여도 개발자의 불만은 매우 줄어들 겁니다. 개발자 입장에서도 문서 작업이나 개발 외 작업이 필요하다라는 공감대를 갖도록 하는 것이지요.