[IT] 소프트웨어 스펙의 모든 것

2021. 11. 21. 19:35 | Posted by 꿈꾸는코난

< 소프트웨어 스펙의 모든 것 > | 김익환, 전규현 지음 | 한빛미디어

 

많은 소프웨어 개발 프로젝트가 다양한 이유로 실패한다는 것은 이미 알려진 사실이다. 프로젝트를 시작할 때 인원과 일정과 비용을 항상 산정해서 시작하지만 대부분 일정과 비용이 예상과 많이 달라지게 되어 예상했던 일정을 넘기거나 추가적인 인원이 프로젝트에 투입되게 된다(물론 프로젝트 막바지에 개발자가 추가된다고 하더라도 일정 단축이 된다는 보장은 하기 어렵다). 어떤 이유때문에 개발 프로젝트가 실패하게 될까?

문제가 발생하는 많은 프로젝트는 제대로 된 스펙이 작성되지 않은 채 프로젝트가 시작되는 경우가 많다. 일반적으로 소프트웨어라고 표현하는 개발 프로젝트는 그 성격상 언제나 변경 가능하다고 생각하기 때문에 스펙 작성을 소홀히 하는 경향이 있다. 그 결과 뒤늦은 스펙 변경으로 인해 전체 프로젝트에 심각한 영향을 끼치는 경우가 종종 눈에 띈다.

스펙을 제대로 작성하는 역량은 소프트웨어 개발에서 가장 어려운 능력이며 소질있는 개발자도 오랜 경험과 노력으로 터득해야 하는 기술이다. 하지만 많은 사람들이 스펙의 중요성에 대해 무시하는 경향이 있다. 대부분은 스펙에 대한 오해에서 비롯된다. 스펙을 적는 것이 좋다는 것은 알지만 어러 사정으로 못 적는다던지 소프트웨어를 만들어보기 전까지는 천재도 그 내용을 다 알 수 없다는 등이다. 특히 스펙을 작성할 시간이 없다는 얘기를 종종하곤 한다. 하지만 이미 언급했던이 대부분 오해에서 비롯한 사항이며 도리어 제대로 된 스펙없이 소프웨어 개발을 시작하는 것이 프로젝트를 위험에 빠뜨린다는 것을 알아야 한다.

소프트웨어 스펙을 개발자만을 위한 문서가 아니다. 소프트웨어 스펙은 모든 프로젝트 이해관계자를 연결하는 프로젝트의 중심이 되어야 한다. 고객, 마케팅, 영업팀에게는 어떤 제품이 만들어질지 미리 알 수 있도록 하며, 프로젝트 관리자에게는 스펙이 관리를 위한 기준이 된다. 개발팀은 스펙을 통해 개발해야 할 제품이 무엇인지를 정확히 안다. 이 외의 모든 인원이 이 스펙을 통해 미리 필요한 준비를 수행하고 처리할 수 있는 기준이 된다.

소프트웨어 개발에서 스펙이 중요한 만큼 제대로된 스펙 작성이 필요하다. 이 책에서는 SRS(Software Requirement Specification) 관점에서 스펙 작성을 설명한다. 종종 스펙과 요구사항을 혼동하는 것을 보게 된다. 요구사항은 일반적으로 고객이나 이해관계자가 요구하는 것이다. 하지만 스펙은 쓰는 사람에 따라 의미가 조금씩 다르다. 따라서 요구사항은 몇줄에 불과할 수 있지만 그 요구상에 매핑되는 스펙은 수 페이지 또는 수십 페이지가 될 수도 있다.

스펙의 중요성은 이 책의 분량만 봐도 알 수 있다. 총 2부로 구성되어 있는데 1부 "소프트웨어 스펙이란?" 부분이 전체의 2/3를 차지한다. 그만큼 스펙의 개념을 이해하는 것이 중요하다는 것을 보여준다. 2부 "SRS 작성법"은 1/3 정도를 차지하는데 실제 SRS 예제를 기반으로 작성해야 하는 항목에 대해 자세히 설명하고 있다.

소프트웨어 스펙의 중요성은 아무리 강조해도 지나치지 않는 것 같다. 그만큼 중요하지만 많은 사람들이 소홀하게  생각하는 것도 사실이다. 프로젝트의 성공을 위해서라도 제대로 된 스펙 작성에 대한 중요성과 작성법을 익힐 필요가 있다고 생각한다. 프로젝트 관리자뿐만 아니라 개발자, 그리고 회사의 구성원 모두 스펙의 중요성을 인식하고 프로젝트의 출발점으로 삼는 인식 전환이 필요한 것 같다. 많은 회사의 구성원들이 이 책을 읽고 스펙에 대한 중요성을 다시 인식하고 개발자는 제대로 된 스펙을 작성할 수 있는 개념과 기술을 터득하면 좋을 것 같다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."