태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

소프트웨어 공학이 뭔가?

2009/01/15 16:04 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed
필자가 소프트웨어 공학(소프트웨어 엔지니어링)이란 용어를 안 것은 얼마 되지 않았습니다. 소프트웨어 공학이라는 용어를 접하고 그 내용을 보니 오랫동안 소프트웨어를 개발하면서 해왔던 그 방법 그대로를 적어 놓은 것에 불과했습니다. 물론 소프트웨어 공학에 포함된 전체 내용은 상당히 방대하지만 그 근본 원리와 핵심적인 내용들은 아주 익숙한 내용들이었습니다.

지금 글을 읽고 계신 분께서 소프트웨어를 아주 잘 개발하고 있다면 이들은 이미 소프트웨어 공학의 대가입니다. 단순히 머리가 좋아서 혼자서 잘 개발을 잘하는 것을 제외하고 여러 명의 팀을 이끌고 복잡한 시스템을 짧은 시간에 가장 적은 비용으로 품질 높은 제품을 이미 만들어 내고 있다면 소프트웨어 공학이란 말을 한번도 들어본 적이 없어도 이미 전문가입니다.

대부분의 뛰어는 개발자들은 소프트웨어 공학에 익숙합니다. 비록 소프트웨어 공학의 수많은 용어를 사용하지 않는 다고 하더라도 이미 잘하고 있습니다. 뛰어난 개발자란 뛰어난 프로그래머, 코더가 아닙니다. 

대학에서 소프트웨어 공학을 전공 과목으로 배웠다고 하더라도 실무에서 제대로 된 개발 방법을 경험한 개발자에 비해서는 그 이해도가 택도 없이 모자랍니다. 심지어는 대부분의 대학생들은 소프트웨어 공학에서 가르치는 대부분의 내용을 진정으로 이해하지도 못합니다.
소프트웨어 공학을 실무 경험은 없이 대학에서 가르치기만 하는 사람은 오히려 그 형식에 치중에서 전문가라고 보기 어려운 경우가 많습니다. 

그렇습니다. 현실에 적용해서 진짜로 시간과 비용을 줄일 수 없다면 진짜 소프트웨어 공학이 아닙니다. 좋은 방법론을 적용했더니, 개발시간이 더 오래 걸리고, 맨날 밤을 세야 하고, 개발자들의 사기도 떨어진다면 제대로 적절하게 적용한 것이 아닙니다.

소프트웨어 공학의 본질을 알아야 겠습니다. 근본은 바뀌지 않지만 그 방법은 소프트웨어 기술의 변화와 발전에 따라서 계속 바뀌어 나갈 것이라는 것을 쉽게 예측할 수 있습니다. 꾸준히 좋은 개발팀과 회사를 유지하려면 끊임 없는 개선이 필요합니다.



저작자 표시 비영리 변경 금지

전규현 소프트웨어이야기

Trackback Address: http://allofsoftware.net/trackback/52 관련글 쓰기
  1. 저도 소프트웨어 공학(테스트 부터) 이론은 업무를 진행한 후에 알았습니다. 제가 이렇게 해 보면 어떨까?해서 적용했던 방법(프로세스, TC 작성 방법, 인프라 구축)이 나중에 "아~ 이게 이거구나?"하는 것을 많이 느꼈습니다. 그 때는 좀 체계적으로 공부하고 싶다는 생각도 들곤 했습니다. 그러나 SE는 실무에서 나온 아이디어와 경험많이 당장의 개선에 도움이 된다는 확신이 섰습니다. 물론 선행 SE를 위한 노력도 해야겠지만 저하고는 잘 맞지 않은 것 같습니다. ^,.^;

  2. 정의의소님. 사실 미국에서도 개발자들이 이건 "소프트웨어 공학"에 입각하여 이렇게 하는 것이다 라고 생각하고 일하지 않죠. 그냥 다들 그렇게 하고 그렇게 하는 것이 당연하니까 하는 것들일 뿐인 경우가 대부분이죠. 어떻게 보면 그것이 당연한 것입니다.
    우리나라는 아직 너무 주먹구구식으로 개발하는 곳이 많아서 현실에서 배우기 어려우니 좀 체계적으로 따로 공부하고 경험자에게 배우고 토론하면 소프트웨어 공학을 별도록 익힐 필요가 있습니다.

  3. Software Engineer와 Engineering을 굳이 구분할 필요가 있을까요?
    뛰어난 Engineer가 뛰어난 Engineering을 한다는건 당연하겠지만
    현업에서는 둘을 다르게 보고 있는게 아쉽네요. 왜일까요?

  4. YUZI님 안녕하세요.
    현업에서는 아직 Software Engineering에 대한 인식은 별로 없는 것 같습니다.

  5. Blog Icon
    [1002]

    궁금한 점이 있습니다. 소프트웨어 공학의 원리와 바뀌지 않는 근본은 무엇인가요?

  6. [1002]님 안녕하세요.
    참 멋진 질문입니다. ^^

    세상의 어떤일이 근본과 원리를 한 문장에 설명할 수 있을까요? 예를 들어 성철 스님이 "산은 산이요, 물은 물이요"라고 세상의 원리를 한문장에 압축해서 말을 하지만, 이를 이해하는 사람은 거의 없죠. 이를 이해하는 사람은 이미 세상의 원리를 깨달은 사람이겠죠. 소프트웨어 공학의 목적은 소프트웨어를 "최소의 비용으로 최단 시간에 개발하는 것"입니다. 이것을 하나의 방법 또는 방법론으로 제시할 수 없는 이유이기도 합니다. 그리고 많은 실무 경험과 지식에 의한 깨달음이 있어야 그 근본은 알 수 있을 것입니다. 또, 자신은 어느정도 터득했다고 생각했어도 아닌 경우도 많습니다.

    제가 저술한 "소프트웨어 개발의 모든 것"이라는 책도 이런 저런 다양한 방법을 기술하기보다는 소프트웨어 공학의 근본 즉, 소프트웨어를 잘 개발하는 기본 원리에 포커스해서 기술한 책입니다. 소프트웨어 공학의 근본에 대해서 어느 정도 깨닫고 있다면 이책을 보고 거의 모든 내용을 공감하거나 오히려 자신의 의견도 피력할 수 있을 것입니다. 그리고 나면 저와 더 심도 있는 얘기를 할 수 있을 것 같습니다.

관리자가 이런 일까지?

우리나라 SW 조직에서 관리자란 위치는 참 애매한 위치다. 물론 전문 관리자라면 얘기가 다르지만 왕년에 SW를 조금 개발해 본 경우가 애매하다. 개발팀에서 가장 경험이 많은 SW 개발자들이 주로 팀장이 되곤 한다. 이 경우와..

과거의 성공이 발목을 잡을 때

수많은 소프트웨어 회사들이 첫번째 성공을 거두고 나서 두번째 도약에 실패하고 사라져간다. 물론 첫번째 성공도 어렵지만 이미 성공의 경험이 있고 방법을 알고 있는 회사들이 두번째 또는 세번째에는 많이 실패하는 이유가 무엇일까?..

스펙을 제대로 작성하는 것은 구식이다?

'소프트웨어 개발 방법이 얼마나 발전했는데 아직도 스펙을 제대로 작성하고 개발을 하는가?' 라고 하면서 스펙 작성에 반대하는 주장을 하는 사람들이 있다. 스펙, 설계를 작성하고 구현을 하고 테스트를 하는 방식으로 개발하는 것..

내가 개발에 집중할 수 없는 이유

우리나라에서는 개발자들이 개발에 집중할 수 없는 환경인 곳이 참 많다. 정도의 차이가 있지만 거의 대부분이라고 봐도 무방하다. 그 결정적인 이유는 개발자 혼자서 북치고 장구치고 다해야 하는 상황이기 때문이다. 원래는 이렇게..

설계가 필요할까?

최근에 Software Architect의 정체에 대해서 혼란을 겪고 있는 것 만큼 Software 설계에 대해서도 혼동스러운 것은 마찬가지인 것 같다. 그래서 설계에 대해서도 깔끔하게 정의를 해보자. 흔히 설계에 관한 다음..

Software Architect를 양성하는 나라

우리나라에서는 종종 SW Architect를 양성한다고 한다. 정부에서 막대한 예산이 지원도 되며 SW Architect를 양성하는 학원도 생기고 야단법석이다. 그럼 도대체 SW Architect는 무엇인가? SW Archi..

우리에게 지금 필요한 것은? 바로 이것

우리나라 대부분의 소프트웨어 회사들에게 가장 시급하게 필요한 것은 "기초 체력"이다. 히딩크가 우리나라 국가대표 축구팀을 처음 맞았을 때 강조한 것이 기초 체력이었다. 그전까지 우리는 국가대표 축구팀이 체력은 세계 어디를 내..

프로토타입을 재활용하면 될까? 안될까?

며칠 전 프로토타입에 관해 올린 글에 대해서 프로토타입 재사용에 대해서 여러 의견이 있어서 이 내용에 대해서 조금더 설명해보려고 한다. 2011/11/03 - [프로젝트/요구사항분석] - 프로토타입이란? 소프트웨어공학의 목적..

프로토타입이란?

프로토타입 (경제/경영) 양산(量産)에 앞서 제작해보는 원형(原型)을 '프로토타입'이라 하는데, 프로토타이핑이란 개발자들과 사용자들의 의사소통상의 효과를 증진시키기 위하여 취하는 시스템개발상의 기법이다. 일반적인 분석방법을..

같이 일하려면 적어라.

"협업은 말로 하는 것이 아니라 문서로 하는 것이다." 동서고금을 막론하고 개발자들은 적는 것을 싫어하고 또 잘 적지 못한다. 우리나라 개발자들은 그 정도가 훨씬 심하다. 우리나라에서는 회사가 크던 작던 상관없이 대부분 5년..