201가지 소프트웨어 개발 원칙
Software2006. 6. 18. 22:02
이 가운데 쓸만한 몇가지 원칙을 뽑아 본다면..
일반원칙
- 품질이 제일이다.
- 사후에 품질을 만들어 넣으려하지 마라.
- 성능보다 신뢰성이 더 중요하다.
- 시제품을 고객에게 빨리 보여준다.
- 처음 시도하는 것은 폐기할 작정으로 개발한다.
- 보면 볼수록 더 많은 것을 원한다. (변경에 대비하자)
- 개발중의 변경은 피할 수 없다.
- 가능하면 개발하기 보다는 구매한다.
- 사용자 메뉴얼이 간단하게 되도록 소프트웨어를 개발한다.
- 아무리 복잡한 문제라도 해결책은 있다.
- 소프트웨어 도구는 우수한 개발자에게 제공한다.
- 대세를 따를 때는 주의해야 한다. (신기술대한 맹목적 수용은 위험)
- 문서표준을 사용한다
- 모든 문서에 용어정의를 한다.
요구사항 원칙
- 요구사항이 불명확할수록 비용예측이 어렵다.
- 시제품으로 사용자 인터페이스 선정의 위험을 줄인다.
- 요구사항의 우선순위를 정한다.
설계원칙
- 설계산출물에서 요구사항을 추척한다.
- 문서가 없는 설계는 설계가 아니다.
- 캡슐화한다.
- 가능하면 재사용한다.
- 단순하게 개발한다.
- 특수한 경우를 많이 만들지 않는다.
- 변경이 쉽게 설계한다.
- 효율적인 알고리즘을 사용한다.
- 뛰어난 설계는 뛰어난 설계자가 한다.
- 무모한 값을 입력하면 적절한 오류 메시지를 출력하도록 한다.
코딩원칙
- 글로벌 변수를 사용하지 않는다.
- 의미있는 명칭을 사용한다.
- 사람을 위한 프로그램을 작성한다.
- 최적의 자료구조를 사용한다.
- 코드를 완성하기 전에 주석을 작성한다.
- 코딩을 시작하기 전에 문서화한다.
- code 검토를 실시한다.
- 너무 깊이 중첩시키지 않는다.
시험원칙
- 시험에서 요구사항을 추척한다.
- 시험하기 훨씬 이전에 시험을 계획한다.
- 자신이 개발한 소프트웨어는 자신이 시험하지 않는다.
- 블랙박스 시험과 화이트박스 시험을 실시한다.
- 항상 스트레스 시험을 한다.
- 단위시험이 끝나기 전에 통합하지 않는다.
- 소프트웨어에 특정한 시험용 코드를 내장시킨다.
관리원칙
- 뛰어난 관리는 뛰어난 기술보다 중요하다.
- 고객의 우선순위를 알아야한다.
- 많은 사람보다는 소수정예요원이 낫다.
- 항상 기대치를 높이 가진다.
- 능숙한 의사소통 기술은 필수적이다.
- 인력과 시간은 대체할 수 없다.
- 소프트웨어 개발자의 능력차이는 크다.
- 불가능한 것은 피한다.
- 적절한 프로세스 모델을 사용한다.
- 직면한 위험을 이해한다.
- 방법론이 당신을 구제해 주지는 못한다.
제품보증 원칙
- 형상관리 절차를 조기에 확립한다.
- 모든 중간산출물에 명칭과 버전 번호를 부여한다.
- 기준선을 통제한다.
- 모든 것을 보존한다.
- 변경관리를 해야 한다.
진화원칙
- 소프트웨어는 계속 변화한다.
- 증상이 아닌 근본적인 문제를 수정한다.
- 최악의 구성요소는 처음부터 다시 개발한다.
- 변경한 후에는 반드시 회귀시험을 실시한다.
- 비구조적인 코드는 구조화해도 개선되지 않는다.
이상입니다~
'Software' 카테고리의 다른 글
BarCampSeoul (1) | 2006.09.13 |
---|---|
소프트웨어 테스팅 (0) | 2006.08.27 |
단순함의 미학 (1) | 2006.06.08 |
소니 아이보 SDK (0) | 2006.02.12 |
[Professional 소프트웨어 개발] 변하지 않는 핵심 잡기 (0) | 2005.12.19 |
댓글()