태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

프로젝트 산출물을 프로젝트 종료 후에 만들고 있나요?

2008/11/03 11:16 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed



프로젝트 산출물을 프로젝트 종료 후에 만들고 있나요?


프로젝트가 끝난 후에 산출물을 만드는 일은 SI회사나 용역으로 일을 하고 있는 회사에서 종종 보게 됩니다. , 자사 Solution이나 Product 만드는 회사에서도 이런 일들이 벌어지곤 하죠.

이런 회사에서 그렇게밖에 없는 이유에 대해서 다음과 같이 말을 하곤 합니다.


  • 우린 프로젝트 일정이 너무 짧아서 프로젝트 기간에는 산출물을 만들 시간이 없어요.
  • 어차피 산출물은 프로젝트에  도움이 안돼요.
  • 우리도 시간만 충분히 있으면 산출물을  만들  있어요.
  • 고객이 나중에 요구사항을 바꾸기 때문에 산출물을  만들어 놓아도  바꿔야 해요. 코드만 바꾸기도 벅찬데 언제 산출물을 바꿔요.
  • 산출물이란 프로젝트가 끝나고  이상 바뀔게 없을  한꺼번에 만드는 것이 제일 효율적이예요.
  • 문서를 너무 많이 만들어야 해요.


여러분도  이유에 고개가 끄덕여지시나요?

그렇다면 여러분도  동안의 소프트웨어 개발 관행에 익숙해져 있는 것이고, 제대로  소프트웨어 개발방법을 익힐 기회를 접한 적이 없었을 겁니다.

위에서 언급한 각 이유(핑계) 대해서 설명을 해보죠.


  • 우린 프로젝트 일정이 너무 짧아서 프로젝트 기간에는 산출물을 만들 시간이 없어요.
    • 거의 모든 프로젝트는 일정이 넉넉하게 주어지지 않습니다. 따라서 프로젝트 일정이 짧다는 것은 이유가 되지 않습니다.
    • 일정이 짧다는 것은 상대적인 것으로 기존에 개발하던 방식으로 개발을 생각을 하니 기간이 짧다고 수도 있습니다.
    • 소프트웨어 공학이라는 것은 짧은 시간에 적은 비용으로 소프트웨어를 개발하기 위한 것이 목적입니다.
    • 소프트웨어 공학은 기계적으로 적용해서는 안되고, 일정이 절대적으로 짧다면 그에 따라서 효율적으로 적용하여 일정을 단축할 있도록 해야 합니다.
  • 어차피 산출물은 프로젝트에 도움이 안돼요.
    • 가장 안좋은 이유입니다.
    • 프로젝트 팀원간 또는 관련자들과의 커뮤니케이션은 문서(산출물) 하는 입니다. 문서는 종이로 되어 있을 있고, DB 저장되어 있어서 Web 통해서 수도 있을 겁니다. 그런데 문서가 아닌 구두로 대부분의 커뮤니케이션을 하고 있다면 휘발성인 말들이 사라져 버려서 대단히 비효율적으로 프로젝트를 진행하고 있는 겁니다.
  • 우리도 시간만 충분히 있으면 산출물을 만들 있어요.
    • 이는 대단한 착각입니다.
    • 산출물을 제대로 만들었다면 산출물을 보고 멀리 떨어져 있는 사람이라도 설계도 하고 구현도 있어야 합니다. 하지만 대부분 정도 수준의 산출물을 만들어 없죠. 이는 시간이 없어서 산출물을 만든다는 핑계로 자신을 방어하는 것입니다.
    • 문서를 제대로 만들어본 적도 없이 어느날 갑자기 잘만들어 낼 수는 없습니다. 이는 제대로 된 교육과 훈련이 필요합니다.
  • 고객이 나중에 요구사항을 바꾸기 때문에 산출물을 만들어 놓아도 바꿔야 해요. 코드만 바꾸기도 벅찬데 언제 산출물을 바꿔요.
    • 세상의 모든 고객은 요구사항을 자꾸 바꾸려고 합니다. 고객은 소프트웨어 프로젝트에서 요구사항을 바꾸는 것이 얼마나 일인지를 모릅니다.
    • 초기의 요구사항 분석이 충실하지 않을 경우 고객은 뒤늦게 요구사항을 바꾸려고 합니다.
    • 고객이 요구사항을 바꾼다는 이유 뒤에 숨지 말고 고객이 요구사항 변경 요청을 최소화 하기 위해서 요구사항 분석에 최선을 다해야 합니다. 요구사항 분석에 대해서는 나중에 다시 언급하기로 하죠. 요구사항 분석이 끝나면 가능하면 산출물에 고객의 서명을 받는 것이 좋습니다. 설령 서명을 하지 않더라도 서명의 압박을 가하는 것이 좋고 산출물을 고객이 충분히 이해하도록 해야 합니다. 고객이 이해하기 어렵다면 UI 프로토타입을 만들어서 고객이 이해할 있도록 해야 합니다.
    • 요구사항 변경에 따른 파급효과를 고객에게 충분히 설명해야 합니다. 그럼에도 불구하고 막무가내로 요구하는 고객도 있지만 별로 중요하지 않은 기능의 변경으로 프로젝트에 타격이 경우 고객이 요구사항 변경을 포기하는 경우도 많습니다.
  • 산출물이란 프로젝트가 끝나고 이상 바뀔게 없을 한꺼번에 만드는 것이 제일 효율적이예요.
    • 산출물을 너무 많이 만들기 때문에 이런 일이 발생합니다.
    • 산출물이란 주로 프로젝트를 진행하기 위해서 필요한 것인데, 끝나고 만들면 기껏 유지보수를 위한 정보밖에 되지 않습니다.
    • 위에서 언급한 것과 같이 변경을 최소화하기 위해서 노력을 해야 하고, 중복된 산출물은 가급적 없어야 합니다.
    • 그리고 변경에 따른 산출물의 변경도 최소화를 해야 합니다.
  • 문서를 너무 많이 만들어야 해요.
    • 고객이 많은 산출물을 요구하는 경우라면 어쩔 수가 없습니다. 가능하면 불필요한 산출물을 없애도록 고객을 설득하는 것이 좋습니다. 그래도 만들어야 하는 불필요한 산출물에는 노력을 들여서는 안됩니다. 이런 산출물들이야 말고 프로젝트 끝나고 기계적으로 만들어도 됩니다.
    • 자체 프로젝트를 진행하는 경우라면 프로젝트 성격에 따라 다르겠지만, 산출물의 개수는 최소화 해야 합니다. 그래야 중복이 없어지고, 최신 버전으로 업데이트가 가능해지고, 커뮤니케이션 도구가 됩니다.
    • 문서를 잔뜩 만들어 놓으면 정보가 어디에 있는지 수가 없어서 백과사전처럼 되고 맙니다. 어딘가에는 정보가 있지만 찾기가 어려워서 찾기를 포기할 수도 있습니다.
    • 필요한 개의 문서만 만들어야 합니다.


물론 위에서 언급한 상황이 아닌 다른 진짜 이유도 있을 수 있습니다. 그 모든 상황에 대해서 위와 같이 주장하는 것은 아니고 일반적인 경우를 설명하는 것입니다.


우리 주변에는 수많은 소프트웨어 개발 방법론이 있고 이를 기계적으로 따르다 보니 효율적으로 적용을 하지 못하고 너무 많은 문서을 만들고 프로세스를 따르는 것을 종종 보게 됩니다. 이는 방법론에 대한 오해에서 비롯된 것입니다. 프로젝트의 규모에 알맞게 방법론을 선택해야하고 꼭 필요한 문서만 만들고 절차도 간소화 할 수 있습니다. 어떤 것은 꼭 해야 하고 어느 것은 생략할 수 있는지가 어려운 문제이기는 합니다. 이를 알려면 좀더 많은 경험이 필요하겠지요.


image by Microsoft Office Online

저작자 표시

전규현 소프트웨어이야기

Trackback Address: http://allofsoftware.net/trackback/4 관련글 쓰기
  1. 2008/11/06 00:03
    프로젝트 산출물을 프로젝트 종료후에 만들고 있나요? Tracked from 멀고 가까움이 다르기 때문
  2. 2008/11/06 14:11
  1. 좋은 글 이군요.

  2. 영회님 안녕하세요.
    이 글을 진지하게 읽으셨다면 소프트웨어 개발에 대한 경험이 매우 많으시고 내공이 높으신가 보네요. 앞으로 좋은 정보와 의견 많이 나누기를 기대합니다.
    감사합니다.

  3. Blog Icon
    event

    실제로 경험을 하셔서 위와 같은 글을 쓰시게 된 것인가요.
    만약, 그렇다면 정말로 대단하십니다.
    너무도 좋은 내용입니다.
    하나만, 제 생각을 적고 싶습니다.
    고객이 이해하기 어렵다면 UI 프로토타입을 만들어서 고객이 이해할 수 있도록 해야 합니다. --> 이것 인데요. UI 프로토타입이 아니라 실제로 사용할 UI을 만들어야 할 것 같습니다.
    왜냐하면 프로토타입을 보고 사용자가 결정하기 어렵기 때문이며,
    이는 요구사항을 변경하는 근원이 됩니다.
    따라서, 시간이 걸리더라도 완전한 UI(줄 하나까지 신경쓴)를 만들어서 사용자에게 확정을 받아야 할 것으로 생각됩니다.
    이렇게 함으로써 프로젝트 일정을 관리할 수 있으며, 개발자가 고생을 하지 않습니다.
    개발자의 고생이란, 한번은 어쩔 수 해야 하므로 고생의 범주가 아니며 두 번, 세 번 고치는 것이 고생이라고 할 수 있습니다.
    좋은 글에 뎃글을 단 것같아 죄송하다는 생각이 듭니다만,
    그래도 글이 너무 좋아 뎃글을 달아 보았습니다.

  4. event님 반갑습니다.
    의견 감사합니다. 죄송하다는 생각이 든다고 하시면 제가 민망하네요. 의견과 토론은 언제든지 환영합니다.
    제 글들은 경험을 통해서 작서된 것이라고 말씀드릴 수 있습니다. 제가 하는 일이 소프트웨어 개발 컨설팅이고 문서 작성은 그 중에서 중요한 한 부분입니다.
    프로젝트의 종류는 셀 수가 없어서 고작 한페이지 밖에 안되는 설명으로 모든 프로젝트를 아우를 수는 없을 것입니다.
    좋은 지적을 해 주셨듯이, UI 프로토타입을 실제 사용할 UI로 만드는 경우도 많이 있죠. 특히 Web환경인 경우는 큰 비용을 들이지 않고도 고객이 사용하게 될 최종 화면을 다 보여주지만 실제로 내부 동작만 하지 않을 뿐 고객은 실제 환경과 비슷하게 체험을 해볼 수 있도록 할 수 있죠. 이런 경우라면 UI프로토타입이 실제 UI와 정말 비슷한 경우라고 생각합니다.
    또 다른 형태의 Software는 쉽게 UI를 보여주기 어려운 경우는 Mock-up을 만들어서 보여주기도 합니다.
    이런 것을 의논하다 보면 고객의 전문성, 고질적인 갑/을 관계 등등에 대해서 얘기를 하지 않을 수가 없는데, 그러한 내용들은 나중에 얘기를 해보죠.
    의견을 달아주셔서 다시 한번 감사드립니다.

  5. 좋은 내용 감사합니다.
    기존의 프로세스 담당자들은 필요한 산출물이 누구를 위한 것이라는 것을 작성자(개발자, PL)들에게 이해를 시키기노력이 부족했다고 생각합니다.(저희 회사에서는요..^^)
    저는 Agile과 CMMI같은UP를 접목하는 것에 대해서 정리 중입니다. "사람을 위한 자동화"와 같은 "사람을 위한 Prcess"를 목표?하고 있다고 할까요? 정리가 조금씩 되면 트랙백을 통해서 의견드리겠습니다. 좋은 글 감사합니다.

  6. 정의의소님 안녕하세요.
    현재 일반적인 상황을 보면 개발자들이 제대로된 산출물을 만들어낼 능력이 부족한 경우가 많습니다.
    그래서 기본이 부족하니 Agile이나 CMMI는 머나먼 얘기가 되지요. 기초가 없는 상태에서 Agile이나 CMMI는 자칫 형식으로 흐르거나 알맹이가 부족하게 되는 것 같습니다.
    제 블로그에서 앞으로 자동화, 프로세스, 문화 등 여러가지 것들을 다룰려고 하니 많은 정보 교류 기대합니다.
    감사합니다.

  7. 개발에 따른 제대로 된 산출물들이 나와야한다는 말에는 아주 많이 공감을 합니다..
    생각해보니 Ray님이 말씀하신 모든 이유를 나열하며 산출물에 대한 문서 작업은 거의 하지 않고 있더군요.. -_-;;
    개발에 필요한 시간이 빠듯하다는 이유로 마구잡이로 개발을 해왔던 사실이 조금 부끄럽습니다..ㅠㅠ
    회사내에서 항상 체계적인 룰을 만드려고 시도할때마다 항상 이런 이유로 중단이 되었었거든요..

    블로그의 글을 둘러보니, 좋은 내용이 많아서 좋으네요~
    앞으로도 좋은 글 기대하겠습니다.. ^^

  8. kkommy님 반가와요.
    그러면서도 항상 과도한 프로세스와 산출물은 주의를 해야 합니다. 과유불급이라고 하죠. 중요한 것부터 하나씩 해나가는 것이 좋겠습니다.

관리자가 이런 일까지?

우리나라 SW 조직에서 관리자란 위치는 참 애매한 위치다. 물론 전문 관리자라면 얘기가 다르지만 왕년에 SW를 조금 개발해 본 경우가 애매하다. 개발팀에서 가장 경험이 많은 SW 개발자들이 주로 팀장이 되곤 한다. 이 경우와..

과거의 성공이 발목을 잡을 때

수많은 소프트웨어 회사들이 첫번째 성공을 거두고 나서 두번째 도약에 실패하고 사라져간다. 물론 첫번째 성공도 어렵지만 이미 성공의 경험이 있고 방법을 알고 있는 회사들이 두번째 또는 세번째에는 많이 실패하는 이유가 무엇일까?..

스펙을 제대로 작성하는 것은 구식이다?

'소프트웨어 개발 방법이 얼마나 발전했는데 아직도 스펙을 제대로 작성하고 개발을 하는가?' 라고 하면서 스펙 작성에 반대하는 주장을 하는 사람들이 있다. 스펙, 설계를 작성하고 구현을 하고 테스트를 하는 방식으로 개발하는 것..

내가 개발에 집중할 수 없는 이유

우리나라에서는 개발자들이 개발에 집중할 수 없는 환경인 곳이 참 많다. 정도의 차이가 있지만 거의 대부분이라고 봐도 무방하다. 그 결정적인 이유는 개발자 혼자서 북치고 장구치고 다해야 하는 상황이기 때문이다. 원래는 이렇게..

설계가 필요할까?

최근에 Software Architect의 정체에 대해서 혼란을 겪고 있는 것 만큼 Software 설계에 대해서도 혼동스러운 것은 마찬가지인 것 같다. 그래서 설계에 대해서도 깔끔하게 정의를 해보자. 흔히 설계에 관한 다음..

Software Architect를 양성하는 나라

우리나라에서는 종종 SW Architect를 양성한다고 한다. 정부에서 막대한 예산이 지원도 되며 SW Architect를 양성하는 학원도 생기고 야단법석이다. 그럼 도대체 SW Architect는 무엇인가? SW Archi..

우리에게 지금 필요한 것은? 바로 이것

우리나라 대부분의 소프트웨어 회사들에게 가장 시급하게 필요한 것은 "기초 체력"이다. 히딩크가 우리나라 국가대표 축구팀을 처음 맞았을 때 강조한 것이 기초 체력이었다. 그전까지 우리는 국가대표 축구팀이 체력은 세계 어디를 내..

프로토타입을 재활용하면 될까? 안될까?

며칠 전 프로토타입에 관해 올린 글에 대해서 프로토타입 재사용에 대해서 여러 의견이 있어서 이 내용에 대해서 조금더 설명해보려고 한다. 2011/11/03 - [프로젝트/요구사항분석] - 프로토타입이란? 소프트웨어공학의 목적..

프로토타입이란?

프로토타입 (경제/경영) 양산(量産)에 앞서 제작해보는 원형(原型)을 '프로토타입'이라 하는데, 프로토타이핑이란 개발자들과 사용자들의 의사소통상의 효과를 증진시키기 위하여 취하는 시스템개발상의 기법이다. 일반적인 분석방법을..

같이 일하려면 적어라.

"협업은 말로 하는 것이 아니라 문서로 하는 것이다." 동서고금을 막론하고 개발자들은 적는 것을 싫어하고 또 잘 적지 못한다. 우리나라 개발자들은 그 정도가 훨씬 심하다. 우리나라에서는 회사가 크던 작던 상관없이 대부분 5년..