조엘온 소프트웨어 발표 최종

Download Report

Transcript 조엘온 소프트웨어 발표 최종

조엘온 소프트웨어 이재동

어떤 언어를 써야 할까?

기본으로 돌아가기

트릭?

파스칼 문자열이란?

• 255바이트로 길이 제한 char* str = “\006Hello!”;

조엘 테스트 – 1. 소스코드 관리시스템을 사용하고 있습니까?

– 2. 한방에 빌드를 만들어낼 수 있습니까?

– 3. 일일 빌드를 하고 있습니까?

– 4. 버그 추적시스템을 운영하고 있습니까?

– 5. 코드를 새로 작성하기 전에 버그를 수정합니까?

– 6. 일정을 업데이트하고 있습니까?

– 7. 명세서를 작성하고 있습니까?

– 8. 조용한 작업 환경에서 일하고 있습니까?

– 9. 경제적인 범위 내에서 최고 성능의 도구를 사용하고 있습니까?

– 10. 테스터를 별도로 두고 있습니까?

– 11. 프로그래머 채용 인터뷰 때 코딩 테스트를 합니까?

– 12. 무작위 사용편의성 테스트를 수행하고 있습니까?

1.소스코드 관리 시스템을 사용하고 있습니까?

2. 한방에 빌드를 만들어낼수 있습니까?

3. 일일빌드를 하고 있습니까?

(빌드 서버를 이용해 보셨나요?)

4. 버그 추적 시스템을 운영하고 있습니까?

ㅇ 버그를 재현하기 위한 완벽한 단계 ㅇ 예상 수행 결과 ㅇ 관찰한(버그로 간주되는) 실제 수행 결과 ㅇ 수정을 맡을 개발 책임자 ㅇ 수정했는지 여부

5. 코드를 새로 작성하기전에 버그를 수정합니까?

6. 일정을 업데이트 하고 있습니까?

7. 명세서를 작성하고 있습니까?

8. 조용한 작업 환경에서 일하고 있습니까?

9 경제적인 범위내에서 최고 성능의 도구를 사용하고 있습니까?

10. 테스터를 별도로 두고 있습니까?

11. 프로그래머 채용 인터뷰때 코딩 테스트를 합니까?

12. 무작위 사용 편의성 테스트를 수행 하고 있습니까?

유니코드와 문자 집합에 대한 고찰 • ASCII 코드?

• 유니코드?

• UTF-8

억울한 사람?

인코딩?

• Content-Type •

명세서 작업이 귀찮습니까?

• 1.코딩하기전 명세서를 통해서 대화를 하라.

– 프래그래머는 코드에 상당히 집착한다. -> 코드를 잘 바꾸려고 들지 않는다. • 2.의사소통의 시간절약 – 명세서가 만들어 지면, 프로그램이 만들어 지지 않아도 다른 부분들 에서도 일이 진행 될 수 있다.

• 3.일정을 계획 할 수 있다.

명세가 뭡니까?

• 기능 명세( functional specification ) : 완전히 사용자 관점에서 제품이 어떻게 동작할지를 기술. 기능에 대해 이야기하고, 화면, 메뉴, 대화 상자와 같은 사용자 인터페이스 부품을 명세 합니다.

• 기술 명세( technical specification ) : 프로그램의 내부 구현을 기술합니다. 자료구조와, 관계형 데이터베이스 모델과 프로그래밍 언어, 도구, 알고리즘 선택과 같은 항목을 다룹니다

조엘이 명세(기능명세)마다 넣은 단골 항목

• 면책조항 : 방어적인 내용으로 “이 명세는 완벽하지 않습니다” 와 같은 내용을 넣어준다. 후에 명세가 완벽해지면 “제가 알기로는 이 명세는 거의 완벽합니다. 하지만 무언가를 빠뜨렸을 경우에는 제게 말씀해 주세요” 와 같이 바뀔수 있다.

조엘이 명세(기능명세)마다 넣은 단골 항목

• 저자 : 저자는 1명 – 큰 제품일 경우 부품별로 쪼개고 개인에게 할당 – 책임있는 명세서 소유자를 지정 • 시나리오 방법에 대한 생생한 시나리오를 염두에 둬야함.

: 사용자가 이 제품을 사용하는

조엘이 명세(기능명세)마다 넣은 단골 항목

• 회피목표 : “이건 절대 안 할 겁니다!!” 라는 목표를 정한다.

– 모든 기능을 허용한다면, 시간도 무한정 걸리고 돈도 무진당 들어간다. 이런 이유 때문에 불필요한 기능은 버려야 한다.

• 개괄 : 명세를 위한 목차와 유사 • 세부사항 : 너무나도 자세해 못 견딜 만큼 따분한 세부 사항을 매 화면마다 기술

조엘이 명세(기능명세)마다 넣은 단골 항목

• 미해결 문제 : 명세 첫 버전에 미해결 문제를 남겨 놓아도 나쁘지 않다. – 프로그래머가 작업을 시작할 무렵에, 이런 모든 미해결 사항들을 짚어놔야 한다.

• 방주 : 다양한 청중이 있음을 이해하고, ‘기술노트’,’테스팅 노트’, ‘마케팅 노트’, ‘문서화 노트’ 와 같은 방주로 나눈다.

조엘이 명세(기능명세)마다 넣은 단골 항목

• 명세는 지속적으로 업데이트 해야 함 명세는 항상 제품이 동작하는 원리를 최대한 반영하는 그림자가 되어야함 :

감사합니다.