프로젝트 진행 관련에 대한 궁금증입니다.

ki1021의 이미지

현재 교수님 주관하에 프로젝트를 진행중인데요. 선배들이 하던 걸 이어받아 하고 있습니다.
프로젝트 내용은 요구사항에 맞게 안드로이드 어플을 만드는 것입니다.

요구사항을 주는 곳은 다른 학과이고, 저희는 그들의 요구사항에 맞게 만들어주고 있습니다.
그런데 이 요구사항이 한번에 상세하게 정해서 주면 좋은데 계속 바뀌기도 하거니와
뭉텅그려서 줘놓고는 거기에 덧붙이는 식으로(즉 즉흥적으로) 줄 때도 있습니다.

이러다보니 소스가 스파게티식으로 되다보니 인수인계 받을 때 정말 힘들더라구요.

그래서 소스를 후에도 유지보수를 하기 쉽게 하려고 패키지 별로 나누려고 하는데 조원이나
선배가 나중에 요구사항이 내려와서 또 작업을 시작하면 꼬일게 분명한데 뭐하러하냐는 반응이라
고민이 되네요...

위와 같이 요구사항이 엉성하게 내려와 덧붙이는 식일 때 패키지로 나누어 관리하는 건 손해일까요?
그리고 변수명이나 클래스, 메소드 등의 작명법을 정하고 즉 하나의 표준 정의서를 만드는 건 학부생
수준에서 하기엔 너무 많이 나가는 걸까요?

소스는 다 만들고 나면 만줄정도 될 것 같습니다.

snowall의 이미지

그 다른 학과가 기획자로서의 기본이 안되어 있네요.

유지보수를 쉽게 개선하고 표준정의서 만들고 하는 작업은 필요합니다. 학부생이라고 하면 안될 이유나, 하는게 낭비일 이유는 없겠죠.

그보다, 요구사항이 바뀌면 상세한 기획서나 명세서를 요구하고, 불분명한 기획에는 개발 못한다고 하셔야 할 것 같네요. 아님 제가 아는 누군가처럼 정확히 '적시되어 있는' 내용만 최소한으로 개발하고 개발 끝났다고 우기는 테러를 감행해야겠지만 이건 서로 기분만 상하고 프로젝트에는 도움이 안되겠죠.

교수님께도 상의해 보시는게 좋을 것 같군요. 교수님께서 시큰둥하시면 별 수 없습니다. 교수님을 설득하세요.

피할 수 있을때 즐겨라! http://melotopia.net/b

ki1021의 이미지

제가 프로젝트에 참여하는게 처음이라 원래 요구사항을 그렇게 주는게 당연하다고
생각했는데 문제가 있긴 한거였군요. 일단 교수님에게 건의는 드려봐야겠습니다.

제가 생각하고 있는 표준화는 일단 변수, 메소드, 클래스의 작명법과 클래스와
메소드의 정의법(즉 어느 범위를 클래스로 사용하고 어떤 작업과 기능을 메소드와
시킬 것인가), 그리고 현재 스파게티 소스를 분해 및 분석하여 패키지에 넣어두는
것 정도인데요.

혹시 조언해주실 점 있으신가요?

snowall의 이미지

혼자 하든 팀으로 하든, 참여하는 개발자 전원이 공유할 수 있는 이야기가 필요하죠. 말씀하신대로 작명법, 정의법에 관한 명세가 있어야겠죠. 변수, 메소드, 클래스가 뭘 하는지, 어느 수준까지 분리하고 쪼개는지는 개발 팀 나름의 기준이 있으므로 굳이 제가 말할 필요는 없겠습니다.

기획팀에서 불분명한 기획이 오면, 바로 개발에 들어가지 말고 개발자 나름대로 명료하고 상세하게 정리해서 '이렇게 하라는거 맞냐?'라고 되물어 보는게 좋습니다. 개발에 시간이 더 걸리더라도 나중에 삽질을 덜하게 됩니다. 그러다 보면 기획자들이 귀찮아서라도 좀 더 명확하게 주겠죠. 알아서 잘 해주지 자꾸 왜 물어보냐고 짜증내면, 개발해준거 절대로 뒤엎지 않을 자신 있으면 해준다고 하세요. 나중에 엎으려고 하면 녹음한거 틀어주시면 됩니다.

그리고 명세서가 위의 과정을 거쳐서 어느정도 명확해지면, 일정과 비용을 이야기합니다. 교수님이 해온 거라고 하시니 비용은 뭐 상관 없겠지만, 일정이 중요합니다. 어느 부분 개발에 며칠, 어느 부분 개발에 며칠, 그렇게 해서 최종적으로 몇월 몇일까지 끝날 수 있다. 이런거죠. 큰 프로젝트에서는 일정과 비용 산정에도 일정과 비용이 들어가기도 합니다.

기획자와 개발자는 마치 화성인과 금성인처럼 언어가 달라요... 기획자는 개떡을 얘기해도 찰떡을 만들어주기를 바라는데, 개발자는 개떡을 말하면 개떡을, 찰떡을 말하면 찰떡을 만들어 줄 뿐이죠.

이거 참고해보세요.

http://onestone.tistory.com/entry/user-requirements

피할 수 있을때 즐겨라! http://melotopia.net/b

ki1021의 이미지

아무래도 처음하는 프로젝트다 보니 착오나 생각지 못한 변수들이 있네요^^

답변 감사드립니다!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.