추천사

  • 김명호, 공학박사, 한국마이크로소프트 NTO

소프트웨어 공학이 학문의 범주에 포함되는 이유는, 그것이 근거 없는 신념이나 불확실한 가설, 영향력 있는 사람의 주장을 여과 없이 나열한 것이 아니라, 충분히 입증되었거나 입증이 가능하여 소프트웨어 개발에 긍정적인 역할을 수행할 수 있는 이론, 기술, 방법, 관행을 제시하기 때문이다. 근래 출판물과 인터넷의 폭넓은 보급은 소프트웨어 개발에 관한 사실뿐만 아니라 입증이 어렵거나 불가능한 많은 가설을 전달하는 부작용도 낳고 있다. 로버트 글래스의 “소프트웨어 공학의 사실과 오해”는 이러한 부작용을 과감히 거부하고 분연히 맞서 싸우는 매우 용기 있는 저술이다. 저자인 로버트 글래스는 IEEE Software Magazine에 수많은 기사와 논문을 기여해 왔으며, 지금도 Loyal Opposition 칼럼을 담당하고 있다. 이 책의 일부 내용, 특히 오해에 관한 내용은 지금껏 이를 사실로 간주해온 개발자들의 마음을 아주 아프게 할지도 모른다. 그러나 사실만 받아들이기에도 벅찬 오늘날의 개발자들에게 이 책은 일시적 충격을 훨씬 능가하는 건전한 교훈과 지침을 제공하는 유익한 책임을 강조하고 싶다. 이 책과 맥을 같이하는 스티브 맥코넬의 Professional 소프트웨어 개발, 죠엘 스폴스키의 Joel on Software도 함께 학습하기를 권한다.

 

  • 김익환, 컨설턴트, ‘대한민국엔 소프트웨어가 없다.’ 저자

저자는 오랜 실무 경험과 학문적인 배경을 바탕으로 현실과 이론을 정확하게 이해하고 문제점을 지적한다. 그러면서 현명하게도 해결방법은 제시하지 않는다. 각 주제에 대한 생각이나 해결방법은 경우마다 상이할 수 있기 때문에 무모하게 일반적인 해결책을 내놓지 않는다는 데서 저자의 깊은 경험을 느낄 수 있다. 하지만 해결책을 제시하지 않으면서 문제를 인식시키는 것 자체가 해결책이기도 하다. 문제를 제시하고 그에 관해 토론하면서 해결책을 스스로 생각하도록 유도하는 것이 더 중요하기 때문이다.
저 자는 진정한 소프트웨어의 전문가라고 할 수 있는 사람이다. 어설프게 이론이나 도구를 팔기 위해 합리화시키는 많은 사람들과는 본질적으로 차이가 난다. 이 책이 학문적인 책은 아니어서, 학문과 이론에 치우친 사람들은 공감대를 느끼지 못할 수도 있다. 평범한 데 진리가 있다고 새로운 이론을 펼치는 것도 아니다. 하지만 이 책을 읽고도 중요성을 느끼지 못하는 사람이라면 소프트웨어의 실무를 경험해 보지 않았다고 할 수 있다.
소프트웨어 분야에 있는 사람이면 누구를 막론하고 꼭 읽어봐야 하는 필독서다.

 

  • CJ 시스템즈 솔루션 컨설팅 팀 부장 원은희

“소프트웨어 공학” 이라는 단어는 IT 업계에 종사하는 사람들에게 어떤 의미로 다가올까?
이 업계에서 18년간 푹 썩은 나에게도 아직 이 단어는 멀게만 느껴질 뿐이니…

프로젝트 현실 때문에 많은 날을 가슴 앓이 했다. SI 회사에서조차 소프트웨어 공학이라는 단어를 언급하면 뜬구름 잡기를 좋아하는 덜 떨어진 인간으로 취급 받기 일쑤였다. 우리의 반복되는 바보스런 작업 방법(아직도 요구사항 분석 단계에서 분석가들이 업무를 분석하는 방법을 생각하다 보면 가슴이 답답해 온다.)을 나의 경우에 18년간 목격하고 살고 있지만 누구 하나 이런 모순을 고발하는 사람은 없었다. 다음 번 또 반복될 혼돈의 장을 위해서 제안서 패키징하는 데는 필사적으로 밤을 새울지언정….

하하, 그런데 이 책의 출력본을 받아보고 목차를 훑어 내려 가는 순간 양 팔에 소름이 돋아 온다. 어느 꼭지 하나 필자가 SI 프로젝트 현장에서 느꼈던 그 치열한 문제들(작업량으로 예측된 일정이기보다 경영 전략 차원에서 결정된 오픈 시기, Lessons Learned에 대해 말문을 열기도 전에 이미 다른 프로젝트로 끌려 가고 없는 프로젝트 팀원들, 프로젝트 품질 보장을 위해 원활한 커뮤니케이션을 위한 인프라스트럭쳐의 확보가 얼마나 중요한지에 대한 기억 등)을 외면하는 타이틀이 없었으니…. 왜 나로 하여금 다시 그 외면하고 싶은 순간들을 다시 떠올리게 하는지 모르겠다.

이 책을 계기로, 음성적으로 논의된 소프트웨어 공학에 대한 많은 사실과 오류들이 SEPG 심포지엄이나 SPIN 심포지엄에서 논의되고, 소프트웨어 공학 교수님들의 연구 결과가 IT 종사자들로 하여금 프로젝트를 좀더 인간답게 수행할 수 있게 하는 데 기여하게 되기를 바란다. 또한, IT 회사들은 프로젝트 이익률을 챙기는 일과 더불어 효율적인 프로젝트 수행에 대한 방안도 그에 못지 않게 챙겨 주었으면 좋겠다. 이 둘은 별개의 것으로 보일지 모르지만, 결국은 아수라백작처럼 두 얼굴을 가진 것일 뿐이므로.