왜 소프트웨어에서 실패를 할까?
많은 회사들인 하드웨어보다는 소프트웨어에서 더 실패를 많이 한다. 사실 우리나라의 여러 산업분야에서 하드웨어는 이미 세계최고 수준에 이르렀다. 그런 회사들 조차 낙후된 소프트웨어 역량 때문에 경쟁력을 잃곤 한다.
그 이유는 무엇일까?
첫째, 하드웨어는 제대로 설계를 하면서도 소프트웨어 설계는 아예 없거나 엉성하기 그지 없다.
소프트웨어는 인류가 만들어낸 모든 지식 산업 중에서 가장 복잡하다고 한다. 그럼에도 불구하고 우리나라에서는 소프트웨어 만큼 엉성하게 만드는 것도 없다.
작은 집을 만들던, 빌딩을 만들던간에 설계 없이 만드는 것은 없다. 하다못해 작은 장난감도 잘 만들어진 설계가 필요하다. 그럼에도 소프트웨어는 설계없이 만드는 경우가 허다하다.
사실 하드웨어는 제대로 설계를 하지 않으면 아예 동작하지 않는다. 하지만 소프트웨어는 대단히 소프트하다는 착각에 대충 만들어서 통합이 안되거나 동작을 잘 안하면 조금씩 고쳐서 해결 할 수 있을 것으로 생각한다. 하지만 이는 대단한 착각이다. 하드웨어는 만들어 놓고 쓰다가 망가지면 버리면 되지만 소프트웨어는 한번 만들어 놓은 아키텍처가 생각보다 오래가고 나중에 발목을 잡게 된다.
또한, 하드웨어는 고객이 원하는대로 마음대로 변경해주지 않는다. 하지만 소프트웨어는 쉽게 바꿀 수 있다는 착각하에 고객마다 다른 제품을 만들어서 제공하는데, 이런 회사들은 대부분 미래에 유지보수를 감당하지 못하게 된다.
공공 입찰의 경우 제대로된 스펙과 설계서를 요구하긴 하지만 대부분 페이지 수만 채운 형식적인 것이고 실제 개발에 제대로 쓰이지 않는다. 결국 개발자들이 머리 속으로 설계를 해서 개발하는 것이 일반적이다.
이렇게 해서는 당장 제대로 만드는 것을 떠나서 미래에 벌어지는 수많은 문제들을 점점 키우게 된다.
둘째, 소프트웨어는 완전히 다른 기업 문화를 요구한다.
하드웨어는 몇몇 천재가 기가막힌 물건을 만들어 낼 수 있다. 물론 하드웨어 분야도 수많은 사람들의 협업으로 돌아가지만 소프트웨어와는 사뭇 다르다.
소프트웨어 개발은 거의 모든 단계에서 대단한 협업이 필요하다. 또한 수평적인 조직 문화가 필요하다.
윗사람이 지시하고 이를 따르고 보고하고 통제하는 문화로는 절대로 소프트웨어를 제대로 개발할 수 없다.
자율적으로 판단하고 공유하고 리뷰하고 능동적으로 대처하는 문화가 필요하다. 관리자가 철저히 통제하고 관리하는 문화는 이를 저해하게 된다.
세째, 소프트웨어를 잘아는 경영자가 필요하다.
많은 사람들이 소프트웨어는 하드웨어를 동작하는데 도움을 주는 부수적인 부품으로 생각한다. 이런 하드웨어적인 마인드로는 소프트웨어를 절대로 잘 개발할 수 없다. 소프트웨어를 담당하고 있는 경영자라면 소프트웨어를 매우 잘 알고 제대로 된 소프트웨어 경험이 많아야 한다. 그래야 소프트웨어 전략을 수립할 수 있다.
축구를 해본적도 없는 관중 수준의 사람에게 축구 감독을 맡길 수는 없다.
안타까운 것은 우리나라는 소프트웨어 분야에 있어서는 너무나 갈길이 멀다는 것이다.
다행인 것은 많은 사람들이 소프트웨어에 관심을 가지기 시작했다는 것이다. 냄비처럼 확 끓었다가 식는 것이 반복하지만 않았으면 좋겠다.
* 이 포스트는 blogkorea [블코채널 : 꿈꾸는 소프트웨어 개발자 세상] 에 링크 되어있습니다.
Image by pt
'소프트웨어이야기' 카테고리의 다른 글
| SW개발자 블랙홀 (2) | 2011/10/22 |
|---|---|
| 사업부의 한계 (2) | 2011/08/25 |
| 왜 소프트웨어에서 실패를 할까? (10) | 2011/08/21 |
| 삼성이 M&A를 통해서 이번에는 소프트웨어 경쟁력을 갖출 수 있을까? (2) | 2011/08/19 |
| 개헤엄은 아무리 잘 해도 개헤엄 (9) | 2011/07/14 |
| 개발자는 글을 잘 쓰지 못한다? (11) | 2011/06/12 |
-
2011/08/21 22:22소프트웨어, 비관적이라고? 과연 그럴까? Tracked from Robbin의 퍼블리싱 이야기













세째, 소프트웨를 잘아는 경영자가 필요하다.
소프트웨 -> 소프트웨어
감사합니다.
하드웨어도 버그가 있습니다.
물론 소프트웨어 보다 벤더 및 종류가 적고 생산량이 큰 사업이기 때문에 그 영향이 작지만요.
그러한 버그를 제품 드라이버와 OS가 감안하고 동작하고요.
인텔 칩셋 드라이버 등에 그러한 내용들이 다수 포함되어 업데이트 됩니다.
사람이 만든 건 100% 완벽할 수 없기에 갈고 닦는 건 SW건 HW건 필수인가 봅니다. ㅎㅎㅎ
글 요지에 영향이 없는 부분이지만 댓글 달아봅니다. 언제나 좋은 포스팅 감사합니다.
안녕하세요. 김충환님
맞습니다. 하드웨어를 하는 사람들은 더 설계를 잘하는 것이 하드웨어에 버그가 생겨서 교체를 해야 하는 경우는 비용이 엄청나게 들기 때문인 것 같습니다.
그런데 소프트웨어는 버그가 있으면 나중에 쉽게 고쳐주면 된다고 생각합니다.
또한 하드웨어 디자인 체계는 이미 오랜 시간 정립이 되어서 규약, 프로세스, 툴, 마인드 등 이미 상당 수준입니다.
소프트웨어는 특히 우리나라는 하드웨어에 비하면 낙후되어 있습니다.
소프트웨어를 하는 사람들도 하드웨어의 마인드를 좀 배워야할 것 같습니다.
돈이라고 생각합니다
우수한 인력이 왜 소프트웨어 개발을 하겠습니까 다 의전원 로스쿨 가죠..
일이 힘들다 해도 그만큼 돈을 많이 주면 해결될 문제죠
문제는 위에서 그럴 생각이 전혀 없다는거..
결국 싸구려 인력으로 외국 유명한 프로그램을 흉내낸 싸구려 프로그램만 만들거고
경쟁에서 뒤쳐져서 언젠가 훅 가겠죠
모바일 OS만 봐도 개발 인력이 없다고 난리치는데, 누가 미쳤다고 돈 도 안되는 OS를 하고 있겠습니까
이런 건 정부에서 미리미리 투자해서 키워야 하는데..
최근 과제를 하는데 소프트웨어 우습게 보는데 참 짜증나더군요
그거 얼마면 만들겠다 하는데 참..
돈은 90%를 다 가져가면서 뭘 그리 기대하는지 -_-;;
한 번 크게 당해봐야 정신 차릴겁니다.
그때 가서 울면서 난리치겠죠
미국에서는 거의 매년 소프트웨어 개발자가 의사, 변호사를 제치고 소득 상위를 차지합니다.
그만큼 경쟁력이 있고 돈이 돌기 때문에 연봉도 높습니다. 우리나라도 소프트웨어 경쟁력이 있고 돈이 되면 돈을 많이 주고라도 소프트웨어 개발자를 모셔올 겁니다.
갈길이 멀죠.
다년간 미국생활을 통해 깨달은 점은 소프트웨어에 대한 시민의식 수준입니다.
게임하나도 구매를 통해 플레이하는 문화랑 일단 다운로드받고 시작하는 문화, 미국에서 불법다운로드했다는 말은 하는 건 나 마리화나 핀다는 말보다 더 꺼내기 어렵죠.
하나의 소프트웨어를 만들때 들어간 그 인력의 노력과 자본을 소중히 여길줄아는 문화가 먼저 형성이 된다면
기업문화역시 항상그래왔듯이 금새 따라갈겁니다.
그래서 교육이 중요한거죠.
비밀댓글입니다
감사합니다. ^^
위에서 하신 말씀에 전적으로 동감합니다. ^^
조금 더 의견을 덧붙이자면...
분석/설계 과정에서 정확하게 요구사항을 도출하지 못하거나 잘못된 해결책을 선택하는 경우도 많아서
개발이 한참 진행된 후에 문제가 붉어지는 것도 소프트웨어가 실패하는 원인 중에 하나인 것 같습니다.
그리고 필요 이상으로 개발 기간을 당겨서 잡는 것도 한 몫하구요. ^^;;;
(무리하게 일정을 당기면 품질에 문제가 있는 것을 매번 경험하면서도 반복하는 건...
문제가 있다고 생각합니다)
좋은 글 잘 읽고 갑니다. ^^