11장 고리타분한 버그 수정
고리타분한 버그수정에 관련해서는 중요한 핵심내용만 짚고 넘어가고싶습니다.
버그를 모두 수정하는 작업이 어떤 값어치가 있는지 계산기를 두드려 보십시오.
저는 이 챕터 제목이 11장을 모두 대신한다고 생각했습니다.
개발자분들이라면 아시겠지만 프로그램을 제작하고나서 배포를 하게되면 어쩔수없이 버그들이 발견되곤합니다.
그런데 여기서 이 버그들을 바로 수정해야할지 혹은 이정도 버그들은 지금 바로 수정하지 않고, 넘어가도 될지 판단하기가 모호할때가 있습니다.
그럴때에는 위 제목처럼 이 버그를 모두 수정하는 작업이 "어떤 값어치가 있는지"를 계산해보는 것입니다.
버그를 수정해야하는가? 아니면 다른 효율적인 기능들을 추가하는 작업에 시간을 사용해야하는가?
이에 관련된 아주 좋은 예가 2가지 나오게 되는데
첫번째 좋은 예시의 문단을 작성해보겠습니다
포그크릭 소프트웨어는, 아주작은 회사입니다. 그래서 개발팀이 기술지원 전화를 바로 받습니다.
하루 1시간씩 고객 기술지원을 하는데 드는 비용은 컨설팅요율에 근거를 두고 계산해보면
대략 연간 7만 5천달러에 이릅니다.
알려진 버그를 모두 잡는다면, 기술 지원에 투자하는 시간을 하루 15분으로 줄일 수 있다고 확신합니다.
간단히 계산기를 두드려봐도, 이렇게 해서 절약할 수 있는 비용은 대략 연간 15만 달러에 육박함을 알 수 있습니다.
그리고 바로 두번째 좋은 예시의 문단을 작성해 보겠습니다.
OS/2 사용자를 위한 버그수정과 제네럴 일렉트릭사에 소프트웨어 20,000본을 판매할 수 있는 새로운 기능을 추가하는 작업 사이에서 결정을 내려야 한다면, OS/2 사용자에게는 정말 미안하게 됐습니다.
제네럴 일렉트릴 기능을 추가하는 일보다 OS/2 수정이 그래도 더 중요하다고 생각하십니까?
저는 아주 실용적으로 프로그램을 만들 수 있는 방향을 제시해준다는 느낌을 받았습니다.
버그가 많다고해서 프로그램 런칭을 당장 포기해야하는 것도 아니고 ( 물론 기능적 결함이 있으면 안되겠지만요 )
버그가 발견되었다고 했을 때에 당황하지 않고 어떤 식으로 풀어가야 하는지에 대해 한번 더 생각할 수 있게 해주는 문단이기도 했습니다.
13장 종이 프로토타이핑
이 종이 프로토 타이핑의 내용은 사실 책과 유튜브에서 많이 봐서 이미 알고있는 내용이기는 했습니다.
이 내용에 대해 잘 모르시는 분들은 아래 유튜브를 보시면 아마 "아 이거!.. " 라고 알 수 있으실겁니다
https://www.youtube.com/watch?v=y20E3qBmHpg
무언가를 만들고자 할 때 내가 무엇을 만들고자하는지 알아내기위해, 그리고 표현하기 위해서
사용되지도 않을 완성 프로그램을 시간을 들여서 만드는 헛수고를 하지 말라는 뜻입니다.
어떤 어플리케이션을 만들고자 할 때 위와같이 박스를 잘라서 3시간이면 만들 수 있는
어플리케이션 프로토타입을 UI를 꾸미고, 구현부를 작성하는 등의
시간낭비를 하지 말라는 뜻이죠.
결국은 내가 만들고자 하는 것, 상대방에게 내가 말하고자 하는 것이 무엇인가를 아는 것에 대한
본질을 이해하기 위해 만들어지는 것이 프로토타입이기 때문이죠.
" 이 행위를 함으로써 다른 더 효율적인 작업에 대해 기회비용을 날리는 것은 아닐까?" 를 생각하는 습관을 들어야하며,
한가지 방법에 집착하는 것이 아닌, 현재 상황과 기한에 맞는 방법을 생각해서 적용하는 습관을 들여야 하는 것 입니다.
15장 쏘면서 움직여라
이 "쏘면서 움직여라" 챕터는 마인드셋에 대한 이야기일 것 같습니다.
조엘이라는 개발자가 한창 집중이 안될때에는 하루 2시간씩만 일하고 나머지 시간은 집중하지 못한채로
웹서핑, 다른 딴짓으로 시간을 보냈던 때를 상기하며 시작합니다.
그래서 하루에 두세시간 정도만 생산성을 발휘한 제가 팀중에 가장 생선성 높은 구성원에 됐다는 사실에 죄의식을 느끼기도 했다고 합니다.
한때 마이크로소프트에 있을 때 엑셀 베이직을 위한 세부 명세서를 갈고닦을때에는 무아지경에 빠져 여러달동안 쉬지않고 쉬지않고 일했었던 때가 있다고 말하며 이런 문장을 말합니다.
" 무아지경에 빠지고 나면, 흐름을 계속 타는 일은 그리 어렵지 않습니다. "
" 정지한 물체는 계속해서 정지하려고 합니다. 제머리속에 뭔지 몰라도 굉장히 무거운 물체가 있어서,
처음 속력을 내기가 끔직할만큼 어렵습니다.
하지만 최고 속력으로 굴러가기 시작하면, 속력을 유지하는데 별다른 힘이 들지 않습니다. "
매일매일 조금씩이라도 무엇인가를 하면서 움직여야한다는 뜻이죠.
물론 아무런 의미가 없는 행동이 아닌 장기적인 안목에 의한 목표를 위한 행동을 하라는 의미로
즉, 그냥 일반 개인으로 보자면 앞으로는 C# 혹은 3D Vision에 대한 산업의 발전이 있다고 판단이 되었다면
해당 강의, 블로그글을 공부하면서 직접 프로그램을 작성해보는 그 단계를 일단 "시작" 하라는 것 입니다.
저는 지금까지의 내용들과 11장 ,13장을 읽으면서 정리한 저만의 생각은 아래와 같습니다.
" 우리가 소프트웨어 즉, 프로그램, 프로젝트를 만드는 이유가 뭔가요? "
우리가 소트트웨어를 만드는 이유는 깊게 들어가면 다른 사람들이 원하는 기능을 구현해주기 위해서입니다.
" 그럼 다른 사람들이 원하는 기능을 구현해주는 이유가 뭘까요? "
바로 "돈"을 벌기 위해서입니다.
어떤것이든 무엇을 만들던 간에 우리는 "돈"을 벌기위해서 버그를 수정하고, 기능을 추가하고, 프로그램을 작성합니다.
그러려면 모든 행위들을 수치화하고, 기록하고, 문서화하여 이것을 비용으로 계산하고,
어떤 선택이 조금 더 합리적인가? 에 대해서 심플하게 결정을 내릴 수 있어야하는 것 입니다.
이 책은 단순히 프로그래머들을 위한 책이 아니라고 느꼈습니다.
만약 조엘이 프로그래머들을 위한 책이라고 썻다면 단순히 프로그램만 짜는 괴짜같은 프로그래머를 위한 책으로 쓴건
분명히 아닐겁니다.
프로그램을 짜는 본질적인 이유를 설명하고 생각하게하며 시야를 넓힐 수 있게 도와주는 책이고,
실질적으로 프로그램을 사용해서 돈을 버는 사람들을 위해 어떻게 해야
돈과 시간을 모두 효율적으로 사용할 수 있는지 경험으로 알려주는 책입니다.
'독서' 카테고리의 다른 글
PRINCIPLES(원칙) (5) | 2025.06.07 |
---|---|
좋은 프로그램이란 무엇인가? (0) | 2024.11.28 |
조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전 (2) (0) | 2024.11.26 |
조엘 온 소프트웨어 _ 비트와 바이트 : 프로그래밍 실전(1) (1) | 2024.11.23 |
소크라테스에게서 찾은 삶의 이정표 (1) | 2024.04.30 |