2006년 7월 17일

소프트웨어 엔지니어링과 다른 엔지니어링의 차이점

[참고 아티클] 소프트웨어 개발 대 소프트웨어 엔지니어링

위의 아티클은 소프트웨어 엔지니어링에 대해 진지하게 생각해 볼 수 있는 기회를 줍니다. 다만 번역이 그리 매끄럽지는 않으니 감안하여 보시고요.

발췌한 다음의 내용은 소프트웨어 엔지니어링과 다른 엔지니어링의 차이점에 대한 상당히 통찰력 있는 지적을 담고 있습니다.

광범위하게 적용될 수 있는 몇 가지 소프트웨어 규칙들이 있다. 화학 엔지니어와 전기 엔지니어들은 물리학과 화학의 기본 원칙을 따라 설계한다. 만약 소프트웨어 법칙이 있다면 아직 그것들을 발견하지 못한 것 같다. 컴퓨터 하드웨어 디자이너들은 정확한 공식을 사용하면 그들이 설계하는 칩에서 발생하는 열의 양을 계산할 수 있지만 소프트웨어 엔지니어들은 프로그램 사이즈 같은 제품 속성을 측정할 방법 조차도 합의에 이르지 못한다.

소프트웨어의 스펙은 지속적으로 변한다. 심지어 개발 사이클 후반에도 바뀔 수 있다. 절반 정도가 완성된 다리를 보고, "저기요, 내가 보기에 이 다리가 여기 보다는 저쪽에다 짓는 것이 나을 것 같은데요! " 라고 말하는 고객은 없을 것이다. 불행히도 그와 같은 요구 사항에 대한 변경 요청은 소프트웨어에는 끊임없이 발생한다.

윗글의 필자는 학생들에게 소프트웨어 엔지니어링 대신에 소프트웨어 개발을 가르쳤고, 그것의 유용함을 믿고 있다고 주장합니다.

한가지 부연을 하자면, 소프트웨어 개발은 멘탈 작업으로 이루어져 있다는 사실입니다. 즉 사람의 정신적인 작용을 통해 결과물이 만들어집니다. 그래서 엔지니어링만으로 다루어질 수 없는 무엇이 있습니다.

“사람으로 시작해서 사람으로 끝난다는 것”

소프트웨어 엔지니어링은 다른 엔지니어링과 분명히 다릅니다.

댓글 없음:

댓글 쓰기

댓글을 환영합니다.

스팸으로 인해 모든 댓글은 운영자의 승인 후 등록됩니다. 스팸, 욕설은 등록이 거부됩니다. 구글의 블로그 시스템은 트랙백을 지원하지 않습니다.