01 SRS란 무엇인가?SRS는 specification 혹은 spec(스펙)이라고도 한다.SRS에는 스펙을 작성할 때 생각하는 방법, 작성하는 프로세스, 기록해야 할 내용, 각 내용의 작성 가이드가 모두 수록된다. 02 어떻게 소프트웨어를 빠르게 개발할 것인가?소프트웨어를 동시에 개발해 프로젝트 기간을 단축하려면 사전 단계인 분석, 설계가 정교하게 되어야 한다.특히 컴포넌트를 잘 나누고 인터페이스를 견고하게 정의해야 한다.인터페이스는 간결하게 정의해서 모듈 간의 연동을 쉽게 하고 확고하게 정해서 함부로 바꾸지 않도록 한다.프로젝트 기간 내내 인터페이스를 잘 유지하기 위해서는 지속적인 통합이 필요하며 이를 위해서는 유닛 테스트, 테스트 자동화가 유용하다.지속적인 통합을 위해 반드시 필요한 것은 주기적인 ..
01 소프트웨어 프로젝트 실패의 원인약속된 일정 내 제품 또는 서비스를 출시하지 못했다.소프트웨어가 요구되는 품질(기능 요구사항, 성능, 안정성, 사용성, 확장성 등)을 충족하지 못했다.프로젝트에 꼭 필요한 기술 개발에 실패했다.아키텍처가 뒤죽박죽이 되어서 유지보수가 어려워졌다.애초 예산보다 훨씬 더 많은 비용이 지출됐다.연이은 야근으로 조직 사기가 떨어지고 많은 사람이 그만뒀다.등등 실패 원인은 끝도 없이 많은데 이를 크게 나누면 스펙, 팀, 관리, 고객, 기술 등으로 분류할 수 있다.이 중 가장 중요한 것은 '스펙'이다.프로젝트를 성공하기 위한 최선의 방법은 '원칙만 지킬 수 있는 최소한의 프로세스 환경에서 좋은 문화를 공유'하는 것이다. 02 스펙에 대한 오해스펙을 항상 일정한 절차를 걸쳐 상세하게..
01 이 책에서 말하는 시스템 설계의 정리 방법이 책에서는 프로세스를 구분하는 대신에 단순히 '설계할 내용'을 설명하는 형태로 진행한다.대규모 시스템에서 문제 없이 진행하려면 관리 부분도 신경을 써야 한다.실제 업무에서는 시스템 설계 이외에도 다양한 요소가 필요하다는 점을 의식해야 한다. 시스템을 설계한다는 것은 하드웨어를 원하는 대로 조작하는 소프트웨어를 만드는 일이다.시스템 설계란 요구사항을 실현하기 위해 적절히 제품과 기능을 선택하고 미리 준비된 조작 방식을 사용해서 어떻게 설정하면 제대로 작동할지 방법을 고민하는 것이다. 시스템 설계의 기본 흐름넓은 시점의 설계 -> 공통 부분 설계 -> 개별 설계(개념적/논리적 설계 : 큰 관점 -> 구체적인 내용)따로 설계하면 낭비가 발생하거나 전체적인 요구사..