목차
1장 소프트웨어 아키텍처
1.1 기본 구조
1.2 시스템
1.3 구성 요소
1.4 구성 요소 간 관계
1.5 환경과의 관계
1.6 설계를 통제하는 원칙
1.7 시스템 진화
1.8 요약
2장 맥락
2.1 콘셉트
2.2 신뢰도
2.3 아키텍처적으로 중요한 요구 사항
2.4 제품 계열
__2.4.1 하나의 제품, 여러 플랫폼
__2.4.2 제품 라인
__2.4.3 제품군
__2.4.4 크로스 플랫폼
2.5 플랫폼 구축
2.6 표준
2.7 요약
3장 변화
3.1 변화의 단계
3.2 변화의 유형
3.3 제품 중심 변화
3.4 기술 중심 변화
3.5 단순화
3.6 투자 마인드
3.7 점진적 배포
3.8 아키텍처 진화
3.9 요약
4장 프로세스
4.1 시스템 문서화
4.2 비전을 향한 작업
4.3 변경 제안서 작성
4.4 백로그 관리
4.5 대안 고려
4.6 아무것도 하지 않기
4.7 긴급성과 중요성
4.8 시스템 재문서화
4.9 요약
5장 설계
5.1 아키텍처가 설계 효율을 높이는 방법
5.2 설계가 아키텍처 변화에 미치는 영향
5.3 분해
5.4 조합
5.5 조합과 플랫폼
5.6 점진적 접근
5.7 병렬 처리
5.8 조직 구조
5.9 개방적인 작업
5.10 포기하기
5.11 완료
5.12 요약
6장 의사 결정
6.1 추가 정보는 도움이 되는가?
6.2 그동안 어떤 일이 일어났는가?
6.3 얼마나 많은 의사 결정을 하고 있는가?
6.4 아무것도 하지 않을 경우 비용은 얼마인가?
6.5 변경을 수용할 수 있는가?
6.6 결정을 잘못 내렸을 때 비용은 얼마인가?
6.7 얼마나 더 확신할 수 있는가?
6.8 이 결정은 내 책임인가?
6.9 일관성이 있는가?
6.10 문서화할 수 있는가?
6.11 요약
7장 실무 방식
7.1 백로그
7.2 카탈로그
7.3 템플릿
7.4 검토
7.5 진행 상태
7.6 진행 속도
7.7 집중 시간
7.8 요약
8장 커뮤니케이션
8.1 정신 모델
8.2 문서 작성
8.3 대화
8.4 정보 아키텍처
8.5 네이밍
8.6 용어집
8.7 경청
8.8 요약
9장 아키텍처 팀
9.1 전문화
9.2 팀 구조
9.3 리더십
9.4 책임
9.5 인재
9.6 다양성
9.7 조직 문화
9.8 모임
9.9 세미나와 서밋
9.10 요약
10장 제품 개발 조직
10.1 개발 방법론에 따른 작업
10.2 제품 관리 팀과 협업
__10.2.1 도와주기
__10.2.2 다양한 결말
__10.2.3 작업 범위의 한계 설정
10.3 UX 팀과 협업
10.4 프로그램 관리 팀과 협업
10.5 엔지니어링 팀과 협업
__10.5.1 끝까지 참여하기
10.6 테스팅 팀과 협업
10.7 운영 팀과 협업
10.8 요약
부록 결론
A.1 비전
A.2 아키텍처 복구
A.3 조직 변화
A.4 변경 프로세스
A.5 맺음말