'소프트웨어 공학'에 해당되는 글 1건

  1. 2007/12/20 Hybrid 소프트웨어 공학의 사실과 오해(책) (4)

이미지 출처, 링크 : Yes24
황상철님의 블로그, 실용주의 이야기에서 알게 된 책이다. 평소에 소프트웨어 공학에 관한 책을 그다지 관심을 갖지 않는다. 하지만 무슨 이유에서인지 이 책이 끌려서 구입했다.(지금 다시 제목과 황상철님의 블로그를 가서 원래 글을 봐도 무엇에 끌렸는지는 미스테리다.)

사실 여기서는 이 책 얘기 보다는 소프트웨어 공학.... 정확히는 관리와 개발 사이에 대한 말을 해볼까 한다.

책 이전에, 일단 나는 '소프트웨어 공학'을 매우매우 좋아하지 않는다.(싫어하는 것은 아닌듯 하다. 아마도.....) 학교 수업시간에 간단하게 해결할 수 있는 일을 매우매우 어렵게 해결하는 모습을 보고 완전히 질려버렸기 때문이다.

코딩을 해보고, 별도로 간간히 디자인 패턴을 공부하게 되면, 그냥 코딩 스타일대로, 코딩을 하다가 만들어지는 기법에 이미 누가 이름을 붙인 경우가 제법 있었다.(물론 차이점이나 개선점도 많았지만..) 코딩으로써 얻는 디자인 패턴(코딩 기법), 그리고 책을 보고 거창한 이름 안에서 주절 설명되어지는 디자인 패턴 간의 차이에 약간의 괴리감도 가지고 있다.

소프트웨어 공학, 내지는 소프트웨어 설계, 디자인 패턴, 패턴 설계....의 모든 것은 궁극적으로 코딩을 위한 것이다. 하지만 (학교에서의 경험으로) 코딩보다는 이러한 설계에 더 노력을 해야 하는 그 상황에 아주 끔찍하게 질려버렸다.(물론 학교에서는 특수성 안에서 생산성을 애당초 포기했겠지만, 그것을 감안해도 그러한 깐깐한 방법론 자체가 싫었다.)

사실상 프로그램이 커지다보면 이러한 취향은 고려대상이 아니라는 것을 잘 알고 있다. 그렇기 때문에, 디자인 패턴과 소프트웨어 공학의 공부는 그동안 항상 코딩 위주로 해왔던 설계를 더 발전 시키고, 궁극적으로는 그러한 설계에 많은 시간과 공을 들이지 않기 위해서, 나름대로 방어 수단으로 공부하는 것이다. 즉, 관리를 잘하기 위해서 공부하는 것이 아니라 코딩을 잘하기 위해서 공부하고 있다.

이 모든 것을 한줄로 짧게 말하면, '난 관리직을 끔찍히도 싫어한다.'

이제 책 얘기로 돌아가면, 이 책의 1장, '관리'에서 바로 내가 고민하는 부분을 저자도 고민했다는 것을 알 수 있었다. 저자는 관리가 성공의 길이라는 것을 알고 있었고, 그것을 피할 수는 없었다. 하지만 두가지 이유로 스스로가 기술자(엔지니어)로 남고자 하는 것을 깨달았다고 한다.(아래 두 문장은 책에서 그대로 옮겨 왔다.)

1. 나는 내가 직접하고 싶었지, 다른 사람이 하도록 지시하고 싶지 않았다.
(빙고! 나도 다른 사람이 하도록, 아니, 다른 사람이 잘하나 못하나 감시하고 피드백 받는 것이 굉장히 싫다. 알아서 잘 할 것이지....)

2. 나는 내가 마음대로 결정할 수 있는 자유를 원했지, 중간에서 자기 위에 있는 관리자의 결정을 가끔 전달만 하는 관리자가 되고 싶지는 않았다.[1]

2번과 연결이 되는 저자가 쓴 책, The Power of Peonage(1979) 의 핵심은 관리자의 위치보다는 기술자의 위치가 자신이 하는 일을 능숙하게 할 수 있으면서도, 관리에 영향을 줄 수 있다는 것이다.

근본적인 물음은, 왜 이런 기술자 스타일의 저자가 관리에 관한 책을 썼느냐인데, 정작 중요하면서도 자주 잊어버리는 것은 관리 측면이기 때문이라는 것이다. 기술자의 위치는 자신의 일을 할 수 있으면서도 관리에 영향을 준다는 것이다.(이것이 The Power of Peonage 의 결론)

이러한 전제 조건 안에서, 저자는 소프트웨어 공학에 있어서 사람들이 자주 잊어 버리는 것들을 모아 책으로 엮은 것이다. 저자가 중요시한 주제는 '사람', '도구와 기술', '추정', '재사용', '복잡성'... 이 안에서 여러가지 소주제[2]를 두고 3~4페이지로 저자의 입장을 기술한다. 초반에는 유명한 말 중에 하나인 '최상의 프로그래머는 최악의 프로그래머 보다 28배 뛰어다' 라는 말 같은 것을 소주제로 삼기도 한다.

이번 포스팅이 책 외의 것들을 언급하면서 다소 복잡하게 되어버렸는다. 요약하자면, 이 책은 기본적으로 소주제를 통해 흔히 잊을 수 있는 몇몇 사실(혹은 오해, 혹은 논쟁의 여지가 남겨진 하나의 의견)들을 다시한번 생각해 볼 수 있는 계기를 줄 수 있는 책이다. 거기에 관리자 측면이 아닌 개발자 측면일 지라도 관리의 중요성을 느낀다면, 이 책이 좋은 선택일 것이다. 저자 스스로가 개발자 스타일이라는 것을 밝혔기 때문이기도 하다.

  1. 2번의 부분은 다소 모순적으로 들리지만, 저자는 이 주제로 책을 썼다고 한다. The Power of Peonage(1979) 조만간 여유가 생기는데로 봐보려 한다. [본문으로]
  2. 여기서 말하는 소주제는 55가지 사실(Facts)와 몇가지 오해(Fallacies)를 말하는 것이다. [본문으로]
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/12/20 22:10 2007/12/20 22:10

트랙백 주소 :: http://www.hybrid.pe.kr/tt/trackback/301

댓글을 달아 주세요

  1. netaz 2007/12/25 07:42  댓글주소  수정/삭제  댓글쓰기

    software engineering 싫어하는 한 사람으로서
    이 책은 잘 봤지요 ㄱ- 브리드옹은 학문에 열정이.. ㅜ_ㅠ

    • Hybrid 2007/12/25 19:52  댓글주소  수정/삭제

      SE가 싫어도 이쪽에서 배울께 많아서.... ㅡ0ㅡ; 연구/조사된 것들이나 논문들이 상당히 많은데, 의외로 70~80년대부터 이어져온 이론들이 많더군요. (그래픽 분야도 그러던데....)
      하지만, 이 저자가 책에서 종종 얘기하듯이, 문제점은 다들 공감을 하는데도 마땅한 해결책이 없는 경우가 굉장히 많아서 문제입니다. 쩝....

  2. k16wire 2008/01/02 09:40  댓글주소  수정/삭제  댓글쓰기

    요즘 위키북스에서 나온 Release It 을 읽고 있습니다. 이게 아주 재밌네요. 다 읽고 나면 블로그에 올리겠습니다. 새해 복 많이 받으세요.

    • Hybrid 2008/01/03 05:25  댓글주소  수정/삭제

      닉네임으로 바꾸셨군요~ ^^;
      k16wire님도 새해 복 많이 받으세요.
      이 책은 의외로 빨리 읽을 것 같아서 아까워서 천천히 읽고 있습니다. 다음에 이 책처럼 편하게 읽을 책을 좀 찾아보려하고 있습니다. 블로그 포스팅 되면 또 참고 해야겠네요~

[로그인][오픈아이디란?]