개발 프로젝트에 개발 말고 필요한 것

rnaster.woo·2021년 3월 21일
0

졸업작품

목록 보기
2/8

그래 이건 직전 졸업작품의 진행과정이다.
그 문서를 너무 딱딱하게 작성했다는걸 얼마전에 깨달았다...
그래도 이 문서를 읽을 분들은 너그러이 이해해주리라 생각한다.

직전 문서가 이 프로젝트에 대한 설명을 충분히 하지 못했던 분들을 위해 짧게 설명을 잇고 싶다.

나와 3인의 팀원으로 구성된 프로젝트 칠공팔은 지게차를 특정한 사업장에서 자율화 하여 안전성을 증대시킬 수 있는 솔루션을 제작하고 있다. 그 시작점이 될 프로토타입 제작이 이번학기 캡스톤 디자인 프로젝트가 되었다.

그런데 지금 문제가 생겼다.
아무도 UI/UX에 대한 생각을 하지 않고 있었다. 아니지 문제는 UI/UX구성에만 생긴게 아니다. 우리는 모든 작업을 명세화 하는 작업에 익숙하지 않다. 지난 두번의 프로젝트 실패 경험에서 나는 이 명세화를 하지 않으면 길고 지치는 개발 기간동안 흔들리고 만다는걸 배웠다. 흔들린다면 넘어지는건 필연적인 일이었다.

내가 공부를 열심히한 학생은 아니지만 프로젝트는 통계적으로 70%가 실패하기 마련이라고 소프트웨어 공학시간에 배웠다. 어쩌면 내가 실패한건 당연한지도 모르겠다.

1. 나는 지금 어디에 있는가

자료구조 교수님은 매번 빼먹지 않고 이 말씀을 하셨다. 아침에 일어나면 거울을 보고 내가 어디로 가야 하는지 알아야 한다는 말씀이셨다. 노드가 어디를 가리키는지 보다 내가 어디로 가야하는지를 더 강조하셨던 듯 하다.

그래서 디스코드에 일기장을 만들었다. 이름과는 다르게 매일의 작업 내용을 공유하진 않고 일이 있다면 이틀상간에 공유할 수도 있지만 가급적 이틀에 한번은 작업 진행 사항을 공유해주길 부탁했다. 물론 사흘에 한번 올리는 팀원도 있다.
하지만 디스코드는 리마인딩이 어렵다. 이 작업의 목적은 스스로 지금까지 뭘 얼마나 했고 어떤 문제가 생겼으며 그런 문제는 어떻게 해결하고 또 어떤건 해결하지 못했는지를 개발자 스스로 알고 있어야 한다.고 믿는다

그래서 디스코드 대화내역을 파일로 깔끔하게 만들어 사람별, 날짜별로 정리할 수 있는 프로그램이 필요하다.

2. 진행

우리는 프로토타입을 제작하고 있다. 그건 하나도 어렵지 않다. 우리보다 똑똑한 사람들이 이미 많은 레퍼런스를 만들어뒀고 우리는 그걸 갖다 베끼고 이해하면 된다.
이해한 코드를 스스로 습득하고 어떤 상황에 어떻게 다시 사용할 수 있는지 정도만 우리스스로 결정할 수 있으면 된다.

고 보니 굉장히 어려워보인다.

하지만 이걸 구동하는 웹 애플리케이션을 설계하지 않았다. 웹앱 역시 남들 코드 훔치면 되는데 중요한건 훔쳐다 뭘 만들어야 하는지를 정하지 않았다.
역시 우리는 아무도 프로젝트를 설계하는 일을 배우지 못했다.

3. 루팡이 되자

그래서 급하게 부랴부랴 UI UX 설계 하는 법, 와이어프레임, 기획에 대한 아주 기초적인 요소를 공부했다.

내가 프로젝트를 운영할 땐 작업물의 헛점을 찾는다. 왜 그렇게 만들어졌는지 어째서 그렇게 운영되는지에 대해 납득할 수 있어야 한다. 마찬가지로 뭔가 빠졌는지, 카테고리는 잘되었는지도 중요한 요소다.
이걸 흔히들 '턴다'고 한다.

이 사진은 PPT로 부랴부랴 어떤 화면이 있어야 하고 이 화면은 어떤 기능과 요소가 있는지에 두서없이 연결한 표다.
역시나 털릴 것들이 가득한 그림이지만 급한대로 정리라도 했다.

이제 남들 코드를 훔쳐올 기준이 생겼다. 이걸 기준으로 필요한 벼, 고기, 비단 같은걸 도적질 해오면 된다.

하지만 그걸로는 역시 충분하지 않다. 단순히 고기를 훔쳐오면 되는것에서는 충분하지 않기 때문이다. 소고기 인지 양고기 인지 말고기 인지 닭고기 인지를 정해두지 않았기 때문이다.

위대한 테크기업 (테슬라, 애플, 트위터, 페이스북 같은)이 나완 비교도할 수 없을 정도로 아름답고 수려하게 닦아놓은 디자인을 그대로 훔쳐오자 고객이 서비스를 이용하고 작업을 수행하는 행위에서 그걸 돕는 서비스를 만들고 있으니 서비스 자체가 불편함을 주거나 걸림돌이 되어선 안된다.

도구의 본질을 위한 디자인이 필요하다.

필요한 것

  1. 디스코드 API로 각자의 작업 내용을 문서화 하는 프로그램
  2. 프로젝트 완전하게 설계
  3. 명세로 개발자가 다음에 무슨 일을 해야하는지 작성
  4. 본질을 잃지 않는 디자인으로 UI를 구성

필요한걸 정리해봤다. 나는 프로젝트 매니저가 되어 문제 없이 작업과 팀원을 이끌어야 하며 동시에 개발 일원이 되어 프로젝트 매니저가 만족할 작업물을 구성해야 하고 동시에 고객이 되어 이 제품이 가진 문제를 찾아야 한다.

프로젝트는 완전히 설계 되지 않은채로 작업이 시작되었고 동시에 완전한 설계를 이뤄야 한다. 동시에 고객의 피드백을 수용해 빠른 수정이 있어야한다.

달리고 있는 자전거에 전기모터를 개발해 부착하면서 타고 있는 승객의 요구에 따라 날개를 달고 날아야 할지도 모르겠다.

이런건 배운 기억이 난다. 애자일이나 나선형 폭포수 같은 이름이었다. 물론 지금도 뭐가 뭔지 분명히 설명은 못하지만 배우긴 배웠다.

profile
누군가 만든 좋은 제품을 사용하면서 자랐습니다. 좋은 제품을 만드는 창작자를 언제나 응원합니다.

0개의 댓글