책 소개
요약
다양한 분야와 산업에 종사하는 독자들이 이 책으로부터 많은 점을 배울 수 있을 것이다. 개인 생산성을 향상시키고자 하는 개발자들은 업무 진척을 방해하는 일반적인 문제들을 극복하기 위한 효과적인 전략을 배울 수 있다. 또한 프로그래머와 팀의 생산성 측정을 위한 내부 프로그램을 만들고자 고민 중인 조직은 생산성 측정에 있어 업계와 연구원들로부터 모범 사례를 살펴볼 수 있다. 또한 연구원들은 이 책의 개념적인 프레임워크와 풍부한 문헌들을 활용해 새로운 연구 방향을 효과적으로 추구할 수 있다.
이 책의 구성
이 책은 다섯 가지 주제로 구성된다. 우선, 생산성을 측정할 때 어려운 점을 이야기하면서 시작할 것이다. 다음으로 생산성을 각 구성 요소로 세분화하는 데 초점을 맞춰 이야기를 진행하고, 생산성 요소를 규명하고 생산성에 대한 다른 관점을 부여할 수 있도록 내용을 이어갈 것이다. 생산성은 보통 측정하기 어렵다. 하지만 생산성의 일부 측면을 측정하는 데 집중한 특정 사례 연구도 포함했다. 마지막으로 생산성을 증대하는 데 효과가 있는 지침에 관한 이야기로 책을 끝낼 것이다.
목차
목차
- 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장. 생산성을 위한 잠재적인 툴 역할을 하는 마음챙김
- 마음챙김 정의
- 생산성을 위한 마음챙김
- 마음챙김의 인지적 장점
- 마음챙김과 감정적 지능
- 마음챙김의 함정
- 마음챙김 휴식
- 결론
- 핵심
- 참고 문헌