하위 페이지
  • 소프트웨어 공학 세번째 수업 - 요구사항 분석
메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동
오늘은 우리가 만들려고 하는 humhum 프로젝트에 대한 요구사항을 분석하는 과정을 가졌다. 수업 이야기를 하기 전에 지난 한 주 동안 있었던 일들에 대해 먼저 공유하고 수업 이야기를 해봐야겠다.
위 Trello 진행 상황을 보면 지난 한 주에도 참 많은 일이 있었다.
  • 서버에 Ruby on Rails 환경을 세팅하고 있다. RoR 설치, MySQL 설치 등 학생들 주도로 진행하고 있다.
  • 지난 주 수업 시간에 약속한 대로 월요일날 RoR에 대한 스터디를 진행했다. 100페이지까지 하자는 의견이 있어 진행했는데 다들 힘들다는 것을 느꼈을 것이다. 다음 주는 좀 더 작은 분량으로 진행하기로 했다.
  • 소프트웨어 공학 수업에 새로운 학생이 한 명 참여하게 되었다. 3명에서 4명으로 늘었다.

지난 수업 시간에 앞으로 진행할 프로젝트에 대한 개발 프로세스를 결정했다. 개발 프로세스는 애자일 프로세스 중의 하나인 스크럼을 기반으로 진행하기로 결정했다고 했다. 그런데 학생 중의 한명이 애자일 프로세스와 스크럼 프로세스에 대해 정리한 후 현재 프로젝트를 진행하는 팀과 소프트웨어 공학 학생들에게 공유했다.

이렇게 자발적으로 스터디를 하고 스터디한 내용을 다른 친구들에게 공유하는 친구를 보니 감동을 받지 않을 수 없었다. 역시 동기 부여가 되어 있는 상태의 학생이라면 선생이 많은 것을 가르쳐줄 필요없이 방향만 잘 잡아주면 되겠다는 것을 느끼게 했다.

오늘 한 친구가 지각을 했다. 그래서 이 친구가 오기 전까지 스터디 방식과 문서 관리 도구에 대한 결정을 했다. 스터디는 주도하는 사람이 없으니 제대로 진행되지 않을 수 있다는 생각이 들어 매 주마다 스터디를 주도하는 사람을 정하기로 했다. 다음 주 스터디 주도는 당연하게도 지각해서 그 자리에 없던 친구가 진행하는 것으로 결정했다. 원래 그런거 아닌가? 무엇인가 결정할 때 그 사람이 없으면 그 사람이 담당하는 것... 참 좋은 방식인 듯하다. 지각에 대한 약간의 페널티도 있고...

문서 관리 도구는 Google Docs와 Wiki 중에서 무엇을 사용할 것인지 논의한 후에 Google Docs를 기본으로 사용하고 부수적으로 Wiki를 사용하는 것으로 결정했다. 기존에 많이 사용하던 Word는 PowerPoint 위주의 문서 작성 방식에 대한 문제점을 공유하고 변경이 가능성이 많은 내용은 온라인 문서 도구를 주로 사용하는 것으로 결정했다.

문서 관리 도구 사용과 관련해 수업 중 공유한 내 생각은 http://javajigi.tistory.com/101http://javajigi.tistory.com/103 글에 담겨 있다. 스터디와 문서 관리 도구를 선정하고 나고 본격적으로 humhum 프로젝트에 대한 요구사항을 분석하는 과정을 거쳤다.

먼저 humhum 서비스를 사용하는 사용자를 제작자와 일반 사용자로 나누고 각각의 관점으로 서비스의 모습을 분석하기 시작했다. humhum 서비스에 대한 요구사항을 분석해 가는 과정이다.

컨텐츠 제작자와 일반 사용자를 칠판 양쪽 끝에다 적어 놓고 뭘 해야 좋을지 모르고 있다. 지금까지 이런 걸 해 본적이 있어야지. 한참을 뭘 해야 좋을지 막막하게 서 있더니 조금씩 이야기를 시작하면서 흐름도를 그려 나간다.

아이디어를 내는 친구가 있고, 흐름도를 좀 더 명확히 하기 위해 그 친구들의 의견을 따라가면서 정리하는 친구도 있다. 서로의 역할을 나눠서 하나씩 완성해 간다.

아직 완벽하지는 않지만 서로의 의견을 공유하는 방식을 배우고, 서비스에 대한 이해도를 높이는 시간을 가질 수 있었다. 수업 시간이 2시간이기 때문에 이 시간에 모든 요구사항을 분석할 수는 없는 것이기 때문에 수업 외 시간에도 모여 요구사항을 정리하고 대략적인 feature list를 정리해 오는 것으로 수업을 마무리 했다.

수업이 끝났음에도 불구하고 토론은 계속 진행되고 있다.

내가 이 수업을 하면서 가장 힘든 점이라면 하고 싶은 말이 많은데 최대한 말을 아껴야 한다는 것이다. 괜시리 나의 한마디로 인해 학생들의 다양한 의견을 해칠 수 있기 때문이다. 어떻게 보면 아무 것도 하지 않으면서 놀고 먹는 교수님이라 생각할 수 있겠지만 그 또한 쉽지 않은 것이라는 것을 느낀다. 하지만 내가 학생들에게 전해주고 싶은 것은 많은 지식도 있지만 그 보다는 소프트웨어 개발할 때의 경험을 전해주고 싶다. 협업을 어떤 방식으로 진행하는 것이 좋을 것인지, 요구사항을 어떻게 진행하는 것이 좋을지에 대해 스스로 경험하면서 몸으로 체득할 수 있기를 바란다. 그것이 정말 소프트웨어 공학을 제대로 이해할 수 있는 지름길이라 생각한다.

동기 부여가 된 학생들은 내가 무엇을 하라고 하지 않아도 스스로 찾아서 한다. 이번 주에 스터디를 진행해보니 본인들이 부족하다는 것을 느끼고 주말에 자기들끼리 모여서 스터디를 한번 더 하기로 결정했단다. 이런 적극적이고 자기 주도적인 학생들과 같이할 수 있는데 내가 즐겁지 않겠는가?