현실에서 살아남는 아키텍처
3년 차에도 여전히 타당한 경계를 긋는 방법, 그리고 경계가 잘못 그어졌을 때 이를 조기에 알아차리는 방법.
- 경계를 어디에 둘 것인가, 그리고 훨씬 더 흔한 경우인 경계를 추가하지 말아야 할 때
- 데이터 소유권, 일관성, 그리고 공유 데이터베이스에 숨어 있는 결합도
- 모놀리스, 모듈러 모놀리스, 서비스 — 이념이 아닌 비용의 관점에서
- 다음 팀이 결과만이 아니라 그 근거까지 물려받도록 의사결정을 기록하는 방법
- 기존 시스템에 이미 존재하는 이음새를 읽어 내는 방법
대상시니어 개발자, 리드, 아키텍트
스프린트 계획 및 추정
추정이 빗나가는 이유와 그 대처법, 그리고 2주 차 수요일에도 여전히 현실과 맞아떨어지는 스프린트 계획 수립법.
- 모든 항목이 한 스프린트 안에 완료될 수 있도록 작업을 쪼개는 방법
- 거짓 정밀도 대신 범위와 신뢰도로 추정하는 방법
- 가용 인력, 이월 작업, 그리고 신뢰할 수 있는 약속 뒤의 계산
- 팀에 맞게 작성한 준비 완료 정의(DoR)와 완료 정의(DoD)
- 본래 목적을 잃지 않으면서 각 세리머니를 한 시간 이내로 진행하는 방법
대상개발팀, 프로덕트 오너, 스크럼 마스터
디스커버리, 범위 정의 및 로드맵 수립
막연한 아이디어를 비용을 산정하고, 순서를 정하고, 결재권자 앞에서 설득할 수 있는 계획으로 바꾸는 방법.
- 요청된 기능 뒤에 숨은 진짜 요구사항에 도달하는 방법
- 기술 타당성 검토, 그리고 가장 비싼 미지수부터 해소하는 스파이크
- 전체가 완성되기 전에 가치 있는 것을 먼저 출시하는 단계별 구성
- 자체 개발, 구매, 통합 — 직감이 아닌 총비용으로 결정
- 회의실을 나선 후에도 트레이드오프가 보이도록 계획을 문서화하는 방법
대상프로덕트 담당자, 딜리버리 리드, 일정을 약속해야 하는 모든 분
엔지니어링 표준 및 개발 흐름
코드 리뷰, 브랜치 전략, CI/CD, 작성할 가치가 있는 테스트 — 팀이 얼마나 빠르고 안전하게 움직일 수 있는지를 결정하는 실천 방식.
- 서식 문제가 아니라 설계 문제를 잡아내는 코드 리뷰
- 실제 출시 주기에 맞춘 브랜치 및 릴리스 모델
- 진짜 이유로만 실패하고 신뢰할 수 있을 만큼 빠른 파이프라인
- 테스트가 비용 대비 효과를 내는 곳과 그렇지 않은 곳
- 다음 마감에도 살아남도록 표준을 기본 경로로 만드는 방법
대상엔지니어링 팀 전체
개발 중단 없는 현대화
고객사 시스템에 적용하는 스트랭글러 패턴 — 프로덕션을 유지하고 로드맵을 멈추지 않으면서 플랫폼을 교체하는 방법.
- 첫 번째 조각 찾기: 작고, 가치 있고, 실제로 분리 가능한 부분
- 같은 URL 뒤에서 기존 시스템과 새 시스템을 나란히 운영하기
- 두 시스템을 잇는 다리로서의 공유 라이브러리와 멀티 타기팅
- 이런 작업이 대개 멈춰 서는 데이터 계층의 전환 순서 정하기
- 투자하는 사람들이 스프린트마다 진척을 확인할 수 있게 만들기
대상레거시 플랫폼을 담당하는 리드 및 이해관계자