페이지

2006년 6월 18일 일요일

201가지 소프트웨어 개발 원칙



이 가운데 쓸만한 몇가지 원칙을 뽑아 본다면..

일반원칙

  • 품질이 제일이다.

  • 사후에 품질을 만들어 넣으려하지 마라.

  • 성능보다 신뢰성이 더 중요하다.

  • 시제품을 고객에게 빨리 보여준다.

  • 처음 시도하는 것은 폐기할 작정으로 개발한다.

  • 보면 볼수록 더 많은 것을 원한다. (변경에 대비하자)

  • 개발중의 변경은 피할 수 없다.

  • 가능하면 개발하기 보다는 구매한다.

  • 사용자 메뉴얼이 간단하게 되도록 소프트웨어를 개발한다.

  • 아무리 복잡한 문제라도 해결책은 있다.

  • 소프트웨어 도구는 우수한 개발자에게 제공한다.

  • 대세를 따를 때는 주의해야 한다. (신기술대한 맹목적 수용은 위험)

  • 문서표준을 사용한다

  • 모든 문서에 용어정의를 한다.


요구사항 원칙

  • 요구사항이 불명확할수록 비용예측이 어렵다.

  • 시제품으로 사용자 인터페이스 선정의 위험을 줄인다.

  • 요구사항의 우선순위를 정한다.


설계원칙

  • 설계산출물에서 요구사항을 추척한다.

  • 문서가 없는 설계는 설계가 아니다.

  • 캡슐화한다.

  • 가능하면 재사용한다.

  • 단순하게 개발한다.

  • 특수한 경우를 많이 만들지 않는다.

  • 변경이 쉽게 설계한다.

  • 효율적인 알고리즘을 사용한다.

  • 뛰어난 설계는 뛰어난 설계자가 한다.

  • 무모한 값을 입력하면 적절한 오류 메시지를 출력하도록 한다.


코딩원칙

  • 글로벌 변수를 사용하지 않는다.

  • 의미있는 명칭을 사용한다.

  • 사람을 위한 프로그램을 작성한다.

  • 최적의 자료구조를 사용한다.

  • 코드를 완성하기 전에 주석을 작성한다.

  • 코딩을 시작하기 전에 문서화한다.

  • code 검토를 실시한다.

  • 너무 깊이 중첩시키지 않는다.


시험원칙

  • 시험에서 요구사항을 추척한다.

  • 시험하기 훨씬 이전에 시험을 계획한다.

  • 자신이 개발한 소프트웨어는 자신이 시험하지 않는다.

  • 블랙박스 시험과 화이트박스 시험을 실시한다.

  • 항상 스트레스 시험을 한다.

  • 단위시험이 끝나기 전에 통합하지 않는다.

  • 소프트웨어에 특정한 시험용 코드를 내장시킨다.


관리원칙

  • 뛰어난 관리는 뛰어난 기술보다 중요하다.

  • 고객의 우선순위를 알아야한다.

  • 많은 사람보다는 소수정예요원이 낫다.

  • 항상 기대치를 높이 가진다.

  • 능숙한 의사소통 기술은 필수적이다.

  • 인력과 시간은 대체할 수 없다.

  • 소프트웨어 개발자의 능력차이는 크다.

  • 불가능한 것은 피한다.

  • 적절한 프로세스 모델을 사용한다.

  • 직면한 위험을 이해한다.

  • 방법론이 당신을 구제해 주지는 못한다.


제품보증 원칙

  • 형상관리 절차를 조기에 확립한다.

  • 모든 중간산출물에 명칭과 버전 번호를 부여한다.

  • 기준선을 통제한다.

  • 모든 것을 보존한다.

  • 변경관리를 해야 한다.


진화원칙

  • 소프트웨어는 계속 변화한다.

  • 증상이 아닌 근본적인 문제를 수정한다.

  • 최악의 구성요소는 처음부터 다시 개발한다.

  • 변경한 후에는 반드시 회귀시험을 실시한다.

  • 비구조적인 코드는 구조화해도 개선되지 않는다.


이상입니다~

댓글 없음:

댓글 쓰기