[T.Viewer 개발일기] 4. 개발 일정 정하기 나의 경험담 2019. 11. 11. 22:51

개발 일정은 큰거하나 작은거 하나만 두고, 너무 공을 들이지 말고 그때 그때 업데이트 하면서 진행하는 것을 선호한다. 에자일스럽게. 언제나 동작하는 소프트웨어 상태를 유지하자!

큰 그림을 그려보면서 할 일을 대충 쭈욱 적어본다. 이 때 가장 중요한 것은 처음 목표로 했던 USE CASE 또는 Feature list를 모두 만족할 수 있어야 한다. USE CASE에 언급되어 있지 않은 큰 일도 많이 있다. 배포 산출물이나 개발 환경에 따른 큰 일 같은 것이 대표적이다. 최소한 이건 다 해야 동작하는 프로그램이 완성된다는 최소 조건 정도가 될 것 같다.

큰거

  1. sdb 연결 기능
  2. sdb log tag 별 출력
  3. filter 적용
  4. filter 별 탭 제공
  5. 다양한 filter 제공
  6. UX 개선 및 설정 기능

작은거는 큰거에서 중요한 부분을 먼저 골라서 당장 해야 할 일을 정리해 본다. 앞뒤로 이어지는 기능들은 더미dummy나 목mock 모듈을 만들어서 개발하여, 테스트와 실제 사용에 문제가 없도록 한다. 즉, 작은거 하나만 개발이 완료되더라도 바로 사용할 수 있어야 한다. sdb 연결 기능이 개발 되지 않은 상태에서도 출력창에 로그를 출력할 수 있는 기능이 문제 없이 동작하여야 한다. 연결은 수동을 진행하고, 연결되지 않은 상황에 대해서는 적절한 에러를 출력한다.

나는 지금 혼자 개발 하고 있지만, 앞뒤의 모듈과의 연결을 인터페이스를 정의하여 개발하면 독립적으로 개발할 수 있다. 이렇게 어떤 모듈을 독립적으로 개발하는 것은 여러모로 의미가 많다. 이렇게 개발할 경우, 자연스럽게 모듈 단위로 테스트하기 좋은 코드가 생성되고, 여러명이 동시에 작업할 때에도 서로에게 불편을 끼치지 않기 때문에 효율적이다. 또한 추후 유지 보수나 개선 작업을 할 때도 모듈을 단위로 진행 할 수 있기 때문에 관리가 편하고, 다른 모듈과 분리되어 있기 때문에 수정에 따른 부작용side effect을 최소화 할 수 있다.

작은거

  1. 로그 출력 창 만들기
  2. sdb dlog 실행해보기
  3. sdb 로그를 로그 출력 창에 출력하기
  4. sdb 가 연결되지 않은 상황는 상태 메세지를 출력하기

마치며

다음에는 작은거를 하나 끝낼 때 쯤 다시 쓸 수 있을 것 같다. 시간이 좀 걸릴듯.ㅋ

작은거라고 표현한 하나의 모듈을 독립적으로 개발하는 습관은 매우 중요하다. 의외로 관련된 모듈이 개발되어 있지 않기 때문에 기다렸다가 개발하겠다는 의견을 접할 때가 많다. 없다고 생각하고 개발해 보라고 의견을 주지만 생각보다 거부감이 크더라. 내 생각에 이 점은 개발자를 평가하기에 아주 좋은 지표 중에 하나인것 같다.