태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

왜 소프트웨어에서 실패를 할까?

2011/08/21 11:59 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed




많은 회사들인 하드웨어보다는 소프트웨어에서 더 실패를 많이 한다. 사실 우리나라의 여러 산업분야에서 하드웨어는 이미 세계최고 수준에 이르렀다. 그런 회사들 조차 낙후된 소프트웨어 역량 때문에 경쟁력을 잃곤 한다.

그 이유는 무엇일까?

첫째, 하드웨어는 제대로 설계를 하면서도 소프트웨어 설계는 아예 없거나 엉성하기 그지 없다. 

소프트웨어는 인류가 만들어낸 모든 지식 산업 중에서 가장 복잡하다고 한다. 그럼에도 불구하고 우리나라에서는 소프트웨어 만큼 엉성하게 만드는 것도 없다. 
작은 집을 만들던, 빌딩을 만들던간에 설계 없이 만드는 것은 없다. 하다못해 작은 장난감도 잘 만들어진 설계가 필요하다. 그럼에도 소프트웨어는 설계없이 만드는 경우가 허다하다.

사실 하드웨어는 제대로 설계를 하지 않으면 아예 동작하지 않는다. 하지만 소프트웨어는 대단히 소프트하다는 착각에 대충 만들어서 통합이 안되거나 동작을 잘 안하면 조금씩 고쳐서 해결 할 수 있을 것으로 생각한다. 하지만 이는 대단한 착각이다. 하드웨어는 만들어 놓고 쓰다가 망가지면 버리면 되지만 소프트웨어는 한번 만들어 놓은 아키텍처가 생각보다 오래가고 나중에 발목을 잡게 된다.

또한, 하드웨어는 고객이 원하는대로 마음대로 변경해주지 않는다. 하지만 소프트웨어는 쉽게 바꿀 수 있다는 착각하에 고객마다 다른 제품을 만들어서 제공하는데, 이런 회사들은 대부분 미래에 유지보수를 감당하지 못하게 된다. 

공공 입찰의 경우 제대로된 스펙과 설계서를 요구하긴 하지만 대부분 페이지 수만 채운 형식적인 것이고 실제 개발에 제대로 쓰이지 않는다. 결국 개발자들이 머리 속으로 설계를 해서 개발하는 것이 일반적이다.

이렇게 해서는 당장 제대로 만드는 것을 떠나서 미래에 벌어지는 수많은 문제들을 점점 키우게 된다.

둘째, 소프트웨어는 완전히 다른 기업 문화를 요구한다.

하드웨어는 몇몇 천재가 기가막힌 물건을 만들어 낼 수 있다. 물론 하드웨어 분야도 수많은 사람들의 협업으로 돌아가지만 소프트웨어와는 사뭇 다르다.

소프트웨어 개발은 거의 모든 단계에서 대단한 협업이 필요하다. 또한 수평적인 조직 문화가 필요하다.

윗사람이 지시하고 이를 따르고 보고하고 통제하는 문화로는 절대로 소프트웨어를 제대로 개발할 수 없다.
자율적으로 판단하고 공유하고 리뷰하고 능동적으로 대처하는 문화가 필요하다. 관리자가 철저히 통제하고 관리하는 문화는 이를 저해하게 된다.

세째, 소프트웨어를 잘아는 경영자가 필요하다.

많은 사람들이 소프트웨어는 하드웨어를 동작하는데 도움을 주는 부수적인 부품으로 생각한다. 이런 하드웨어적인 마인드로는 소프트웨어를 절대로 잘 개발할 수 없다. 소프트웨어를 담당하고 있는 경영자라면 소프트웨어를 매우 잘 알고 제대로 된 소프트웨어 경험이 많아야 한다. 그래야 소프트웨어 전략을 수립할 수 있다. 

축구를 해본적도 없는 관중 수준의 사람에게 축구 감독을 맡길 수는 없다. 

안타까운 것은 우리나라는 소프트웨어 분야에 있어서는 너무나 갈길이 멀다는 것이다.
다행인 것은 많은 사람들이 소프트웨어에 관심을 가지기 시작했다는 것이다. 냄비처럼 확 끓었다가 식는 것이 반복하지만 않았으면 좋겠다.

* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
Image by 
pt
저작자 표시 비영리 변경 금지

전규현 소프트웨어이야기

Trackback Address: http://allofsoftware.net/trackback/233 관련글 쓰기
  1. 2011/08/21 22:22
    소프트웨어, 비관적이라고? 과연 그럴까? Tracked from Robbin의 퍼블리싱 이야기
  1. 세째, 소프트웨를 잘아는 경영자가 필요하다.

    소프트웨 -> 소프트웨어

  2. 감사합니다.

  3. 하드웨어도 버그가 있습니다.
    물론 소프트웨어 보다 벤더 및 종류가 적고 생산량이 큰 사업이기 때문에 그 영향이 작지만요.
    그러한 버그를 제품 드라이버와 OS가 감안하고 동작하고요.
    인텔 칩셋 드라이버 등에 그러한 내용들이 다수 포함되어 업데이트 됩니다.

    사람이 만든 건 100% 완벽할 수 없기에 갈고 닦는 건 SW건 HW건 필수인가 봅니다. ㅎㅎㅎ

    글 요지에 영향이 없는 부분이지만 댓글 달아봅니다. 언제나 좋은 포스팅 감사합니다.

  4. 안녕하세요. 김충환님

    맞습니다. 하드웨어를 하는 사람들은 더 설계를 잘하는 것이 하드웨어에 버그가 생겨서 교체를 해야 하는 경우는 비용이 엄청나게 들기 때문인 것 같습니다.

    그런데 소프트웨어는 버그가 있으면 나중에 쉽게 고쳐주면 된다고 생각합니다.

    또한 하드웨어 디자인 체계는 이미 오랜 시간 정립이 되어서 규약, 프로세스, 툴, 마인드 등 이미 상당 수준입니다.

    소프트웨어는 특히 우리나라는 하드웨어에 비하면 낙후되어 있습니다.

    소프트웨어를 하는 사람들도 하드웨어의 마인드를 좀 배워야할 것 같습니다.

  5. Blog Icon
    csj

    돈이라고 생각합니다
    우수한 인력이 왜 소프트웨어 개발을 하겠습니까 다 의전원 로스쿨 가죠..
    일이 힘들다 해도 그만큼 돈을 많이 주면 해결될 문제죠
    문제는 위에서 그럴 생각이 전혀 없다는거..

    결국 싸구려 인력으로 외국 유명한 프로그램을 흉내낸 싸구려 프로그램만 만들거고
    경쟁에서 뒤쳐져서 언젠가 훅 가겠죠
    모바일 OS만 봐도 개발 인력이 없다고 난리치는데, 누가 미쳤다고 돈 도 안되는 OS를 하고 있겠습니까
    이런 건 정부에서 미리미리 투자해서 키워야 하는데..

    최근 과제를 하는데 소프트웨어 우습게 보는데 참 짜증나더군요
    그거 얼마면 만들겠다 하는데 참..
    돈은 90%를 다 가져가면서 뭘 그리 기대하는지 -_-;;
    한 번 크게 당해봐야 정신 차릴겁니다.
    그때 가서 울면서 난리치겠죠

  6. 미국에서는 거의 매년 소프트웨어 개발자가 의사, 변호사를 제치고 소득 상위를 차지합니다.

    그만큼 경쟁력이 있고 돈이 돌기 때문에 연봉도 높습니다. 우리나라도 소프트웨어 경쟁력이 있고 돈이 되면 돈을 많이 주고라도 소프트웨어 개발자를 모셔올 겁니다.

    갈길이 멀죠.

  7. Blog Icon
    Phil

    다년간 미국생활을 통해 깨달은 점은 소프트웨어에 대한 시민의식 수준입니다.

    게임하나도 구매를 통해 플레이하는 문화랑 일단 다운로드받고 시작하는 문화, 미국에서 불법다운로드했다는 말은 하는 건 나 마리화나 핀다는 말보다 더 꺼내기 어렵죠.

    하나의 소프트웨어를 만들때 들어간 그 인력의 노력과 자본을 소중히 여길줄아는 문화가 먼저 형성이 된다면

    기업문화역시 항상그래왔듯이 금새 따라갈겁니다.

    그래서 교육이 중요한거죠.

  8. Blog Icon

    비밀댓글입니다

  9. 감사합니다. ^^

  10. 위에서 하신 말씀에 전적으로 동감합니다. ^^

    조금 더 의견을 덧붙이자면...

    분석/설계 과정에서 정확하게 요구사항을 도출하지 못하거나 잘못된 해결책을 선택하는 경우도 많아서
    개발이 한참 진행된 후에 문제가 붉어지는 것도 소프트웨어가 실패하는 원인 중에 하나인 것 같습니다.

    그리고 필요 이상으로 개발 기간을 당겨서 잡는 것도 한 몫하구요. ^^;;;
    (무리하게 일정을 당기면 품질에 문제가 있는 것을 매번 경험하면서도 반복하는 건...
    문제가 있다고 생각합니다)

    좋은 글 잘 읽고 갑니다. ^^

문서를 작성하면 더 오래 걸린다는 고정관념

최근에 국내 유수 대학의 컴퓨터 공학 교수를 만난 적이 있다. 그 교수님도 문서를 작성하면서 Software를 개발하면 더 오래 걸린다고 굳게 믿고 있었다. 어느 정도 이해가 되는 상황이다. 원래 소프트웨어 공학은 실전에서..

이슈를 모으기도 정말 어렵다.

많은 회사들이 개발 프로세스 개선을 하겠다고 선진 개발 방법론을 흉내내거나 실패한 대기업의 프로세스를 가져다가 적용하곤 한다. 복잡한 프로세스와 많은 Template를 가져다가 적용해보려고 하는데 대부분은 실패를 한다. 기초..

변화에 실패하는 9가지 고정관념

회사는 끊임없이 변화하지 않으면 지속 성장하지 못한다. 하지만 변화는 피와 살을 깍는 고통을 동반하고 또 많은 회사가 변화에 실패해서 성장하지 못하거나 사라져간다. 보통의 사람들은 대부분 변화를 싫어하고 기존에 하던대로 계속..

좋은 프로그래머가 되는 24가지 방법

1. 프로그래밍에 열정이 있어야 한다. 열정이 없고 즐기지 못하면 평생하기 어려운 일이다. 2. 프로그래밍 기초 원리를 완전히 이해해야 한다. 원리를 모르면 근본적인 해결을 할 수 없다. 3. 문제 해결 능력을 키워야 한다...

요즘 실리콘밸리에서는...

얼마전 실리콘밸리의 한 Startup company에서 CTO로 일하고 있는 오랜 친구가 한국에 놀러와서 같이 여행을 갔다. Informix에서 소프트웨어 엔지니어로 시작해서 한 20년 정도 일한 중국인 친구다. 같이 일을..

전문가 vs. 책임자

우리나라 조직문화는 전문가보다 책임자를 선호한다. 조직의 장이 책임을 지고 모든 일을 알아서 하는 것이다. 상명하복 관계 위주다. 경영자가 SW개발에 대해서는 잘 모르는 경우 누구 한명이 책임지고 개발해줬으면 하는 생각을 하..

소프트웨어 회사의 자산은?

소프트웨어 회사의 자산은 무엇일까? 흔히 개발자가 소프트웨어 회사의 재산이라고 한다. 이런 회사일 수록 회사가 가지고 있는 것은 정말 개발자밖에 없다. 또한 파악하기 어려운 한 무더기의 소스코드가 있다. 개발자들이 나가면 이..

관리자가 이런 일까지?

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

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

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

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

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