본문 바로가기

책이야기/2007년

우리가 미처 알지 못한 소프트웨어 공학의 사실과 오해 - 로버트 L. 글래스 지음/ 윤성준, 조홍진 옮김

우리가 미처 알지 못한 소프트웨어 공학의 사실과 오해 - 로버트 L. 글래스 지음/ 윤성준, 조홍진 옮김
Facts and Fallacies of Software Engineering


중이미지보기

오랜 동안의 경험을 바탕으로 자신의 의견을 피력하였다. 60여개의 항목에 대해서 의견 개진과 토론거리를 제공한다.

대개의 경우에 내 의견을 내지 않는 성향도 있거니와, 혹은 내가 오만하여(?) 그러려니 하고 넘어가는 부분이 있어 뚜렷하게 저자의 의견을 반박하고자 하는 것은 없었다. 하지만, 반성을 하거나 이것 그랬지라는 동감하는 부분이 있었고 미리 읽었으면 했던 항목들도 있었던 것 같다. 소프트웨어 공학 분야에 발을 걸친 사람이라면 가끔씩 읽어주면 좋을 것 같다.

사실 41 : 유지보수는 보통 소트프웨어 비용의 40~80%를 차지한다. 따라서, 유지보수는 소프트웨어 생명주기 중 가장 중요한 단계일 것이다.
 * 왜 이러한 통찰력은 이 책을 보면서 처음봤을까라는 의문이 들게한 항목. 내가 너무 책이나 자료를 읽는데 게을리 했다라는 반성을 하게 된다. 만드는 것만을 중요하게 생각하면 안될 것 같다. 특히나 경영진은 이 사실을 간과해서는 안된다.

오해 3 : 프로그래밍은 비자아적(egoless)이 될 수 있고, 또 되어야 한다.
 * 내용을 완전히 파악하기는 힘들지만, 내가 만든 소프트웨어에 대해서 상당히 방어적인었던 경우가 생각이 나서 낯 뜨거웠던 항목이다. 팀으로 소프트웨어로서 자아를 심어주는 것에 동감한다.

사실 5 : 소프트웨어 업계에는 과대선전(도구와 기술에 대한)이 만연해 있다.
 * 이 항목 이외에도 얘기가 나오지만 프로세스, UML에 대해서 초기에 많은 환상을 지녔던 것 같다. 경험을 해보는 것이 확실히 프로세스에서 무엇을 취해할지 알수 있는 방법이라 본다. 하지만 아직 무엇을 어떻게 프로세스화를 시켜야할지 고민하거나 정리한 적이 없이, 내가 생각을 완전히 정리했다고는 볼 수 없다 어느 항목에서 나왔는지 기억은 없지만, 프로세스를 도입한 대부분의 프로젝트에서 프로세스를 나름의 환경에 맞게 고쳤다라는 사실에 공감을 가졌다.

사실 9 : 소프트웨어 추정은 보통 부적절한 시기에 수행된다.
사실 13: 경영진과 프로그래머 사이에는 단절이 있다
 * 공감.

사실 16 : 대규모 재사용은 여전히 해결되지 않은 어려운 문제다.
사실 17 : 대규모 재사용은 서로 관련 있는 시스템 사이에서 가장 잘 적용된다.
사실 18 : 재사용 가능 컴포넌트는 만들기가 3배 어렵고, 3곳에 적용해봐야 한다.
 * 경험해 본 사실이니 잊지 말자.

사실 23 : 폭주하는 프로젝트에서 가장 흔한 원인 두 가지 중 하나는 불안정한 요구사항이다.
 * 요구사항이 명확하지 않은 상태에서 프로젝트 진행은 어쨌든 모든 사람들, 회사에세 손해이 가능성이 많다.

사실 31: 오류제거는 생명주기에서 가장 많은 시간을 소모하는 단계이다.
사실 32: 프로그래머가 완전하게 테스트했다고 믿는 소프트웨어도 보통은 로직 경로의 55~60%만 테스트된 경우가 많다.
사실 48: 대부분의 프로그래머가 흔히 범하는 오류가 있다.
 * 그렇지 않은가?

오해 8 : "보는 눈이 많으면, 모든 버거는 그 깊이가 얕다."
 * 오픈소스 관련한 이야기. 한쪽의 시각에서만 보면 곤란