제 전공이 컴퓨터공학과이면서도
대학 1년 교양과목만 들어
전공은 하나도 배우지 못한
이름만 컴공과생입니다.
그래서 실제로 프로그램을 하나 만들 때마다
맨 땅에 헤딩하는 느낌이죠.
그게 너무 싫어서 전 '소프트웨어 공학'을
독학으로라마 조금 익히기를 원했고,
존경하는 학교 선배 중 한 명이
책 두 권을 추천해주셨습니다.
그 중 한 권은 가격이 너무 비싸 사지 못했지만,
나머지 한 권은 도서관에 있어 바로 읽을 수 있었습니다.

아직 다 읽지는 못했지만, 많은 부분이 공감이 갑니다.
서론에 적혀져 있는 데로 이 책은
문제의 해결방법을 설명하는 책(how-to book)이 아니고,
문제를 설명하는 책(what-is book)입니다.
그게 오히려 저에게는 더 좋았습니다.
반발심을 가지지 않고 문제를 사실로 받아들이고,
해당 문제점을 공감하면서
문제점을 해결하는 방법을 자유롭게 생각할 수 있었습니다.
특히나 이 책이 저에게 깊게 다가온 것은
'길지 않은 소프트웨어 개발경력인데도
공감이 가는 사실이
비단 저의 실력이 낮아서가 아니라
모든 엔지니어들이 겪고 있는 것이다.' 라는 것입니다.
저의 소프트웨어 개발 경력은
저 만의 프로그램을 만든 것이 대부분이고,
남을 위해 만든 것은 극히 드뭅니다.
그 중 최근에 하나 만든 것이 있습니다.
현재 저는 도서관에서 근무중인데,
공무원들이 서류를 작성할 때마다
계산기가 부서져라 두들이면서
숫자를 더하고 나누더군요.
그 모습이 조금 안쓰럽기도 하고,
'소프트웨어 개발 프로젝트를 공부 차원에서 만들어보자.'라는
생각에 서류 작성 프로그램을 만들어 줬습니다.
약 한 달에 거쳐 프로그램은 완성되었고,
거기서 얻은 경험이 이 책에 다 적혀있었습니다.
먼저, 추정에 관한 사실입니다.
사실 9에 추정은 부적절한 시기에 정해진다고 합니다.
확실히 맞는 말이였습니다.
저는 라이브러리를 무엇을 써야겠다도 정해지기 전에
대략 2주 정도 걸릴 것이다 라고 추정을 한 것입니다.
그렇게 공무원에게 말했고,
공무원은 2주 정도를 기다렸지요.
물론 제 주 업무가 프로그래밍이 아니었기에
한 달 정도 늦은 것에 대해서 변명을 할 수 있었지만,
추정이 잘못되어 사람 기다리게만 했다는 것입니다.
다음은 재사용에 관한 사실입니다.
위의 프로그램을 만들고 나서
저 역시 비슷한 프로그램이 필요했습니다.
저번에 만든 것도 있어
그 소스를 그대로 가져와
조금만 수정을 하면 금방 만들어지는 줄 알았습니다.
하지만 아니었습니다.
저번 프로그램의 소스는 저번 것에 맞는 것이였지,
새롭게 만든 프로그램에 적용하기에는 수정할 것이 너무 많았다는 것입니다.
혹자는 이렇게 말할지 모르겠습니다.
'처음부터 만들 때 재사용할 것을 생각하고 만들었어야지.'
저도 그렇게 생각해서 몇몇 함수는 그렇게 만들었습니다.
하지만 기대하던 만큼은 아니더군요.
그래서 수정을 그만두고 새롭게 짰습니다.
수정을 하고 있었으면 대략 삼 일이 걸릴 작업을
하루로 앞당겼습니다.
20~25% 이상을 수정하고자 하면
차라리 처음부터 다시 작성하는 것이
더 효율적/효과적이다는 사실 19의 말이 맞았던 것입니다.
이렇듯 아주 간단한 소프트웨어 개발을 하였는데도,
알 수 있는 사실이 잘 해결되지 않는 것을 보면
소프트웨어 개발이 정말 어렵기는 어려운가 봅니다.
하지만 이 책에 나와있는 얘기 하나가 저를 포기할 수 없게 만듭니다.
사실 13에 나오는 얘기로
Linbeng라는 분이 조사를 하였습니다.
그 조사 결과로 나온 것이
경영자가 생각하는 가장 실패한 프로젝트와
기술자가 생각하는 가장 성공적인 프로젝트가 일치한다는 것입니다.
그 프로젝트는 추정 규모보다 예산은 418%, 일정은 194% 초과했지만,
소프트웨어는 130%, 펌웨어는 800%를 초과했던 것입니다.
이러한 프로젝트를 성공했다고 말하는 기술자의 이유 중 하나가 다음과 같습니다.
'제품을 개발하는 것은 기술적 도전이었다.
(무엇보다도, 기술자들이 어려운 문제를 해결하는 것을 좋아한다는 것은
많은 자료를 통해 알 수 있다.)'
이유보다는 괄호 안의 글을 읽고 저는 매우 기뻤습니다.
저는 언제나 '기술자는 프로젝트를 수행하면서 어떤 보람을 느낄까?'
하는 의문이 있었습니다.
즉, 시간의 압박, 자금의 압박 등이 있는 기술자에게
어려운 문제를 풀 수 있는 여건이 되지 않을 것이라 생각했습니다.
그래서 '어려운 문제를 해결했을 때 얻는 쾌감을 느낄 수 있을까?'
하는 의문이 언제나 있었습니다.
하지만 느낄 수 있다고 이 책에서는 말해주었습니다.
그렇기에 저는 기술자의 길을 걸어도 아쉬운 것이 없어진 것입니다.
이제 반 정도 읽은 책.
마지막까지 읽고나서 과연 어떤 느낌이 들지
그 때 다시 글 남기도록 하겠습니다.
- 남회근 선생의 알기 쉬운 논어 강의 (3)2006/07/11
- 시맨틱 웹 (1)2006/06/04
- 우리가 미처 알지 못한 소프트웨어 공학의 사실과... (0)2006/02/25
- 우리가 미처 알지 못한 소프트웨어 공학의 사실과... (5)2006/02/22
- 호밀밭의 파수꾼 (1)2006/01/20
- IA-32 Intel Achitecture Software Developer's M... (3)2006/01/03
- 누구 때문일까? (3)2005/12/31
글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.







댓글을 달아 주세요
25% 이상 수정하고자 하면 처음부터 다시 작성하는게 더 낫다.. 이 말은 CODE COMPLETE에 있는 내용과는 상반되는 내용이군요. 코드 컴플릿도 시간이 되시면 일독을 추천합니다!
이 책을 읽다보면 저자의 경력이 얼마나 되는지 궁금할 때가 있더군요.
자신의 신념을 아주 강하게 굳혀진 사람이더군요.^^
그래서 이 책만 믿기에는 좀 그랬는데,
mark씨가 우매한 후배에게 책 한 권 추천해주시네요.ㅠㅠ
근데... 너무 비싸네요. 할인해서 59,940원....;;;;
복학 전까지는 근처 대학교 도서관에서 살아야 할 듯..;;;;ㅠㅠ
아 죄송.. 상반되는 내용은 코드 컴플릿이 아니라 조엘 온 소프트웨어라는 책이었습니다(치매? -_-;;) 어디사시는지.. 근처면 책 빌려드릴텐데^^;
조엘 온 소프트웨어.. 현재 산 이후 읽어야 할 책 대기큐에 적재되어 있는 상태입니다.
순서를 조금 앞당겨야겠네요.^^
끝까지 살펴주셔서 고맙습니다.ㅠㅠ
조엘 온 소프트웨어를 읽어보았다.
이제 mark씨께서 추천하신 코드 컴플릿도 읽어야겠다.
그런데 중고책이냐 새 책이냐 고민이다.