애자일 소프트웨어 아키텍트의 길 (소프트웨어의 지속적인 설계를 통한 진화)

애자일 소프트웨어 아키텍트의 길 (소프트웨어의 지속적인 설계를 통한 진화)

$36.43
Description
아키텍처 설계자와 조직에게 고객의 요구를 만족하기 위한 지속적인 가치 흐름을 제공할 수 있도록 아키텍처를 점진적으로 개발하는 새로운 애자일 방식을 소개한다. 또한 애자일 아키텍처의 다양한 측면과 전통적인 아키텍처와의 차이에 관해 살펴본다. 책의 후반에서는 애자일 아키텍트의 책임, 그리고 애자일 업무 흐름에 맞춰 아키텍트의 위치를 적절히 조정하고 가치를 더할 수 있는 방법에 관해 살펴본다. 실제 예시로 아키텍처 의사 결정 백로그, 최종 책임 순간, 가치 전달, 변화를 위한 아키텍트 만들기, 데브옵스, 진화적인 협업과 같은 개념들을 익힐 수 있다.
저자

라제시RV

(RajeshRV)
20년이상경력의IT아키텍트로,다양한기술에풍부한경험을쌓았다.에미레이트그룹(EmiratesGroup)아키텍처부문의수장이며SAFe와애자일아키텍처프랙티스를도입해에미레이트그룹을고성과조직으로탈바꿈시켰다.
기술과아키텍처에대한열정으로오픈트래블플랫폼(OTP,OpenTravelPlatform)의아키텍처를설계했다.그결과에미레이트그룹은2011레드햇이노베이션어워드(RedHatInnovationAward)를수상했다.
저서로『스프링5.0마이크로서비스2/e』(에이콘,2018)가있으며,『ServiceOrientedJavaBusinessIntegration』(Packt,2008)을감수했다.

목차

1부.애자일세상에서의아키텍처

1장.애자일아키텍트의렌즈로들여다보기

2장.애자일아키텍처-애자일전달의근간
__참조자료
__애자일소프트웨어개발로의여행
____애자일소프트웨어개발
____린과애자일은다르다?
____애자일소프트웨어개발이주는5가지이익
__애자일개발아키텍처와전통적인아키텍처-과연모순인가?
____연속체로서의아키텍처
____전통적개발방식은초반에아키텍처를만드는노력을요구한다
__애자일아키텍처-애자일프랙티스를이용한아키텍처만들기
____속도와지속가능성의균형
____사전아키텍처를어느정도구현해야하는가?
__애자일아키텍처의원칙
____아키텍처는집단적노력을요구한다
____아키텍처는지속적이다
____아키텍처는린하며효율적이다
____조기에자주아키텍처를테스트하고학습한다
____아키텍처가기민함을가능케한다
__엔터프라이즈애자일프레임워크비교
____ScaledAgileFrameworks(SAFe)
____DisciplinedAgile(DA)
____Large-ScaleScrum(LeSS)
__애자일아키텍처성숙도측정하기
__스노우인더데저트의교훈
____애자일아키텍처도입시핵심문제우회하기
____애자일아키텍처프로세스흐름과포스터
__정리
__더읽을거리

2부.애자일에서의아키텍트의역할전환

3장.애자일아키텍트-성공의핵심
__참조자료
__아키텍트를둘러싼환경의도전이해하기
____너무많은역할이명확함을손상시킨다
____아키텍트들은전달을늦춘다
__자기조직화된팀들이아키텍트배제운동에찬성하는이유
____우연한아키텍트의탄생
__애자일에서도꼭필요한아키텍트-역할수행의주체
____애자일아키텍트-부재,자원,지정,전담
____애자일아키텍트의다양한역할
____애자일아키텍트가갖춰야할핵심기술
__애자일아키텍트의행동과의무
____애자일아키텍트의행동변화
____애자일아키텍트의도전적인의무
__다양한확장프레임워크에서의아키텍트의역할
____ScaledAgileFramework
____DisciplinedAgile
____LargeScaleScrum
__스노우인더데저트에서의교훈
__정리
__더읽을거리

4장.애자일엔터프라이즈아키텍트-전략과코드의연결
__참조자료
__린애자일엔터프라이즈아키텍처에서변화의필요성
____EA프레임워크는기업을설명하는데집중한다
____도시계획의메타포는더이상유효하지않다
____EA는아무목적없이운영한다
____현재상태를파고드는것은악이다
____EA는본래의도에서동떨어져있다
____가치를먼저보이는것은함정이다
____엔터프라이즈아키텍트는비기술적이다
__원칙과의무이해하기
____애자일엔터프라이즈아키텍트를위한성공원칙
____애자일엔터프라이즈아키텍트의의무
__EA저장소-사금문제
__엔터프라이즈아키텍트측정
__애자일프레임워크에서의엔터프라이즈아키텍트의역할
____SAFe에서의엔터프라이즈아키텍트의역할
____DA에서의엔터프라이즈아키텍트의역할
____LeSS에서의엔터프라이즈아키텍트의역할
__스노우인더데저트의엔터프라이즈아키텍트
____엔터프라이즈아키텍트프로파일
____포트폴리오흐름의이해
__정리
__더읽을거리

5장.애자일솔루션아키텍트-진화하는시스템의지속적설계
__참조자료
__솔루션아키텍트-애자일팀의일벌
____솔루션아키텍트의마인드셋-잠망경의전문가
____엔터프라이즈아키텍트와솔루션아키텍트의역할중첩
__가치를최대화하고흐름방해를제거한다
____비즈니스가치에서출발하기
____지속가능한품질에집중하기
____반려사이클줄이기
____리드타임최소화하기
____재작업줄이기
__솔루션아키텍트의의무
____의도적아키텍처개발하기
____창발적설계준비하기
____지속적진화를가능케하기
__솔루션아키텍트의성공측정하기
__정리
__더읽을거리

3부.성공적인애자일아키텍트가되기위한필수지식
6장.새로운일하는방식을통한가치전달
__참조자료
__비즈니스가치이해하기
____아키텍처의가치를보이기는어렵다
__아키텍처관련활동을비즈니스백로그와연결하기
__아키텍처의비즈니스가치결정하기
__우선순위에따른역량할당하기
__업무를투명하게나타내기
__개발보다한발앞서기
__실용주의마인드셋으로일하기
____최종책임순간이해하기
____최종무결성이용하기
____리스크주도및비용주도접근방식사용하기
____반점착성보장하기
__옵션을열린상태로유지하기
____가설기반솔루션이용하기
____실제옵션이론이용하기
____셋기반동시엔지니어링이용하기
__MVA를이용한조기가치전달하기
__기술부채관리하기
__정리
__더읽을거리

7장.패턴과테크닉을활용한기술적기민함
__기술적탁월함을통해기민함을증폭하기
____소프트웨어장인정신도입하기
____기술적기민함을통해품질향상하기
__패턴과테크닉을활용한기술적기민함만들기
__변화에대응하는아키텍처만들기
____단순함을통한기술적기민함주도하기
____설계에의한고립을통한진화
____레거시현대화아키텍처
__엔지니어링탁월함을통해좋은코드개발하기
____코딩원칙,기법,패턴적용하기
____좋은코딩프랙티스
____지속적인리팩터링
____12요소원칙
__엔터프라이즈통합이해하기
__테스트가능성을고려한개발하기
____테스트주도개발
__클라우드를활용해인프라스트럭처를소프트웨어처럼다루기
__풀스택진단을활용해모든것을모니터링하기
____점진적개선을통한산출물기반모니터링
____제품중심모니터링으로의이동
____관측가능한시스템구축하기
__정리
__더읽을거리

8장.데브옵스와지속적인전달을통한흐름가속화
__데브옵스문화포용하기
____데브섹옵스를이용한보안성개선하기
____사이트신뢰성엔지니어링과만나기
__지속적인전달을통한흐름활성화하기
____CD를통해얻을수있는이익
____지속적인전달을위한아키텍처만들기
____지속적인전달의효과측정하기
____레거시애플리케이션을위한지속적인전달구현하기
__지속적인통합도입하기
____개발및소스코드관리개선하기
____품질보증자동화하기
__자동으로운영환경에배포하기
____잠정출시를통해조기피드백받기
____피처플래그를사용해선택적으로피처를출시하기
__주문형으로출시하기
____카나리릴리스를활용해점진적으로출시하기
____A/B테스팅을활용해피드백을조기에수집하기
____주문형출시를위한이키텍트만들기
__설계를통한시스템보호하기
__정리
__더읽을거리

9장.품질속성을이용한품질아키텍처만들기
__소프트웨어품질이해하기
____시스템사고를통한품질개선하기
____구축하고적응하기전략을이용해점진적으로품질을적용하기
____품질을내재해낭비를제거하기
__품질속성모델도입하기
__품질속성을문서화하기
____확장된애자일접근방식을사용해품질속성구체화하기
____품질속성시나리오사용하기
__애자일소프트웨어개발에서품질수명주기이용하기
__품질속성발견하기와다듬기
____이해관계자들을품질속성에정렬시키기
____품질속성워크숍진행하기
____QAS다듬기및제시하기
__모델링과시뮬레이션
__아키텍처트레이드오프적용하기
____아키텍처트레이드오프분석기법사용하기
____솔루션아키텍처리뷰기법사용하기
__품질속성개발하기
__시스템품질평가하기
____품질확인을개발에통합하기
____피트니스기능사용하기
____웰아키텍티드프레임워크를이용해평가하기
__정리
더읽을거리

__10장.협업을통한린문서화
__문서화를통해지식유지하기
____문서화의목적을이해하기
____전통적인문서화방식의문제점
__린애자일문서화방식이용하기
____문서화를위한진화적인협업
____필요한만큼만최소한으로문서화한다
____어느정도의문서화가충분한가?
____문서화원칙지키기
__소프트웨어아키텍처문서화하기
____아키텍처문서화를위한다양한방법
____스노우인더데저터의문서화생태계
__모델기반소프트웨어엔지니어링적용하기
__정리
__더읽을거리

11장.린애자일거버넌스의조력자로서의아키텍트
__아키텍처거버넌스이해하기
____전통적인거버넌스의문제점
__린애자일거번스를이용해기민함제공하기
____린애자일거버넌스포용하기
____린애자일거버넌스의원칙
____린거버넌스의이점
__자율성과기민함의균형이루기
____의사결정의탈중앙화수준결정하기
____골디락스거버넌스구현하기-사례연구
__아키텍처의사결정문서화하기
__심리적안전함보장하기
__아키텍처의사결정의품질측정하기
__정리
__더읽을거리

4부.개인적특징과조직적영향

12장.조직적기민함만들기
__비즈니스기민함과IT기민함의관계만들기
____비즈니스와IT의가치흐름이해하기
__IT에서의가치흐름개선하기
__가치중심으로사람을조직하기
____조직과팀을만들어야할필요성확인하기
____흐름을식별하고분해된흐름에따라팀을조직하기
____시스템을흐름에할당하기
____흐름팀에자율성을부여하기
____역량중심팀vs.흐름중심팀
____팀조직화검증하기
__흐름팀안에서의팀구조화하기
__실천커뮤니티만들기
__차세대IT로이동하기
__정리
__더읽을거리

13장.문화와리더십특성
__변화의필요성이해하기
__고성과조직의문화살펴보기
__고성과팀의행동이해하기
__올바른리더십선택하기
__아키텍트에게필요한개인적특성
____대가를바라지않는전폭적인지원
____존중,평등,겸손
____웰빙관리를위한마인드풀

출판사 서평

◈이책에서다루는내용◈

◆애자일개발에서아키텍트의의무는무엇인지이해한다.
◆도메인주도설계와마이크로서비스같은아키텍처스타일을이해한다.
◆전통적인아키텍처의문제점과솔루션개발방법을이해한다.
◆가치와데이터주도아키텍처의원칙을이해한다.
◆아키텍트의관점에서데브옵스와지속적인전달을발견한다.
◆린애자일문서화와거버넌스를도입한다.
◆개인적특성,대인관계특성을개발한다.
◆조직적차원의기민함을달성하기위한트랜스포메이션을찾아내고이끈다.

◈이책의대상독자◈

현재애자일개발프로젝트를진행중이거나애자일소프트웨어전달업무를수행하고자하는아키텍트를위한책으로,특정한방법론에국한되지않는다.애자일아키텍처전략과린애자일마인드셋을바탕으로애자일아키텍트의역할을이해하고자하는시니어개발자또는아키텍트가되기위한여정에이제막들어선이들에게도움이될것이다.

◈이책의구성◈

1장,‘애자일아키텍트의렌즈로들여다보기’에서는이책을더욱쉽게이해할수있도록프레임워크와탐색도구를제공한다.
2장,‘애자일아키텍처-애자일전달의근간’에서는애자일아키텍처의개념과원리를소개하고이를전통적인아키텍처와비교한다.
3장,‘애자일아키텍트-성공의핵심’에서는애자일아키텍트의역할과책임을강화하는다양한메타포를소개한다.
4장,‘애자일엔터프라이즈아키텍트-전략과코드의연결’에서는애자일소프트웨어개발에서의현대엔터프라이즈아키텍트의의무를살펴본다.
5장,‘애자일솔루션아키텍트-진화하는시스템의지속적설계’에서는애자일소프트웨어
개발프로젝트에서솔루션아키텍트가활용할수있는운영기법들을알아본다.
6장,‘새로운일하는방식을통한가치전달’에서는애자일전달환경에서성공하기위해
아키텍트에게필요한테크닉을살펴본다.
7장,‘패턴과테크닉을활용한기술적기민함’에서는기술적기민함을달성하기위한다양한패턴과프랙티스들을소개한다.
8장,‘데브옵스와지속적인전달을통한흐름가속화’에서는데브옵스와지속적인전달에서의아키텍트의중요성을살펴본다.
9장,‘품질속성을이용한품질아키텍처만들기’에서는팀이고객에게고품질의제품을전달하기위해사용할수있는다양한품질모델과도구및접근방식을알아본다.
10장,‘협업을통한린문서화’에서는문서화의대안적인접근방식들을소개하고,꼭필요한문서의개념을살펴본다.
11장,‘린애자일거버넌스의조력자로서의아키텍트’에서는애자일소프트웨어개발에서거버넌스(Governance)를둘러싸고있는미신을타파하고린거버넌스원칙을소개한다.
12장,‘조직적기민함만들기’에서는업무흐름에맞게조직을설계해야하는필요성에관해살펴본다.
13장,‘문화와리더십특성’에서는아키텍트로서가져야할새로운개인적특징과대인관계적특징을소개하고변화의필요성에관해알아본다.

◈옮긴이의말◈

소프트웨어개발에서아키텍처라는용어는매우넓은의미로사용되고있어명확하게정의하기어렵습니다.소프트웨어개발에서의아키텍처는시스템아키텍처와솔루션아키텍처로나눌수있습니다.위키백과에서시스템아키텍처의정의를찾아보면다음과같이정의하고있습니다.
‘시스템의구조,행위,더많은뷰를정의하는개념적모형이다.시스템목적을달성하기위해시스템의각컴포넌트가무엇이며어떻게상호작용하는지,정보가어떻게교환되는지를설명한다.’
또한솔루션아키텍처는다음과같이정의하고있습니다.
‘특정한해결책문맥에서전달되는시스템의아키텍처를정의하고기술하는것으로,전체시스템또는특정한부분의설명만아우를수있다’.
결국아키텍처는시스템이속한문맥상에서해당시스템의전체적인구조및시스템안에서의정보교환(즉,커뮤니케이션)에관한정의입니다.그리고이를수행하는사람이바로아키텍트입니다.아키텍트는그저시스템의요구사항을정리하거나적절한다이어그램을그리는일을하는것이아니라시스템의청사진을그려내야합니다.
이책은특정한방법론에국한되지않고,애자일소프트웨어아키텍트업무를수행하거나그역할을이해고자하는분들을위한책입니다.애자일개발프랙티스에관한기본지식,소프트웨어아키텍처에관한지식이뒷받침된다면아키텍트가되기위한여정에들어선분들에게큰인사이트를줄것입니다.