다양한 분야와 산업에 종사하는 독자들이 이 책으로부터 많은 점을 배울 수 있을 것이다. 개인 생산성을 향상시키고자 하는 개발자들은 업무 진척을 방해하는 일반적인 문제들을 극복하기 위한 효과적인 전략을 배울 수 있다. 또한 프로그래머와 팀의 생산성 측정을 위한 내부 프로그램을 만들고자 고민 중인 조직은 생산성 측정에 있어 업계와 연구원들로부터 모범 사례를 살펴볼 수 있다. 또한 연구원들은 이 책의 개념적인 프레임워크와 풍부한 문헌들을 활용해 새로운 연구 방향을 효과적으로 추구할 수 있다.
Contents
1장. 생산성이 10배 이상이라고 알려진 전설의 프로그래머
__작업 시간 변동성 데이터
__동질성 유지하기
__작업 시간 표의 실제 의미 파악하기
__한 가지 프로그래밍 언어만 고집하지 않은 경우
__기준 집단에 대한 의문
__이것은 개발 노력에 관한 것만은 아니다
__속도가 느린 프로그래머들이 더 신중할까?
__부차적인 요소가 중요할 수 있다
__생산성의 정의에 관한 재논의
__실제 사람들은 어떻게 일을 할까?
__그래서 어떻게 해야 하나?
__핵심
__참고 문헌
2장. 한 가지 지표로는 생산성을 측정할 수 없다
__각 프로그래머의 생산성을 측정하는 것은 과연 무엇이 잘못됐는가?
__왜 사람들은 개발자의 생산성을 측정하고 싶어할까?
__한 가지 생산성 지표만 사용하는 것이 왜 잘못될 수밖에 없을까?
____생산성은 넓은 범위의 개념이다
____한 가지 지표로 단순화하거나 한 가지 측면의 구성 요소들을 조합하는 것은 어렵다
____교란 변수들
__대신 구글에서 무엇을 했나?
__핵심
__참고 문헌
3장. 생산성을 측정해서는 안 되는 이유
__의도치 않은 결과
__생산성에 관한 설명
__변화에 대응하기
__측정자 역할을 하는 관리자
__핵심
4장. 소프트웨어 엔지니어링에서 생산성 정의하기
__소프트웨어 생산성의 짧은 역사
__일반 문헌 용어
____생산성
____수익성
____성과
____효율성과 효과성
____품질의 영향
__소프트웨어 생산성에 대한 통합된 정의
__요약
__핵심
__감사의 말
__참고 문헌
5장. 소프트웨어 개발 생산성 프레임워크
__소프트웨어 개발의 생산성 측면
____속도
____품질
____만족도
__렌즈
__생산성 프레임워크 시작! 목표, 질문, 지표를 구체화하기
____첫 번째 예: 개입을 통한 생산성 개선
____두 번째 예: 미팅이 어떤 식으로 생산성에 영향을 미치는지 이해하기
__주의 사항
__핵심
__참고 문헌
6장. 개인, 팀, 조직, 시장: 생산성의 네 가지 렌즈
__개인
__팀
__조직
__시장
__전 영역에 걸친 생산성
__핵심
__참고 문헌
7장. 지식 노동의 관점에서 바라본 소프트웨어 생산성
__지식 노동의 간단한 역사
__생산성을 측정하기 위한 기법
____결과 중심 측정 기법
____프로세스 중심 측정 기법
____사람 중심 측정 기법
____다중 요소 기반 측정 기법
__생산성에 영향을 주는 요인
__소프트웨어 개발자 vs 지식 노동자: 비슷한가 또는 다른가?
__요약
__핵심
__참고 문헌
8장. 생산성에 영향을 주는 요인: 체크리스트
__소개
__생산성 요인 연구의 간단한 역사
__기술적인 요인 목록
____제품 요인
____프로세스 요인
____개발 환경
__소프트 요인 목록
____회사 문화
____팀 문화
____개인의 기술과 경험
____업무 환경
____프로젝트
____요약
____핵심
____감사의 말
____부록: 문헌 조사 방식
____참고 문헌
9장. 개입이 어떤 식으로 생산성에 영향을 미치는가?
__소개
__통제 실험
____실험의 목적은 무엇인가?
____전형적인 개입 실험
____개입으로 인해 지장이 초래되는 정도를 어떻게 측정할까?
____개입은 실수를 초래한다
____실제 환경에 적용해 보기
____요약 - 통제 실험
__인지 모델
____인지 모델은 무엇인가?
____인지 모델이 개입이 생산성에 미치는 영향에 관해 무엇을 예측할 수 있는가?
____요약: 인지 모델
__관찰 연구
____일터에서의 관측 연구
____개입의 장점과 단점
____스트레스, 개인 간 차이, 개입
____생산성
____개입을 처리하기 위한 전략
____요약: 관찰 연구
__주요 시사점
__핵심
__감사의 글
__참고 문헌
10장. 소프트웨어 엔지니어의 행복과 생산성
__업계가 개발자들의 행복을 중시해야 하는 이유
__행복이란 무엇이며 어떻게 측정할 수 있을까?
__행복하고 생산적인 개발자들의 과학자 근거
____개발자들은 얼마나 행복한가?
____무엇이 개발자를 불행하게 만드는가?
____개발자가 행복하거나 불행할 때 무슨 일이 일어나는가?
____행복한 개발자가 더 생산성이 높은가?
__행복이 다른 결과물에 미치는 잠재적인 영향
__미래엔 어떻게 될까?
__추가 참고 목록
__핵심
__참고문헌
11장. 애자일의 어두운 면: 사람을 인간이 아닌 자산으로 인식
__애자일 선언문 재논의
__글로벌 아웃소싱 환경에서의 애자일
__생산성을 높이기 위한 업무 추적
__생산성을 모니터링하기 위한 일일 스탠드업 미팅
__스트레스 가득한 업무 환경
__생산성 비용
__소프트웨어 엔지니어링의 생산성에 관한 미결 문제들
__핵심
__감사의 글
__참고문헌
12장. 생산성에 관한 개발자의 인식 차이
__생산성 정량화 - 측정 vs 인식
__소프트웨어 개발자의 생산성 인식 연구
__작업 전환 비용
__개발자에게 생산적인 하루는 어떤 모습일까?
__개발자마다 생산성을 정량화하기 위한 다른 측정치를 기대한다
__생산성에 대한 인식을 기준으로 소프트웨어 개발자의 특성 구분하기
__개발자 생산성을 향상하기 위한 기회
__핵심
__참고 문헌
13장. 인간 중심으로 생산성을 높이기 위한 방법
__핵심
__참고 문헌
14장. 바이오메트릭 센서를 사용한 생산성 측정
__측정을 위한 생산성 정의
__눈으로부터 집중에 관해 알 수 있는 것
__뇌전도를 활용한 주의 관찰
__반추에 빠진 정도 측정하기
__시사점
__핵심
__참고 문헌
15장. 팀 활동 전반에 대한 파악이 개발자 생산성에 관한 인식에 영향을 미치는 방식
__소개
__파악과 생산성
__협업 소프트웨어 개발을 위한 파악 기능
__파악 정보를 숫자로 종합하기
__파악 정보를 텍스트 형태로 종합하기
__생산성과 팀 활동에 대한 파악에 관한 재검토
__핵심
__참고 문헌
16장. 소프트웨어 엔지니어링 대시보드: 유형, 위험, 미래
__소개
__소프트웨어 엔지니어링의 대시보드
____개발자 활동
____팀 성과
____프로젝트 모니터링과 성과
____커뮤니티 상태
____요약
__대시보드 사용의 위험성
__소프트웨어 엔지니어링 관점에서 본 대시보드
__핵심
__참고 문헌
17장. 생산성의 업무-출력 구성 요소를 측정하기 위한 COSMIC 방법
__기능적 크기의 측정
__COSMIC 방법
__COSMIC 모델에 관한 논의
__COSMIC 크기와 개발 노력 간의 상관관계
__자동화된 COSMIC 크기 측정
__결론
__핵심
__참고 문헌
18장. 벤치마크: 사과와 사과 비교하기
__소개
__표준 사용
____기능적 크기 측정
__벤치마크 목적
__벤치마크 표준 방법
__정규화
__벤치마크 데이터 공급원
____ISBSG 리포지터리
____내부 벤치마크 데이터 리포지터리
____벤치마크 활용 예
__잘못된 동기 부여
__요약
__핵심
__참고 문헌
19장. 생산성을 높이기 위한 소프트웨어 개발 낭비 제거
__소개
__소프트웨어 개발 낭비 분류 체계
____잘못된 기능 또는 제품 만들기
____잘못된 백로그 관리
____재작업
____과도하게 복잡한 해결책
____불필요한 인지 부하
____심리적 괴로움
____지식 손실
____대기/멀티태스킹
____효과적이지 못한 의사소통
____애자일 등장 이전 개발 방법론을 사용한 프로젝트에서 발생하는 추가적인 낭비
__논의
____모든 문제가 낭비인 것은 아니다
____낭비 줄이기
__결론
__핵심
__참고 문헌
20장. 조직 성숙도: 생산성에 영향을 주는 코끼리
__배경 지식
__프로세스 성숙도 프레임워크
__생산성과 품질에 대한 성숙도의 영향
__애자일 개발 및 운영 환경에 맞게 성숙도 실천법 수정하기
__요약
__핵심
__참고 문헌
21장. 짝 프로그래밍이 효과적인가?
__소개 - 매우 생산적인 프로그래밍
__짝 프로그래밍 연구
__지식 업무로서 소프트웨어 개발
__산업 현장에서 짝 프로그래밍 시 실제 중요한 점들은 무엇일까?
____짝 유형 A: 시스템 지식 우위
____짝 유형 B: 집단 시스템 지식 격차
____쌍 유형 C: 상호 보완적인 지식
__다시 한번 짝 프로그래밍은 효과적인가?
__핵심
__참고문헌
22장. 직장에서 자가 모니터링을 위한 개발자의 핏빗 사용
__우리의 삶을 정량화하기 위한 자가 모니터링
__소프트웨어 개발자 업무 자가 모니터링
__개인화를 통한 다양한 개별적인 요구 사항 지원하기
__효율성에 대한 개발자의 인식을 높이는 자가 보고
__개발자의 자기 인식을 높이는 업무에 대한 회고
__생산적인 행동 변화를 이끄는 조치 가능한 깨달음
__팀 인식을 높이고 개인정보 보호 문제를 해결하기
__직장에서의 지속 가능한 행동 유도
__핵심
__참고 문헌
23장. FlowLight를 이용해 업무 개입 줄이기
__업무 개입으로 인한 손실 비용
__플로라이트: 언제 개입해도 될지 알려 주는 등
__플로라이트 평가 및 유용성
__플로라이트의 핵심 성공 요인
____사용자에 대한 관심
____단순성 중시
____개인정보 보호에 대한 관심
____정확도가 아닌 가치에 집중
____사용자들의 의도치 않은 활용 방식
__요약
____플로라이트 설치
__핵심
__참고 문헌
24장. 정보 흐름을 개선을 통한 생산적인 소프트웨어 개발
__마이린: 개인 소프트웨어 개발자를 위한 정보 흐름 개선
__태스크톱 싱크: 개발 팀을 위한 정보 흐름 개선
__태스크톱 인티그레이션 허브: 소프트웨어 개발 조직을 위한 정보 흐름 개선
__깨달은 점
__핵심
__참고 문헌
25장. 생산성을 위한 잠재적인 툴 역할을 하는 마음챙김
__마음챙김 정의
__생산성을 위한 마음챙김
__마음챙김의 인지적 장점
__마음챙김과 감정적 지능
__마음챙김의 함정
__마음챙김 휴식
__결론
__핵심
__참고 문헌
Author
케이틀린 샤도우스키,토마스 짐머만,김무항
캘리포니아 마운틴 뷰(California Mountain View)의 구글(Google)에 근무하는 소프트웨어 엔지니어다. 구글에서 개발자들의 작업 흐름을 판단하고 개선하는 일을 한다. 또한 크롬 메트릭스(Chrome Metrics) 팀의 관리자로서 크롬 개발자들이 데이터를 기반으로 한 결정을 할 수 있도록 돕는다. 이전에는 구글에서 정적 분석을 의미 있게 만들고자 트라이코더(Tricorder) 프로그램 분석 플랫폼을 만들었다. 그와 더불어 공학 생산성 연구 팀(Engineering Productivity Research team)을 꾸려서 개발자들이 어떻게 그들의 시간을 소비하고 어떻게 하면 프로그래머가 효율적일 수 있을지에 대한 실질적인 조언을 했다. 저명한 소프트웨어 엔지니어링 위원회와 프로그래밍 언어 협회(ICSE, ESEC/FSE, OOPSLA, PLDI)의 위원이다. 산타 크루즈(Santa Cruz)에 있는 캘리포니아 대학교(University of California)에서 박사 학위를 받았는데, 그곳에서 프로그래밍 언어와 소프트 엔지니어링, 인간과 컴퓨터의 상호작용에 관한 폭넓은 주제를 연구했다.
캘리포니아 마운틴 뷰(California Mountain View)의 구글(Google)에 근무하는 소프트웨어 엔지니어다. 구글에서 개발자들의 작업 흐름을 판단하고 개선하는 일을 한다. 또한 크롬 메트릭스(Chrome Metrics) 팀의 관리자로서 크롬 개발자들이 데이터를 기반으로 한 결정을 할 수 있도록 돕는다. 이전에는 구글에서 정적 분석을 의미 있게 만들고자 트라이코더(Tricorder) 프로그램 분석 플랫폼을 만들었다. 그와 더불어 공학 생산성 연구 팀(Engineering Productivity Research team)을 꾸려서 개발자들이 어떻게 그들의 시간을 소비하고 어떻게 하면 프로그래머가 효율적일 수 있을지에 대한 실질적인 조언을 했다. 저명한 소프트웨어 엔지니어링 위원회와 프로그래밍 언어 협회(ICSE, ESEC/FSE, OOPSLA, PLDI)의 위원이다. 산타 크루즈(Santa Cruz)에 있는 캘리포니아 대학교(University of California)에서 박사 학위를 받았는데, 그곳에서 프로그래밍 언어와 소프트 엔지니어링, 인간과 컴퓨터의 상호작용에 관한 폭넓은 주제를 연구했다.