학부 프로젝트 관리

병무청 교육(…) 받으러 탔던 지하철에서 Rica와 대화하다가 나왔던 내용을 정리한 것.

학부 졸업한지 2년도 더 지나서 확실성은 약간 떨어질지 모르겠지만, r모군이 나온 모 대학교 컴퓨터 공학부의 경우 졸업하기 위해서는 4학년 과목으로 지정된 프로젝트 1 혹은 프로젝트 2를 이수해야하는데, 두 과목의 내용은 완전히 동일하다 – 학부 때의 기억으로는 프로젝트 2가 있었던 이유는 아직 졸업안한 9x학번 때문이었던 것 같다.

프로젝트 수업 (1, 2가 같으니 통틀어서 이렇게 부른다) 첫 시간 정도에는 팀을 짜라고하고, 이 팀을 가지고 주제 목록을 보고 주제를 정하는데, 이 주제 목록은 그 학기에 협동과정으로 각 기업들이 내놓은 과제로 되어 있다.

내가 들었었던 2번의 수업의 경우엔,

  • 삼성전자 메카트로닉스 센터에서 내놓은 제어용 언어의 syntax/symantec checker + editor
  • 역시 같은 곳에서 내놓은 특정 장비의 시뮬레이션
  • …말고도 몇 개가 더 있었지만 기억 안나고
  • LG전자 DTV 연구소에서 내놓은 TV 전파 수신 -> AV 인코딩 -> wireless network으로 전송 -> 반대쪽에서 다시 재생하는 것
  • LG전자 휴대폰 위에서 도는 게임 제작 / 뭔가 휴대폰 위에서 도는 것 제작(뭔지 기억이 -_-;; )
  • 인프니스에서 내놓은 DICOM (의료용 이미지 포맷) 뷰어 제작
  • 모 네트웍 장비업체에서 내놓은 P2P 필터링
  • 현대 자동차자회사에서 내놓은 embeded H/W 기반 네트웍 제어
  • …하드웨어 프로젝트도 있고 그런데 기억 안난다.

뭐 이런 류의 과제들이 나왔었다.

대략 1학기 때에는 첫 줄의 물건을 만들었는데 형민군, 은상군이랑 학기 내내 작업하고도 시간이 모자라서 기말 끝나고 2주 가까이 크런치 모드로 있었던 기억이 난다. 2학기 때에 했던 LG전자의 Remote TV프로젝트는 조원 수를 하나 늘리고(…) 일명 괴물조를 짜서 적절한 부하로 끝냈었다.

문제는 이런 프로젝트 수업을 듣는 각 조의 일하는 패턴이 각각 엄청나게 달랐고 – 성취도는 더더욱 -_-; – 중간 평가가 잘 이루어지지 않았다. (진행되다 만 중간 결과물과 프리젠테이션만으로 이루어졌으니)
그런 결과, 1학기 프로젝트 때 에디터 만드는 팀이랑 같이 일을 했어야 했는데, 학기말이 될 때까지 그 팀의 진행률은 10%를 넘어서지 못해서 우리가 시연용 에디터를 따로 만들어야 했다. 아마 그 학기 팀 구성이 좋지 않았으면 피 봤을걸?
그래서 오늘 Rica와 대화하다가 나온 것은, 학부 숙제 서버나 기타 서버군에 Trac+svn을 설치해주고, 이 것의 사용을 강제하고 – 적어도 SW 프로젝트들은 가능하다 – Trac wiki/svn repository를 사용한 프로젝트 진행 보고를 강제하게하는 것이다. 그러면 중간 평가 때 – 그리고 최종 평가 때도 – 진행 상황을 거의 명확하게 파악할 수 있고, 각 구성원 별 작업 분담도 눈에 보이게 될 것이다.


그리고 이런 툴들의 사용을 강제하려면 사용법을 약간은 알아야하니, 사실상 버리는 시간인 학기초 한 번 혹은 두 번의 수업을(실습 과목으로 계산되서강의시간은 4시간 잡혀있으니 넉넉하다) 사용하면 그만이다.

문제는 이런 것들을 관리할 조교의 역할인데, 학부 서버 관리자 그룹에 맡긴다거나, 조교 수를 좀 적절하게 늘려서 – 프로젝트 1, 2수업을 조교 한 명이 커버하거나 했었는데 이 정도를 하려면 1명은 모자라겠지 – 처리하면 될 것 같다. 사실 저런 툴들을 가르쳐주는 과목이 하나도 없는데 – 예외적으로 고건 교수님의 일부 수업(지금은 과목명을 모르겠다)에서는 cvs/shell/unix utility 같은 기본적인 유틸리티 사용법들을 가르쳐주긴 했다 – 소스 컨트롤과 기본적인 연장 (실용주의 프로그래머; Pragmatic Programmers에서 엄청 강조하는 내용이다)은 다룰 수 있어야하지 않을까 -_-;

지금은 학사 병특을 하고 있는 후배 b모군의 경우 이번에 새로 들어온 사람이 소스컨트롤(그 회사가 svn+trac을 쓰고 있던걸로)도 제대로 못 쓴다고 불평하더라. 또 다른 학사 병특 s모군의 경우엔 아예 자기가 입사할 때까지 소스컨트롤이 뭐에효? 모드였다고도 하지만 이건 뭐 막장도 아니고(….).뭐 이미 중견 기업이라고 할 수 있는 G모사의 경우에도 아예 versioning의 개념이 없다는 사실을 지인을 통해 알게 되었지만.(당연히 소스 컨트롤 / 브랜칭 이런 개념도 없다 ㄳ(?))

이미 학교를 떠난 몸이지만 – 사실상 대학원 생때만해도 반쯤 떠난 몸에 가깝지 – 소스 관리 툴, daily/nightly build, TDD같은 견실한 관리 체제를 학부생 때 어느 정도는 익혔으면 한다. 그런 의미에서 svn/trac/각종 유틸리티 사용이 당연시 되어있고, 그런 툴을 익히게 해주고 여러 방법론도 접해보는 UPnL에서의 생활은 정말 배울 것이 많다.

† 실명이 거론되지 않은 사람이 누구인지 혹은 어느 회사인지 추정하는건 개인의 자유지만, 여기에 댓글로 남기거나 나한테 물어보진 말아주시길

Jinuk Kim
Jinuk Kim

SW Engineer / gamer / bookworm / atheist / feminist

Articles: 935

7 Comments

  1. 지난 달인가 지지난 달인가? 마이크로소프트웨어에 svn + wiki 사용에 대한 기사가 있었던 것이 기억나네요. 역사 논문과 함께 국립 중앙도서관에 복사 신청을 해서, 편하게 받아보고 있는 중이랍니다. :D

  2. 저도 모 프로젝트(?) 덕분에 버전 관리 쪽을 제대로 익힌 것 같습니다.

    그나저나 군주님 대학교는 참 후덜덜하네효 ^^;;;;

  3. Dish / …

    고어핀드 / 복사 신청이라…는 둘째치고 도서관 가기가 너무 귀찮아서 지르는 중(…)

    Azyu / …총수님 본인이 더 후덜덜

    비오 / 많은 도움…까진 아닐 것 같지만 사실 저런거 모르면 자기 자신이 피곤해;
    그 뭐랄까 학부 수업 중에 유일하게 실제 개발이랑 맞물려있는 과목인데 이런 것도 안 알려주고 – 평가도 안하고 (…) – 하는게 좀 가슴아프달까 -_-;

  4. 비공식적이지만, svn+trac을 모든 학부 프로젝트에서 쉽게 쓸 수 있도록 하기 위해 노력하고 있습니다.

  5. 내 포스팅을 재확인해보면 알 수 있겠지만, 내가 생각하는 방향은

    *프로젝트 수업에서 공식적으로 소스 컨트롤 / 문서 시스템을 채용하고”,
    “이를 기반으로 중간/최종 평가에 반영하고”,
    “수강생들은 이에 대한 지식을 습득하고 / 프로젝트 과제 진행의 효율을 올려보자”

    다(…)

    바쿠스에서 공식적으로 svn+trac같은 툴을 제공해주면 프로젝트 수업 담당 교수들한테 메일만 잘 써도 그러자고 할 거 같은데;

Leave a Reply