2007년 07월 31일
[책] 소프트웨어 컨플릭트 2.0 - 로버트 L. 글래스

공군사관학교에서 에이다 언어 교육을 수강하던 중이었다. 주간 교육 마지막 날에 강사는 수강생들을 팀으로 나누고 문제를 내주었다. 강사가 모두에게 요구사항을 설명하자 마자, 내 급우 중 한명인 보잉사에서 온 똑똑하고 젊은 친구가 설계안을 내놓았다. 당시 나는 문제조차 이해하지 못 해서 고심하는 중이었는데 그 친구는 즉석에서 설계안을 떠올렸던 것이다! 그 때 나는 깨달았다. 설계는 마음 속에서 번개처럼 떠오르는 무언가임을. 그리고 어떤 사람의 번개는 다른 사람의 번개보다 훨씬 빠르다는 사실을.- 소프트웨어 컨플릭트 2.0 中 -
<소프트웨어 공학의 사실과 오해>를 읽고 깊은 감명을 받은 Paromix군이 같은 저자의 책을 또 하나 집어들게 되었다. 물론 열정적인 번역을 보여주시는 박재호 님과 이해영 님이 번역했다는 사실도 책을 고르는데 한 몫 했다.
<소프트웨어 공학의 사실과 오해>가 55가지 사실과 10가지의 오해를 하나하나 설명하는 방식으로 써내려갔다면, 이 책은 저자의 여러 수필을 한 책으로 묶었다고 볼 수 있다. 과거판 <조엘 온 소프트웨어>쯤 되려나? 물론 글의 문체나 성격은 <조엘 온 소프트웨어>와는 너무 다르지만 말이지.
지금으로부터 약 15년 전에 쓴 책이라고 하는데, (소프트웨어 역사로 보면 꽤 오래전 일이지?) 그때 저자가 고민하던 내용이 지금도 크게 달라진건 없는 것 같다. 그러니 부제가 "시대를 뛰어 넘는 즐거운 논쟁"이긴 하겠지?^^
사실 책 속에 있는 내용은 <소프트웨어 공학의 사실과 오해>에 있는 내용과 꽤 겹치는게 많다. 세세한 내용이나 예시로 든 내용은 책을 쓴 시점이 다르기 때문에 조금 달라지긴 했지만, 저자가 전달하고자 하는 내용은 비슷한 듯한 느낌이랄까. <소프트웨어 공학의 사실과 오해>를 이미 읽어보신 분이라면, 읽는 내내 '어디선가 많이 듣던 소리인데...'라는 느낌이 강하게 밀려 올 것이다.
책의 제목에서 나타나듯이 논쟁을 중점으로 다루고 있기 때문에 깊이 있는 내용이나 실무에 직접 써먹을 수 있는 내용은 거의 없다. 60여개의 수필을 하나 하나 읽으며 자신의 생각을 정리하고 베테랑 컨설턴트의 의견을 한번 들어본다는 마음가짐으로 읽어야 큰 후회없이 책을 즐길 수 있을 것 같다. :D
이 시점에서 내가 말하고 싶은 요지는 이제껏 우리가 설계의 피상적인 면만을 논해왔다는 점이다. 방법론은 설계가 아니며 설계를 조직화하는 기반 틀일 뿐이다. 언어도 설계는 아니며 구상한 설계를 기록하는 표현 방법일 뿐이다. 설계는 머리속, 두뇌 안에서 일어나는 무언가이며 이는 빛보다 빠른 속력으로 일어난다.- 소프트웨어 컨플릭트 2.0 中 -
====================================================================================================================
1. 논쟁의 장
- '은총알은 없다' : 프레드 브룩스의 'No Silver Bullet'이란 논문을 읽고 저자의 생각을 덧붙인 글이다. 저자는 은총알이 없다는 의견에 찬성하는 입장이다. 은총알은 정말 없으려나.. Paromix군은 아직 확신할 수 없다.
'No Silver Bullet'의 전문은 여기에서 볼 수 있다.
2. 기술 진영에서
- 인지적 견해 (소프트웨어 설계를 보는 다른 시각) : 선천적으로 운동 신경이 좋은 사람이 있듯이, 선천적으로 설계 능력을 타고나는 사람도 있을 것 같다. 물론 모든 것은 연습으로 극복할 수 있으니 머리속에서 일어나는 모델링과 시뮬레이션 과정의 반복 속도도 높일 수 있을 것이다. 스스로 모델링 한 결과물이 실패할 수도 있음을 허용하는 마음가짐도 중요하고 말이지.
- 소프트웨어 유지보수는 해결책이지 골칫거리가 아니다 : 이건 <소프트웨어 공학의 사실과 오해>에도 나온 내용이다. 꽤 오랫동안 소프트웨어 유지보수를 해본 Paromix군 개인적으로는 유지보수도 새로 구현하는 것 못지않은 재미가 있다.^^ 물론 새로 설계하고 구현하고 하는 일이 조금더 재밌는 건 어쩔수 없는 사실이긴 하지만 말이지.
- 단일지점제어 : <실용주의 프로그래머>에 나온 DRY(Don't Repeat Yourself)와 일맥 상통하는 내용이다. (참고로 <실용주의 프로그래머>는 두고두고 읽어도 시간이 안아까운 책이다.) 논리적으로 같은 일은 하는 코드는 한 곳에서 처리하는 것. 말이 필요없이 중요하다.
3. 최신 무기 정보
- 재사용 (소프트웨어 부품) : 이 수필을 읽고 있으면 역사는 역시 반복된다는 걸 뼈저리게 느낄 수 있다.
4. 지휘 본부에서
- 컨설팅의 진정한 비밀 : 사실 이 내용은 읽고서 잘 이해가 안갔는데, <컨설팅의 비밀>을 읽고나서 다시한번 읽어봐야 할 것 같다.
====================================================================================================================
"Paromix"
관련링크 : The Art of Project Mangement Blog (http://tapm.blogspot.com/)
소프트웨어 컨플릭트 2.0에 관한 블로그 글 (http://tapm.blogspot.com/2007/02/20.html)
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- 소프트웨어 컨플릭트 2.0 : 시대를 뛰어넘는 즐거운 논쟁 by shadow-dancer
- [독후감]누가 소프트웨어의 심장을 만들었는가 by 오리대마왕
- 초난감 기업의 조건.. by 미친병아리
# by | 2007/07/31 01:08 | ■□ 책 이 야 기 □■ | 트랙백(1) | 핑백(1) | 덧글(4)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : [개발 교양서] 소프트웨어 컨플릭트 2.0 (로버트..
제목 그대로 소프트웨어 개발에 있어서 논쟁이 되어 왔던, 되고 있는 주제에 관해서 50여년 동안 전산분야에서 경험을 쌓아 왔던 로버트 L.글래스가 그 의견을 펼치는 책이다. 1990년에 1판이 출간 되었고, 15년이 지난 2005년 2판이 출간되었다. 책의 90년 당시의 CASE 도구와 4GL이 은총알이 될 수 있을 것이냐가 상당부분의 논쟁 거리이며, 전통 개념의 설계(water fall)과 프로토타입, 오브젝트적 설계가 분쟁하던 시기 였으며,......more
... 7가지 기준을 제시했다.소프트웨어 품질이 우수하려면 다음 속성을 지녀야 한다.- 신뢰성- 효율성- 인간 공학- 이해 용이성- 수정 용이성- 테스트 용이성- 이식성- 소프트웨어 컨플릭트 2.0 中 -뻔한 말들 같긴하지만, 하나하나 생각해보면 하나같이 만족시키기 어려운 문제들이다. (Paromix군에게만 어려운 문제일 수도 있지만.)무작정 코드를 많이 짜보 ... more