내가 알고 있는 소프트웨어의 특징은

[그림1] 소프트웨어의 특징 

 소프트웨어는 개발 언어로 프로그래밍된 코드의 집합체이다. 그 특징을 살펴보면 첫째 소프트웨어 개발자의 창의성이 어떻게 적용되느냐에 따라서 개발 기간 및 그 성능이 결정된다. 둘째 하드웨어와 달리 추가 생산(복제)해도 추가 비용이 들지 않는 “수확체증의 법칙”이 적용된다. 마지막으로 셋째 소프트웨어는 하드웨어의 메모리 또는 AP(Application Process; 컴퓨팅 기능을 하는 비메모리)에 저장 또는 연산 처리과정을 거쳐 작동한다.

1) 인재가 소프트웨어의 핵심

소프트웨어와 관련해서 사람의 중요성을 인식하게 된 계기가 있었다. 2000년대 초반에 필자가 S전자의 휴대폰 사업부에서 근무했을 때 경험이다. 당시 사업부 내에는 S개발 센터와 K 개발 센터가 있었다. 지리적 입지 때문에 S개발 센터에 좀 더 우수한 개발인력들이 있었고 상대적으로 K개발인력들은 역량이 좀 떨어지는 상황이었다. 그리고 고사양의 소프트웨어는 본사 예하에 있는 M센터 예하의 소프트웨어 개발조직에서 담당했었다. 

당시 A라는 소프트웨어 개발 업무가 K개발센터의 개발자 100명에게 주어졌는데 3달간 해도 결과물이 잘 안 나왔었다. 하지만 소프트웨어 A를 M센터 개발자 1명에게 과제를 줬더니 1주일 만에 개발했다는 이야기를 들었다. 이 인력의 가치를 단순히 금전으로만 계산해도 K개발 센터의 소프트웨어 개발자 월급을 300만원으로 가정했을 때 M센터의 소프트웨어 개발자는 월급을 36억원 어치가 된다. 그 외에 개발일정을 빠르게 했다는 것을 감안한다면 그 가치는 몇 백억원의 가치가 될지도 모른다.

 하드웨어는 더 많은 개발 인력을 투입할수록 더 많은 그리고 더 좋은 성과물이 나올 확률이 높다. 하지만 소프트웨어는 하드웨어와 달리 많은 인력이 투입되더라도 반드시 더 높은 성과를 가져오지 않으며 오히려 인력의 질적 역량(Quality)이 더 중요한 산업이다.



[그림2] 우수한 소프트웨어 인력의 금전적 가치 



2) 소프트웨어가 기기의 원가 경쟁력을 결정

 앞서 언급한 것처럼 소프트웨어는 개발자의 창의력과 개발 역량에 따라 그 결과물의 차이가 크다. 어떤 개발자는 몇 백만줄의 코드를 써서 결과물을 만들어낼 수 있지만 우수한 개발자는 몇 백 ~ 몇 천줄의 코드만 사용해도 동일한 결과물을 만들어 낼 수 있다. 이렇게 볼 때 잘 개발된 소프트웨어는 그렇지 않은 소프트웨어에 비해 100 ~ 1000배 낮은 하드웨어에서도 똑 같은 성능을 낼 수 있다는 것을 알 수 있다. 

이처럼 잘 개발된 소프트웨어는 제품에 들어가는 낮은 성능의 메모리와 AP 및 배터리로도 충분히 원하는 결과물을 내어줄 수 있기 때문에 제품의 원가를 낮출 수 있다. 만약 잘 짜여진 소프트웨어 덕분에 낮은 사양의 AP와 메모리를 사용해 대당 1만원의 비용을 절감한다면 만약 1천만대가 팔렸다면 1천억의 비용을 절감할 수 있을 것이다. 그리고 이는 아직까지 애플의 아이폰이 하드웨어 성능은 떨어져도 더 높은 사양의 스마트폰에 비해 사용관점에서 떨어지지 않는 이유이기도 하다.




3) 소프트웨어 핵심은 재사용… 추가 생산 및 복제해도 추가 비용이 거의 없음. 

 소프트웨어는 인간의 창의력과 지적 역량이 집약된 동시에 디지털화된 결과물로 존재하기 때문에 무형자산이며 동시에 복제가 쉽다. 그래서 하드웨어처럼 추가 생산을 위해서 원자재들을 소모할 필요가 없으며, 유형자원의 소비 없이 무한대로 재사용이 가능하다. 이러한 소프트웨어의 특징 때문에 누구나 비용 없이 자원을 사용하는 오픈 소스(Open Source)에 대한 관심이 특히 소프트웨어에서 더 강하다. 리눅스가 여전히 명맥을 유지하고 있으며 다양한 OSS(Open Source Software)에 대한 관심이 지속되는 이유도 소프트웨어 특징에 기인한다.