Professional 소프트웨어 개발을 읽었습니다. 스티브 맥코넬 씨가 지은 책인데요, 번역서가 2003년에 초판이 발행되었네요. 책의 용어를 사용하자면 이 책은 SWEBOK(Software Engineering Body of Knowledge)에서 변하지 않는 범주에 속하는 책이라고 여겨집니다.

책을 읽고 나서 곰곰이 생각하게 된 것은, 컴퓨터과학과 소프트웨어공학 사이의 격차인데요. 일단 컴퓨터과학은 현업에서 그 가치가 크게 인정받지 못하더라고, 다른 과학자와 주로 관련을 맺는 점에 반해, 소프트웨어공학은 현업에서 실제로 소비자와 부딪치기 때문에 여러가지 제약 조건들을 숙지하고 있어야 한다는 점이 인상적이었습니다.

마지막 파트인 업계의 프로정신에서 다루어진, "혁신의 확산"에 대한 그래프가 있었는데요. 선각수용자와 전기 다수의 캐즘(chasm)을 다루고 있는 부분이 있었습니다. 혁신자보다는 적은 위험을 안는 선각수용자들은 XP나 스크럼 등 애자일 방법론을 적용하는 쪽이고, 전기 다수인 사람들은 역량 성숙도 모델(CMM) 종류를 적용하는 것이라고 생각했습니다. 책에서는 Code&Fixing(일단 코드를 작성하고, 나중에 고치는)을 가장 피해야 한다고 했는데, 이 부분에서 가책을 느꼈습니다.

책의 역자서문에서는 Rapid Development나 Code Complete를 스터디하기 전에, 다소 추상적인 에세이들이 모인 이 책을 먼저 읽을 것이 추천되고 있습니다. 소프트웨어공학 분야를 아우르면서, 동시에 "프로페셔널"하다는 것에 논한다는 점에서 신선한 자극을 주는 책이락 생각합니다.
신고
Posted by 세레

 

(우리가 미처 알지 못한) 소프트웨어 공학의 사실과 오해(원서명: Facts and Allacies of Software Engineering)을 주변에서 추천해 주셔서, 읽게 되었습니다. 소프트웨어 컨플릭트 2.0의 저자이기도 한 로버트 L.글래스가 지은 책입니다. 책은 사실 55가지와 오해 5+5가지를 다루고 있습니다. [각주:1]

제일 감명 깊게 읽은 곳은 오해의 마지막 부분입니다. 교육에 관련된 오해인데요. 저도 처음에 프로그래밍 언어를 배울 때나, 아니면 특정한 프로그래밍 언어를 가르쳐 주는 책을 볼 때면 이런 이런 문법을 설명해 줍니다. 그 다음에 연습문제로 이런 이런 코드를 짜 보라고 하죠. 이렇게 많은 책에서 설명하고 있기 때문에, 그렇게 프로그래밍 언어를 학습하는 일이 당연한 것처럼 느꼈습니다. 우리가 어떤 언어를 학습할 때에 쓰기는 가장 끝 부분에 배웁니다. 읽는 법을 알아야, 쓰고 나서라도 자신이 쓴 문장을 읽는 일이 가능합니다. 그런데 프로그래밍 언어를 가르치는 쪽의 경우에, "코드 읽기"라는 부분에 대해 관심도가 떨어진다는 느낌이 듭니다. "코드 읽기"는 다른 사람이 썼던 코드를 인수받아야 할 경우나, 아니면 자신이 몇 달 전에 작성했던 코드를 분석할 때와 같이 쓸 일이 있음에도 말이죠.

이 책에서는 각각의 사실 또는 오해에 대해 "토의-논쟁-출처-참고문헌"의 구조로 짜임새 있게 이루어져서 자신이 관심있는 사실 또는 오해를 더 탐구할 수 있도록 열어두고 있습니다. 특히 오해 부분에서는 이 오해들을 읽더라도 화를 내지 말 것을 주문하는 문장이 기억에 남았습니다. 소프트웨어 부문의 문제를 지적하고, 설명하며, 문제를 보는 새로운 관점을 건넨다는 점에서 유용한 책이라고 생각합니다.
  1. 10을 굳이 5+5로 풀어 쓴 이유는 <span style="color: rgb(0, 0, 255);">F</span>ifty <span style="color: rgb(0, 0, 255);">F</span>ive, <span style="color: rgb(0, 0, 255);">F</span>ive + <span style="color: rgb(0, 0, 255);">F</span>ive 처럼 F의 반복을 통해 저자가 책을 멋지게 보이려고 한 노력입니다. 자세한 내용은 책의 서론을 참고하시기 바랍니다. [본문으로]
신고
Posted by 세레

 

맨먼스 미신을 도서관에서 빌려 읽었습니다. The Mythical Man-Month라는 책을 여러 책에서 추천하고 있었는데, 번역본이 출간되어 반가웠습니다. 책 겉면에는 출간 20주년 기념판이라고 써 있었는데, 본래 책이 1995년에 나왔으니 32년 넘게 시간이 흘렀군요. 꾸준하게 다양한 배경의 사람들이 읽었다고 들은 책이라 기대가 되었습니다. "소프트웨어 컨플릭트 2.0"처럼 한겨레신문에서 제공하던 서체를 사용하던데, 처음에는 좀 어색했지만 적응하고 나니 글씨도 큼직하고 읽기 좋습니다.

이 책의 구조에서 가장 깊은 인상을 남긴 것은 각 장이 시작될 때마다 한 페이지 전체에 관련된 그림이나 사진이 실리는 모습이었습니다. 앞의 그림을 떠올리면서 책을 읽어나가다보면, "이런 주제를 드러내려고 이런 그림을 실었구나!"하고 느낄 수 있었습니다.

다른 소프트웨어 공학 에세이에서도 빈번하게 나타나는 주제인, "은총알(Silver bullet)"에 대한 언급도 있었습니다(은총알은 없다). 소프트웨어 공학에서 발생하는 괴물같은 주제를 늑대인간에 비유하고, 이른 해결할 돌파구를 늑대인간을 무찌를 수 있다고 알려진 은총알에 비유한 것인데요. 흥미롭게 읽었습니다.

다른 한 가지는 프로젝트 팀을 수술 팀이라는 은유로 생각했던 부분이었습니다. 이 해결책은 Harlan Mills라는 분이 제안했던 것인데, 문제를 조각내지 않고 많은 손이 필요한 부분에 적절히 역할을 맡아 효과적인 문제 해결을 위해 노력한다는 점이 마음에 들었습니다.

맨먼스 미신의 초판에서 제안되었던 사항들이 지금은 어떻게 되었는지, 맨먼스 미신의 초판에 대한 저자의 고찰과 회고가 담긴 장들이 뒷부분에 추가되어 있었습니다. 과거가 미래 예측에 도움이 되는가에 대해서는 논란이 있지만, 그래도 현재 살아가는데 과거의 지식이 가치있으리라고 생각합니다. 책에 나온 기술들이 현재 사용되는 것과 다소 동떨어질 수 있지만, 근본적인 가치는 크게 변하지 않아서 여러 사람들에게 도움이 되리라 생각합니다.
맨먼스 미신 상세보기
프레더릭 브룩스 지음 | 케이앤피북스 펴냄
컴퓨터 공학 이론서. 이 책은 대형 프로그래밍 프로젝트에서 소형 프로그래밍 프로젝트와 다른 종류의 관리 어려움을 극복하는 방법을 설명하고 소프트웨어 공학 관리의 특징에 관하여 에세이 형식으로 구성했다.
신고
Posted by 세레

 

동네 도서관에서 책을 찾다가, 신간이 들어왔더라고요. (주로 총류의 책을 훑어 보는 편이죠.)
신간의 이름은 '임백준의 소프트웨어 산책'. 임백준씨가 지은 책 '누워서 읽는 알고리즘', '행복한 프로그래밍'을 본 적이 있어요. 책 중간에 나온 프로그램 코드를 읽다 보면 이게 뭐지 하고 어안이 벙벙하지만, 코드 내용을 몰라도 그 뒤에 있는 역사적 배경과 얽힌 이야기를 듣는 것만으로도 유익한 것 같아요. ('나는 프로그래머다'라는 책도 공저로 쓰셨더라고요.)

루슨트 테크놀로지에서 나와 지금은 뉴욕에서 일하신다고 들었어요. 책이 가벼워서 지하철에서 들고 읽기는 좋은데 얇아진 게 오히려 아쉽기도 해요. 퍼즐 푸는 재미도 여러모로 있었는데, 이번에 많이 줄어든게 아쉽기도 하고요. 앞에는 5가지 프로그래밍의 화두에 대해서 제시하신 것 같아요. 객체에 관한 이야기라던가, XML이 어떻게 주목받게 되었는가, 유닛 테스트가 왜 중요한지 등.. 뒤에는 프로그래밍 K씨의 소설이 나와 있습니다. 한가지만 말씀드리면, 소설에 나왔던 문제는 실제로 구글이 뛰어난 개발자 채용을 위해서 만든거라네요.

(소설이란 형식을 빌려서, 프로그래머들의 고뇌를 같이 겪게 하고자 하셨던 의도였을까나..)

#. Celeste는 저의 바뀐 닉네임입니다- 
From Maria Celeste, the daughter of Galileo Galilei.
#2. 제가 보기에도 부끄러운 포스트가 발행을 주저하게 하는군요. ㅠㅠ
신고
Posted by 세레

카테고리

분류 전체보기 (446)
Science (283)
ars boni et aequi (54)
Routine (83)
Language (23)
Q&A (1)
me2day (1)

달력

«   2017/10   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

티스토리 툴바