소프트웨어 개발의 진주 (60개의 레슨으로 배우는 소프트웨어 개발의 핵심 지식과 실전 경험)

소프트웨어 개발의 진주 (60개의 레슨으로 배우는 소프트웨어 개발의 핵심 지식과 실전 경험)

$25.31
Description
요구사항부터 설계, 프로젝트 관리, 문화와 팀워크, 품질, 프로세스 개선까지 소프트웨어 개발 실무 능력 향상을 위한 모든 것을 담았다

경험은 좋은 스승이지만 느리고 고통스럽기도 하다. 조개가 모래알과 같은 이물질에 자극되어 값진 진주를 만들듯이, 저자는 50여 년 동안의 소프트웨어 개발 경력에서 마주친 장애물들로부터 요구사항, 설계, 프로젝트 관리, 문화와 팀워크, 품질, 프로세스 개선 등에 대한 60개의 레슨을 이끌어냈다. 이를 통해 각자의 역할, 업종, 기술 또는 방법론에 관계없이 앞으로 프로젝트를 진행하면서 겪게 될 고통스러운 시간과 시행착오를 줄일 수 있을 것이다.
저자

칼위거스

(KarlWiegers)
ProcessImpact의수석컨설턴트로서150여개의조직을대상으로소프트웨어개발및요구사항엔지니어링에대한교육과컨설팅에50년이상몸담아왔다.저서로는캔디스호캔슨과함께쓴《소프트웨어요구사항의정수》(제이펍,2024)가있고,조이비티와함께쓴《소프트웨어요구사항(제3판)》(위키북스,2017)으로는미국기술커뮤니케이션학회로부터우수상을수상했다.

목차

옮긴이머리말xi
추천사xvi
감사의글xxi
베타리더후기xiii
추천서문xix

CHAPTER1고통스러운경험을통한학습1
나의관점2
이책에관하여3
용어특기사항5
기회활용5

CHAPTER2요구사항에관한레슨7
요구사항개요7
_다양한유형의요구사항7/요구사항엔지니어링의하위도메인9
_비즈니스분석가의역할10/요구사항은프로젝트의기반이다10
레슨1|요구사항을정확하게알아내지못하면프로젝트의나머지부분을잘해도소용없다12
_정확한요구사항,그러나언제?13/정확한요구사항,그러나어떻게?13
레슨2|요구사항개발에따른핵심결과물은공유된비전과이해다14
레슨3|요구사항에는모든프로젝트이해당사자의관심사가있다17
_이해당사자분석18/누가결정하는가?20/우리는모두같은편이다21
레슨4|요구사항관련해서는용도중심의접근법이기능중심의접근법보다더좋게고객의요구를충족한다21
_왜과잉기능을?21/용도를우선하기22/사용자스토리의우려사항23/용도가지배한다!25
레슨5|요구사항개발은반복을필요로한다25
_점진적인세부사항개선26/새로부각된기능적요구사항27/새로부각된비기능적요구사항28
레슨6|애자일요구사항은그밖의요구사항과다르지않다28
_역할과책임29/용어29/문서의상세함29/활동시기30/결과물의형태31/우선순위결정시기31/실제로차이가있을까?32
레슨7|지식을기록하는데따르는비용은지식을습득하는비용에비해적다33
_기록에대한두려움33/문서로기록된의사소통의장점34/올바른균형36
레슨8|요구사항개발의가장중요한목적은명확하고효율적인의사소통이다37
_다수의독자,다수의요구38/표현기법선택하기39/대화할수있을까?41
레슨9|요구사항품질은보는사람의관점에따라다르다41
_많은요구사항독자들42/요구사항품질체크리스트43
레슨10|요구사항은허용가능한위험수준범위에서구축이진행되는데충분한것이어야한다44
_세부사항의관점44/어느정도면충분할까?45
레슨11|요구사항은단순히수집하는것이아니다46
_수집하기vs.도출하기46/요구사항도출시기47/도출컨텍스트48/도출방법48/기반만들기50
레슨12|요구사항도출은고객의음성이개발자의귀에잘들릴정도로가까운거리에서해야한다50
_의사소통경로51/제품대변인52/요구사항의사소통의다른경로52/괴리해소하기53
레슨13|흔히사용되는두가지요구사항도출관례가텔레파시와투시력이다.이방법들은효과가없다54
_요구사항을알아내자!54/명시적인표현55/텔레파시가실패하다56
레슨14|많은사람들이모이면요구사항을정확히어떻게표현할지합의하기는커녕방에불이나서탈출하는데도동의할수없다57
_주목하세요!57/구조에나서는진행자58/집중,집중,집중59/그룹외부에서도움받기60
레슨15|포함될기능을결정할때데시벨우선순위를정하지말자61
_우선순위지정방법61/우선순위지정기준62/목소리크기를넘어서는분석63
레슨16|문서화되고합의된프로젝트범위없이어떻게범위증가를알수있을까?63
_유령같은범위증가64/범위를기록하는방법65/이것은범위내에있나요?66/모호한요구사항=모호한범위66

CHAPTER3설계에관한레슨69
설계개요69
_설계의다른측면들70/좋은설계72
레슨17|설계에는반복이필요하다74
_프로토타입의위력75/개념-증명75/실물모형76
레슨18|더높은추상화수준에서반복하는것이더저렴하다77
_상세한것으로부터한걸음물러나기78/빠른시각적반복79/쉬운반복81
레슨19|올바르게사용하기는쉽지만잘못사용하기는어렵게제품을만들자82
_사용자가실수할수없도록만들자83/사용자가실수하기어렵게하자84/오류를쉽게복구하게하자84/그런일이생기게내버려두자84
레슨20|모든바람직한품질속성을최적화할수는없다85
_품질의관점85/품질속성명시하기87/품질을위한설계88/아키텍처속성과품질속성89
레슨21|힘들게재코딩하는것보다조금이라도설계하는것이가치가있다89
_기술부채와리팩토링90/아키텍처결함91
레슨22|대부분의시스템문제는인터페이스에서생긴다92
_기술적인인터페이스문제들93/입력데이터검증95/사용자인터페이스문제들96/인터페이스전쟁97

CHAPTER4프로젝트관리에관한레슨98
프로젝트관리개요98
_인력관리99/요구사항관리99/기대관리99/작업관리100/약속관리100/위험관리100/의사소통관리100/변경관리101/자원관리101/의존성관리101/계약관리101/공급자관리102/장벽제거관리하기102
레슨23|작업계획은마찰을고려해야한다103
_작업전환과몰입104/유효시간106/프로젝트마찰의다른원인107/암시적영향을예상하기107
레슨24|다른사람에게섣불리추정치를제시하지말자108
_성급한예측109/불확실성에대한두려움110
레슨25|빙산은항상처음보이는것보다더크다110
_컨틴전시버퍼111/위험한가정113/빙산계약115/버퍼의묘미115
레슨26|자신의주장을뒷받침할데이터가있으면협상에서유리한위치에설수있다116
_그수치는어디서구했어요?116/원칙적협상118
레슨27|추정치를기록하고실제발생한것과비교하지않으면추정이아닌추측에그칠수밖에없다118
_과거데이터의여러출처119/소프트웨어메트릭120
레슨28|받는사람이듣고싶어하는말을근거로견적을변경하지말자122
_목표대추정치122/조정시기123
레슨29|임계경로를피하자124
_임계경로정의124/방해되지않게하기125
레슨30|작업은전체적으로완료또는완료되지않음중하나다.부분적인완료는없다126
_‘완료’는무엇을의미할까?126/부분점수는없다128/요구사항상태별추적129/완성도가가치로이어진다130
레슨31|프로젝트팀은범위,일정,예산,인원,그리고품질의다섯가지관점중하나이상에대해유연성이필요하다130
_다섯가지프로젝트관점130/우선순위협상하기132/유연성다이어그램133/다섯가지관점적용하기134
레슨32|프로젝트의위험을통제하지못하면,위험이우리를통제할것이다134
_위험관리란무엇인가?135/소프트웨어위험식별하기135/위험관리활동137/항상걱정해야할것이있다139
레슨33|고객이항상옳은것은아니다139
_‘옳지않다’는것140/견해존중하기142
레슨34|우리는소프트웨어에서너무많은가식행위를한다143
_상상의나라에살기143/비이성적기대감144/사람들이하는게임145

CHAPTER5문화와팀워크에관한레슨146
문화와팀워크개요146
_믿음지키기147/문화적일치148/문화의구체화149/성장하는그룹150
레슨35|지식은제로섬이아니다152
_지식독점152/무지를바로잡기153/지식전수확대154/건강한정보문화156
레슨36|다른사람들이아무리많은압력을가하더라도,우리가이행할수없는약속은절대하지말자156
_약속,약속157/살다보면그럴수있지158
레슨37|교육과더나은실무사례가없다면생산성향상은꿈도꾸지말자159
_무엇이문제인가?160/몇가지가능한해결책160/도구및교육162/개별개발자의성과차이162
레슨38|사람들은그들의권리에관해많이얘기하지만,모든권리의이면에는책임이따른다164
_고객권리및책임예165/개발자권리및책임예165/프로젝트관리자또는스폰서권리및책임예166/자율팀권리및책임예166/위기전의우려166
레슨39|물리적분리로인해의사소통과협업이저해되지는않는다167
_공간과시간의장벽167/가상팀:분리의극치169/문,문,문을위한나의왕국!169
레슨40|소규모공동작업팀에적합한비공식적인접근방식은잘확장되지않는다171
_처리체계와도구172/전문화의필요성172/의사소통충돌173
레슨41|새로운업무방식으로전환할때조직의문화를바꾸는어려움을과소평가하지말자174
_가치,행동,그리고실무사례174/애자일과문화의변화176/내면화177
레슨42|비합리적인사람들을대할때는어떤공학이나관리기법도소용이없다178
_약간의가르침을시도해보자179/누가선을넘었나요?179/유연성을위하여180

CHAPTER6품질에관한레슨182
품질개요182
_품질의정의182/품질계획183/품질의다양한관점185/품질을내재하기185
레슨43|소프트웨어품질에대해서라면지금지불하거나또는나중에더지불할수있다187
_수리비용증가곡선188/발견이더어렵다190/초기품질조치190
레슨44|고품질은자연스럽게생산성향상으로이어진다193
_두프로젝트이야기193/재작업의재앙195/품질비용196
레슨45|조직은소프트웨어를제대로구축할시간이없지만나중에그것을해결할수있는자원을찾는다197
_왜처음이아닐까?198/1억달러신드롬199/균형잡기199
레슨46|크랩갭을조심하자200
_크랩갭예200/소프트웨어의크랩갭시나리오201
레슨47|상사나고객이나쁜일을하도록부추기지말자202
_권력행사203/조급한코드작성203/지식부족203/그늘진윤리205/절차회피205
레슨48|고객이아닌동료가결함을찾도록노력하자206
_동료검토의이점206/다양한소프트웨어검토207/검토의문화적영향209
레슨49|소프트웨어사람들은도구를좋아하지만,도구를가진바보가더큰바보다210
_도구는가치를추가해야한다211/도구는현명하게사용해야한다212/도구는프로세스가아니다213
레슨50|오늘의‘당장출시해야하는’개발프로젝트는내일의유지보수악몽이다214
_기술부채와예방유지보수215/의식적인기술부채215/현재또는미래의품질을위한설계216

CHAPTER7프로세스개선에관한레슨218
프로세스개선개요218
_소프트웨어프로세스개선이란?218/프로세스를두려워하지말자219/SPI를정착시키기220
레슨51|‘비즈니스위크를추종하는경영’을주의하자221
_먼저문제,그다음에해결책222/근본원인분석예223/진단이치료로이어진다225
레슨52|“내게무슨득이되지?”라고묻지말고,“우리에게어떤이득이있지?”라고묻자226
_팀이득226/개인적이득228/팀을위한희생229
레슨53|사람들이일하는방식을바꾸는데
_가장좋은동기가되는것은고통이다229/고통은아프다!230/보이지않는고통231
레슨54|조직을새로운작업방식으로이끌때는부드럽게압박하되끊임없이가하자232
_변화로이끌기232/상향관리234
레슨55|이전의모든전문가가이미저지른실수를일일이되풀이할시간은없다235
_학습곡선23

출판사 서평

프레더릭브룩스의고전《MythicalMan-Month》와견줄만하다!

칼위거스의이책은엄청난통찰력을준《MythicalMan-Month》와비슷한맥락이지만,범위가더넓고최근기술까지포함하고있다.
-MeilirPage-Jones,WaylandSystemsInc.수석비즈니스분석가

저자가이책을쓴이유는,이책에수록된것과동일한레슨들을독자가따로힘들게축적할필요없도록하기위해서다.이책의레슨들을읽었던경험많은소프트웨어엔지니어는이렇게논평하였다.
“여기수록된모든레슨은하나하나마다해당레슨과관련된고통의흔적이담겨있다.”

이책에는소프트웨어개발과관리에관한59개의레슨이포함되어있다.모든레슨은6개부문으로분류되어있고각부문은한챕터(2장부터7장까지)로구성되었다.
2장.요구사항(requirement)
3장.설계(design)
4장.프로젝트관리(projectmanagement)
5장.문화와팀워크(cultureandteamwork)
6장.품질(quality)
7장.프로세스개선(processimprovement)
마지막으로8장에서는일반적인레슨(레슨60,“모든것을한번에바꿀수는없다”)을제공하며,부록에서는모든레슨의참고자료를제공한다.

주요내용
■현실문제에대한공유된비전과이해를얻기위해요구사항을명확히한다.
■올바른기능과품질속성을구현하고진화할수있도록견고하게설계한다.
■흔히접하는프로젝트관리의함정을예측하고방지한다.
■처음부터품질을일순위로고려하여현실적으로계획한다.
■프로세스개선을통해원하는비즈니스성과를달성한다.