2013년 6월 19일 수요일

결국 최고 걸림돌은 경영진이다.

소프트웨어 회사가 제대로 개발 역량을 갖추는데 최고의 걸림돌은 소프트웨어에 대한 이해가 부족한 경영진이다.

일반 경영자들이 소프트웨어를 이해할 수 없기 때문에 CTO가 존재한다. 하지만 우리나라 대부분의 소프트웨어 회사에는 CTO가 없거나 있다고 하더라도 CTO역할을 하지 않고 있다.

흔히 벌어지는 심각한 문제는 프로젝트 기간 아무때나 요구사항을 변경하고 심지어는 소프트웨어 기획의 방향을 완전히 뒤엎곤 한다. 이로 인해서 소프트웨어 개발에는 어떠한 일들이 벌어지는지 모르는 듯하다.

알파 버전이 출시된 이후에 아키텍쳐를 뒤흔들만한 기능을 추가하도록 하는 경우도 있다.

자동차를 개발하면서 양산 직전에 휘발유차를 디젤차로 바꾸자는 소리를 하는 사람은 아무도 없을 것이다. 그런데 소프트웨어 회사에서는 경영진의 개인적인 주관으로 이런 요구를 하곤 한다.

관리적인 측면에서도 문제가 생긴다. 관리자와 개발자의 차이를 구분하지 못하고 고참 개발자는 무조건 관리를 해야 하는 것으로 생각한다. 전문 개발자는 30년이 지나도 관리는 전혀하지 않고 개발만 하는 것이다. 그러나 이렇게 개발 경력이 보장이 되는 소프트웨어 회사를 우리나라에서 찾는 것은 그렇게 쉬운 일이 아니다. 아무리 개발이 하고 싶고 관리는 적성에 맞지 않아도 우리나라에서 개발을 하는 이상 관리 업무에 대한 압박은 떠나지를 않는다.

또한 합리적인 관리를 할 수 없으니 무조건 일정을 쪼는 일 밖에는 하지를 않는다. 그러다 보면 아키텍쳐는 형편 없어지고 개발 문화는 뒤쳐질 수 밖에 없다.

몇몇 경영자는 이러한 현상이 개발자들이 제대로 못해서 그렇다라고 핑계를 댈 수는 있다. 닭이 먼저냐 달걀이 먼저냐의 이슈 같아 보이지만 강자인 경영자가 바뀌는 것이 우선이다.

이러한 문제점의 고리를 끊을 수 있는 사람은 개발자가 아니라 경영자이다.
문제의 핵심도 경영자이고 이를 해결할 수 있고 해결 해야 하는 사람도 경영자이다.

2013년 6월 3일 월요일

SRS를 개발 후에 연습하는 차원으로 적어보면 도움이 되지 않을까?

소프트웨어를 개발하는데 있어서 가장 어렵고도 중요한 것은 SRS(Software Requirements Specification) 즉, 스펙을 잘 작성하는 것이다. 

그럼 SRS 작성법을 배우고 싶은데 어떻게 해야 할까?
남이 작성한 SRS를 보면 도움이 될까? 
가상으로 한번 써보면 도움이 될까? 
케이스별로 얼마나 도움이 될지 알아보자.

1%

스펙을 작성하는 방법을 배우기 위해서 남이 작성한 SRS를 보는 것은 얼마나 도움이 될까?
1%정도 밖에 도움이 안된다.
남이 치는 피아노, 골프를 보고 얼마나 도움이 될지 생각해보면 된다. 작성한 SRS의 내용이 그러게 도출되는 과정을 겪지 않고 결과만 보는 것은 1%밖에 보이지 않는다.

10%

그럼 실제 프로젝트에 적용하기는 어려우니 가상의 프로젝트를 생각해서 작성하면 어떻게 될까? 10% 정도는 도움이 될 수 있다. SRS에 포함된 수많은 내용 중에는 실제 상황이 아니면 도저히 생각해 낼 수 없는 부분들이 많다. 이런 부분은 가상의 프로젝트에서는 배우기 어렵다.

30%

이미 끝난 프로젝트의 SRS를 적어보는 것은 어떨까? 나중에 혹시 유지보수에 도움이 되지 않을까? 별 도움이 되지 않는다. 
SRS는 원래 개발하기 전에 개발을 빠르게 하기 위해서 적는 것이다. 이미 종료된 프로젝트라면 적을 수 없는 부분이 많다. 또한 꼼꼼하게 적지도 않게 된다. 미리 적는 SRS처럼은 절대로 적을 수가 없다.
이미 코딩까지 끝났기 때문에 창의적인 생각이 필요한 Interface 등은 제대로 적기 어렵다. 현재 상태를 Reverse Engineering으로 적는다고 해도 깨끗하게 적을 수 없을 뿐더러 뒤죽박죽이라서 적어봐야 아무 의미 없는 경우가 대부분이다. 또는 SRS를 작성하면서 필요한 커뮤니케이션 스킬, 분석 능력, 인터뷰 능력 등은 전혀 익힐 수가 없다. 이러한 것을 빼고 내용만 일부 Dump하는 것은 Template을 익히는 것밖에 기대하기 어렵다.

100%

SRS 작성하는 법, 스펙을 작성하는 법, 요구사항을 분석하는 법을 제대로 배우려면 크던, 작던 실제 프로젝트에서 SRS를 적어봐야 한다. 어떠한 프로젝트도 SRS의 모든 챕터를 다 커버하는 것은 없다. 따라서 하나의 프로젝트에서의 경험은 상당히 제한적이다. 오랜 기간동안 여러 프로젝트의 SRS를 작성해봐야 배울 수 있다.

따라서 일단 실제 프로젝트에서 작성해보는 것이 가장 좋은 방법이다. 물론 피아노를 코치없이 배울 수 없듯이 경험이 많은 선배나 전문가의 도움을 받는 것은 꼭 필요하다.