2014년 10월 21일 화요일

기획이 불확실한 경우에 프로그래밍 절차

프로젝트의 기획이 명확하지 않은 경우 - 게임의 경우, 항상 그런것 같다 - 나에게는 잘 맞는 개발 절차다.

기본 철학

  1. 실용주의 - 할 일만 최소한으로 한다
  2. 빠른 피드백 루프 - 만들고, 보여주고, 수정한다 
  3. 좋은 코드 - 읽기 쉽고 요구사항을 충족한다

절차

  1. 핵심기능을  단순하고 빠르게 구현한다
  2. 피드백을 받아서 코드를 수정한다
  3. 다음 작업을 시작하기 전에 리팩토링을 한다
  4. 1번으로 돌아간다

설명

핵심기능을  단순하고 빠르게 구현한다

요구사항에 있는 선에서 최대한 빠르게 실행해볼 수 있는 구조로 코드를 작성한다. 이 때는 좋은 코드에 대해서 고민하지 않는다. 그저 적은 코드로 빠르게 테스트 하는 것에 집중한다.
좋은 코드란, 읽기 쉽고 요구사항을 최대한 충족하는 것이다. 요구 사항의 핵심 기능만 분명할 뿐, 나머지는 변경의 여지가 있다. 그래서 핵심 기능만 단순하게 구현하여 변경 사항을 확인하고 코드에 대비한다.

피드백을 받아서 코드를 수정한다

빠른 피드백 루프의 핵심을 빠른 수정이다. 빠른 수정을 위해서 가장 좋은 대비 방법은 단순한 개념과 코드다. 개념과 코드를 단순하게 유지하면, 수정하기 쉽다. 개념이 단순하면 사고도 유연해 진다.

다음 작업을 시작하기 전에 리펙토링을 한다

리펙토링을 아무런 기준없이 하는 것은 끝이 없는 일을 하는 것과 같다. 리펙토링은 좋은 코드를 만들기 위해서 한다. 좋은 코드란 읽기 쉽고 요구사항을 최대한 충족하는 것이다. 따라서, 다음 추가할 작업은 리펙토링의 좋은 기준이 된다.

1번으로 돌아간다

3번과 4번은 동시에 진행된다. 다음 요구사항을 빠르고 구현하기 위해서 리펙토링을 중간중간에 하는 것이다.

결론

리펙토링은 다음 수정사항을 목표로 코드 작성 중간중간에 해야된다. 따라서, 프로그래머에게 충분한 작업 시간을 주는 것이 무엇보다도 중요하다

댓글 없음:

댓글 쓰기