10 3 Reading_Assignment_1(20094068 3학년 이준서) - JunSeoLee/project_team_5 GitHub Wiki

Microsoft사의 소프트웨어 개발 프로그래머와 테스터 팀의 끈질긴 테스트로 제품 안정화 및 정기적인 제품에 대한 업데이트로 Excel, Office, Publisher, Windows 95 등을 생산한다. 그들의 성공사례를 말해주겠다. 1980 년대 중반 이후, PC의 진화로 코드 라인 수가 수 천 수 만 줄이 되어 버리니 Microsoft사는 소프트웨어 제품을 구축하는 방법을 개편한다. 다른 곳에서는 소프트웨어의 안정성을 유지하려고 노력했지만 Microsoft사는 오히려 스케일을 늘릴려고 노력했다. 작은 팀 스타일 (3-8 개발자), 많은 병렬 팀, 디자인 진화의 자유, 자주 동기화, 접근을 동기화 - 및 - 안정으로 지속적으로 병렬 팀을 동기화하고 주기적으로 비교를 했다. 한 끝에 단위로 제품을 안정화하였다. 또 다른 이름으로: 마일스톤 과정 ,일일 빌드 프로세스, 간 빌드 프로세스, 무결점 과정이라 한다. 여기서 Microsoft사의 개발 철학은 매우 유연함으로써 그 뿌리를 육성하고 있다.

1. 계획 개발 단계

충분한 깊이의 제품 기능은 일정을 정리하고 직원을 할당하는 기능 사양을 사용하여 3-4 하위에 있는 기능을 개발 (지속 2-4개월 각)하며 디자인, 코딩, 디버깅 (Debugging)순으로 실시 한다, 가장 중요한 기능 및 공유 구성 요소로 시작하며 기능 세트는 30 % 이상으로 변경 될 수 있다

2. 개발 하위 프로젝트 개발 단계

기능 팀은 하위 프로젝트의 끝에서 문제를 테스트하고 수정, 개발, 기능 통합의 전체 사이클을 통해 이동하며 테스터는 개발자와 짝을 맞추며 기능 팀은 제품을 구축 발견하고 매일 매주 오류를 수정하여 작업을 동기화한다.

3. 안정화 단계

전체 제품의 내부 테스트, 외부 테스트, 베타 사이트, ISVs ISV, OEMs OEM 업체, 최종 사용자, 릴리스 준비를 실시

안정화 다섯 원칙 (제품을 정의하고 개발 프로세스를 구성하는 데 사용)

  1. 버퍼 시간 (20-50%) 여러 사이클에 큰 프로젝트를 분할
  2. "비전 선언문"을 사용하여 프로젝트를 안내하는 기능 사양을 설명
  3. 사용자 활동 및 데이터에 대한 기본 기능 선택 및 우선순위
  4. 모듈 및 수평 설계 아키텍처를 진화
  5. 작은 작업과 고정 된 프로젝트 리소스에 개별 약정에 의한 제어,

4. 연출 및 제어

기능에 대해 크게 생각하는 고객에 대해 돈을 요구한다, 이러한 인력 및 일정 등의 리소스를 제한하여 압력을 행사한다, 우선순위 정렬 식 형상 순차 하위 연출 및 제어를 한다. 모듈 형 아키텍처 팀이 점진적으로 기능을 추가, 리소스가 고정 된 후 팀이 일정 뒤에 떨어 경우 기능은 삭제, 버퍼 시간을 허용 변화와 예기치 않은 어려움에 대한 응답을 한다.

다섯 원칙(제품 개발 및 운송 과정을 관리하는 데 사용)

  1. 병렬 팀에서 작업하지만 일상 디버깅
  2. 항상 모든 주요 플랫폼 시장을 위한 버전으로 생각
  3. 하나의 개발 사이트에 "공통의 언어"를 말 한다
  4. 지속적으로 제품을 테스트
  5. 이정표 완료 및 제품 출시를 결정하는 메트릭 데이터를 사용 한다.

5. 조정 규칙

특정 시간 코드 "에 체크"를 실시(새로운 매일 구축, 즉시 테스트 및 디버깅) "휴식" 빌드는 즉시 수정해야하는 코드이다, 각 플랫폼에 대해 각각의 시장에 생성 된 일일 빌드 한다.

6. 통신

하나의 물리적 사이트에있는 모든 개발자, 일반적인 개발 언어 (C/C++) 표준화 된 개발 도구, 프로젝트에 전진 할 시기를 결정하는 정량적인 측정의 작은 세트(매일 빌드(예를 들어 진행-> 새로운 번호로 추적 해결 활성 버그입니다))

7. 구조적 해커 접근 방식

해커 문화를 유지, 제품은 충분히 강력하고, 충분히 안정적이고 충분히 간단하게 하기에 충분한 구조를 추가한다, 충분히 좋은 제품 도입 경쟁 전략을 지원하고, 점진적으로 기능을 진화하여 그들을 개선 한다.

8. 동기화 - 및 - 안정 의 장점

예비 버전을 출하, 기능을 추가 또는 후속 릴리스, 제품 조각의 쉬운 통합은 아직 멀다

9. 순차 대 동기화 - 및 - 안정

병렬 개발 및 테스트, 비전 선언문 진화 사양, 하위 프로젝트에 우선 순위 기능, 일일 빌드 (동기화), 중간 안정화, 순차 개발 및 테스트, 냉동 사양 모든 기능이 동시에 내장, 끝에서 한 말, 큰 통합 및 테스트 단계 고정, 여러 릴리스 및 선박 날짜, 개발 과정에서 지속적인 고객 피드백, 큰 팀은 작은 팀처럼 작동, 각 주기에 완벽을 목표로 한다, 다음 프로젝트에 대한 입력으로 개발 후에 의견을 낸다, 별도의 기능부서의 사람들이 큰 그룹으로 작동

10. 약점

마이크로 소프트는 자사의 제품 아키텍처에 더 집중 집중이 필요 마이크로 소프트는 디자인과 코드 리뷰에 대한보다 엄격한 접근이 필요 S-&-S 프로세스는 모든 새로운 제품에 적합하지 않을 수 있다. (예를 들어, 수요 구성 요소에 대한 비디오는 정확한 수학적 모델을 필요로 한다.) 잠재적 인 사용자 시나리오의 무한한 수를 테스트 할 수 없다. 결함 방지에 초점을 하지 않는다.

11. 장점

관리 조각 (기능의 우선순위 주문한 세트) 운영 처음부터 안정적인 설계를 완성하는 것은 불가능 경우에도 프로젝트를 체계적으로 진행, 큰 팀은 작은 팀처럼 작동

12. 더 많은 혜택

첫 번째 가장 중요한 부분을 완성, 우선순위 설정, 고객 입력을 위한 메커니즘을 제공하며 기능이 완성되는지의 정확한 평가를 가지고 올 수 있다 급변하는 시장, 짧은 수명주기를 가진 복잡한 제품, 진화 기능을 바탕으로 한 경쟁 제품에 대하여 혜택을 누릴 수 있다