애자일 프랙티스 (팀으로 성과를 내기 위한 개발 기술의 실천 지식 | 반양장)

애자일 프랙티스 (팀으로 성과를 내기 위한 개발 기술의 실천 지식 | 반양장)

$24.00
Description
116가지 기술 프랙티스와 현장 사례로 배우는 애자일 개발
이 책은 소프트웨어 개발 현장에서 애자일 개발을 실천해 온 저자가 자신의 실무 경험을 바탕으로 정리한 실무 가이드북입니다. 애자일 개발 실천을 위한 개발 지식과 116가지 기술 프랙티스를 체계적으로 정리하고, 가상의 개발 현장을 그린 만화를 통해 현장 상황에 맞는 프랙티스를 선택하고 활용하는 방법을 안내합니다.
저자

츠네마츠유이치

Retty주식회사제품부문집행임원VPoE
엔지니어링조직의관리-제품개발프로세스의애자일혁신을통해‘팀이하나로협력해고객에게가치있는제품을단기간에출시할수있는개발체제의모습’을모색하고있다.

목차

들어가며
이책의소개
이책의대상독자
이책을읽는방법
이책에서다루는프랙티스
감수자서문
안녕하세요!
한편그무렵……

[1장.애자일개발을지원하는프랙티스]

1-1프랙티스의실천
애자일의‘오른쪽날개’와‘왼쪽날개’
기술프랙티스실천을통해문화를정착시키자

1-2돌다리도두드려보고빠르게건너라
빨리알아채기
작은단위로완성한다
지속적인수정

1-3잘알려진애자일개발기법과프랙티스
스크럼
익스트림프로그래밍
칸반

1-4프랙티스이해에도움이되는개념
동시에진행하는작업을줄여라
__WIP제한
__리소스효율과플로우효율
작은단위로완성하면서전체밸런스도신경을쓴다
__점진적(Incremental)
__반복적(Iterative)
동작하는상태에서변화해나간다


[2장.‘프로그래밍’에서활용할수있는프랙티스]

2-1프로그래밍방침
프로그래밍전에방침을논의해재작업을방지한다
__프로그래밍전에방침을논의한다
사용자스토리를작업단위로분해한다
__작업분할
__칸반
완료기준을명확히한다
__준비완료의정의(DefinitionofReady)
__완료의정의(DefinitionofDone)
__인수기준(AcceptanceCriteria)
__미완료정의(UndoneWork)
코멘트로프로그래밍가이드라인을마련한다
__의사코드프로그래밍

2-2브랜치전략
동시에수정을진행하기위한운용규칙
__브랜치전략
세밀하고빈번하게직접커밋을반복해개발을진행한다
__트렁크기반개발
동작하는상태를유지한채조금씩병합해나가는방법
__피처플래그
장기간브랜치가필요한경우
__장기간브랜치에정기병합

2-3커밋
표준적인커밋메시지를작성한다
__읽는사람을배려한커밋메시지
다른목적의수정을하나의커밋에섞지않는다
__커밋을목적별로나눈다
__커밋메시지에프리픽스를부여한다
커밋이력을다시쓰는방법
__커밋이력을다시쓴다
읽는사람이알기쉬운흐름으로커밋을배열한다
__이야기처럼커밋을배열한다

2-4코드리뷰
코드리뷰의목적
__소스코드의공동소유
코드리뷰의실시방법
__코드리뷰에도적극적으로참가한다
__소스코드전체를보며코드리뷰를한다
__리뷰어는그룹에배정
__코드소유주의설정
도구에서할수있는지적은도구에맡긴다
__linter,formatter의활용
__도구의출력결과를풀리퀘스트에코멘트한다
작업을확인할수있는자리를조기에마련한다
__프로그래밍의시작과동시에풀리퀘스트를만든다
__부모브랜치를사용한코드리뷰와병합
건설적인커뮤니케이션을위한마음가짐
__리뷰어혹은리뷰이를이해시키려는노력
__풀리퀘스트템플릿
__협업작업으로소스코드개선
__코드리뷰방식재검토
__코멘트에피드백의뉘앙스포함하기
코드리뷰코멘트가생각나지않는상태를극복하는방법
__질문을통해배우는자세를가져라

2-5공동작업
하나의사용자스토리에많은관계자를끌어들인다
__스워밍(Swarming)
두명이협력하여개발을진행한다
__페어프로그래밍
__실시간공동편집기능이있는개발환경을사용한다
여러사람이협업하여개발을진행한다
__몹프로그래밍,몹워크

2-6테스트
검증(Verification)과확인(Validation)의관점
__검증(Verification)과확인(Validation)
__확인(Validation)은이해관계자와함께진행한다
테스트자동화관련기술프랙티스의차이
__자동테스트
__테스트우선
__테스트주도개발
테스트코드를오래운영하기위해할수있는일
__읽기쉬운테스트코드를작성
__테이블주도테스트
테스트코드의분량을적절하게유지
__필요한만큼의테스트코드준비하기
__돌연변이테스트

2-7장기적인개발/운용이가능한소스코드
평소개발부터소스코드품질에신경을쓴다
__장기적인개발/운용이가능한소스코드
소스코드를장기적으로개발/운용할수있도록한다
__리팩터링
__리아키텍처
원본소스코드보다더깔끔하게만들기
__보이스카우트규칙
__기능삭제하는방법익히기
소프트웨어의존관계를검토한다
__의존관계의자동갱신


[3장.‘CI/CD’에서활용할수있는프랙티스]
3-1지속적통합
반복적인빌드와테스트를통해문제를조기에발견한다
__지속적통합
로컬환경에서자주실행한다
__훅스크립트
문서의지속적갱신
__도구에의한문서자동생성

3-2지속적배포
시스템을항상배포가능한상태로유지
__지속적배포
CI/CD파이프라인구축
__CI/CD파이프라인
이용환경을브랜치전략과연계하여자동갱신한다
__브랜치전략과이용환경과의연계
브랜치보호를설정하고릴리스가능상태유지
__브랜치보호

3-3지속적테스트
자동테스트의바람직한테스트분량
__테스트피라미드
사용자환경에가까운시스템전체테스트
__E2E테스트자동화
개발과관련된모든공정에서테스트를시행한다
__지속적테스트


[4장.‘운용’에서활용할수있는프랙티스]
4-1배포/릴리스
배포전략선택
__롤링업데이트
__블루/그린배포(Blue/GreenDeployment)
__카나리아릴리스
데이터베이스스키마관리및마이그레이션
__데이터베이스스키마정의및관리
누구나쉽게배포/릴리스할수있도록정비한다
__배포도구
__ChatOps
정기릴리스를지키는릴리스트레인
__릴리스트레인(ReleaseTrain)


[5장.‘인식일치’에서활용할수있는프랙티스]

5-1관계자와의인식일치
관계자를모아목표와범위를맞춘다
__적절한관계자모으기/목표맞추기/범위맞추기
__유비쿼터스언어
__실제예에의한사양
__화제가줄어들때까지매일이야기하기
진행방식에대한인식일치
__불확실성이높은것부터시작하자
__통제할수있는사항은빨리결정한다
__통제할수없는사안에대한결정은최대한미룬다
진행상황에대한인식일치
__관계자의기대치를듣고인식을일치시킨다
__보고형식맞추기
__기술관행적용을위한여력확보하기

5-2개발안에서의인식맞추기
설계를사전에협의한다
__사전설계상담
리스크가있는사용자스토리는‘스파이크조사’
__스파이크조사
큰규모의개발은DesignDoc으로눈높이를맞춘다
__DesignDoc
5-3계획의지속적인수정
사용자스토리를작게나누기
__사용자스토리분할
__INVEST
사용자스토리를정리하여전망성을높인다
__사용자스토리의정기적인점검


[6장.‘팀협업’에서활용할수있는프랙티스]`

6-1팀의기본단위
팀으로일하기
__피처팀
피처팀이자주받는질문과오해들
__컴포넌트멘토임명하기
__회사조직과팀체제를맞추는방법

6-2속인화의해소
위험의징조'트럭번호=1'을피하자
__트럭번호
기술지도를작성하고속인화된기술을파악한다
__기술지도

6-3성과의측정
메트릭을극대화하는작용을피하자
__상관관계가있는여러메트릭조합보기
‘FourKeysMetrics’로팀성과측정하기
__FourKeysMetrics

6-4원활한커뮤니케이션을위한아이디어
필요할때직접소통하기
__그냥말하기
여행자가팀을떠돈다
__여행자
소리내어일하기
__WorkingOutLoud
원격근무를전제로한체계
__동기커뮤니케이션을유연하게도입
__WorkingAgreement
__현장을원격과동일한조건으로만들기
__협업도구활용

6-5인식을일치시키기위한워크숍
사용자관점에서우선순위를확인한다
__사용자스토리매핑
단시간에견적,실적에기반한진행상황을보여준다
__사일런트그룹핑
__번업차트
아이디어의탄생부터납품까지를단축한다
__가치흐름매핑

마치며
컬럼필자소개
저자·감수자소개

색인(Index)


[칼럼]
팀에서하나씩하나씩끝내자
페어프로그래밍의효과와영향
테스트주도개발에서는TODO리스트가테스트보다먼저
기술적부채-문제발견까지의시간과리스크를경영부문에설명한다
인프라구축을자동화하자
LoggingasAPIcontract
AI친화적인문서작성하기
개발과운영을함께생각하기
개발항목을간결하게유지하려면깨끗한코드
팀에활력을불어넣는목표설정
그라데이션으로생각하는12년간의애자일실천

출판사 서평

1장애자일개발을지원하는프랙티스
애자일개발의목표와프랙티스의관계,프랙티스를이해하는데도움이되는개념을소개합니다.

2장‘프로그래밍’에서활용할수있는프랙티스
프로그래밍방침,브랜치전략,코드리뷰,테스트등의공정에서필요한규칙을만드는것과팀원들간의긴밀한커뮤니케이션을위한기술프랙티스를소개합니다.

3장‘CI/CD’에서활용할수있는프랙티스
개발프로세스전반에걸쳐제품의품질을유지또는개선하기위해필요한지속적인전체통합과자동화방법을소개합니다.

4장‘운용’에서활용할수있는프랙티스
시스템을안정적으로운영하고애자일개발을지속하기위해필요한운용관련기술프랙티스를소개합니다.

5장‘인식일치’에서활용할수있는프랙티스
개발안팎의인식을일치시키기위한프랙티스와개발을진행하면서계획을재검토할수있는프랙티스를소개합니다.

6장‘팀협업’에서활용할수있는프랙티스
고객가치제공에적합한팀구성방법,팀간소통을원활하게하는프랙티스,이해관계자를참여시켜인식을일치시키는프랙티스를소개합니다.

[이런분들에게추천합니다]
-조직내에서애자일개발을추진하는담당자
-팀개발경험이적은주니어엔지니어
-개발현장과팀을책임지는기술책임자시니어엔지니어