2017년 2월 13일 월요일

산업 발전과 소프트웨어의 역할

Q: 소프트웨어 산업이 없어진다는 말씀은 조금 충격적인데요? 어떠한 이유인지 자세한 설명을 부탁합니다.

없어지는 것이 아니라 독립적으로 분리된 산업에서 모든 산업에서 사용되는 것으로 더 커지는 것으로 봐야지요. 소프트웨어 개발자가 소프트웨어 산업에서만 필요했는데 이제는 모든 산업에서 필요하다는 의미입니다. 이 점은 매우 중요한데요. 모든 산업이 대부분 하드웨어 중심으로 변화를 해왔지만 이제는 하드웨어가 아닌 소프트웨어 중심으로 변화한다는 것입니다.

Q: 산업 발전에 소프트웨어가 중추적인 역할을 할 것이라는 이유는 무엇인가요?

최근의 산업 트렌드는 IT를 중심으로 만들어지고 있습니다. 공공이나 금융 산업은 물론이고 제조와 서비스 산업까지 모두 IT를 빼고는 얘기할 수 없을 정도가 되었습니다. IT가 적용된 것들을 움직이게 하기 위해서는 운영체제나 펌웨어를 포함한 소프트웨어가 절대적으로 필요합니다. 그리고 소프트웨어 중심으로 변화하는 것은 산업의 몇가지 변화를 이끌어 냅니다.
첫째는 하드웨어 중심에서 사용자 중심으로 변합니다. 지금까지의 산업 변화는 하드웨어와 연관된 기술이 발전되어 변화했지만 이제는 하드웨어는 그대로라고 해도 사용자가 바뀌면 산업이 변할 수 있다는 것입니다.
둘째는 제품 중심에서 서비스 중심으로 변합니다. 우리는 제품을 구입해서 정해진 사용법에 맞춰 사용을 하고 일정 기간이 지나면 폐기하고 새로운 것을 사게 됩니다. 하지만 이제는 내가 원하는 서비스에 맞춰 제품이 만들어지고 내가 원하는 사용법에 맞춰 사용할 수 있습니다.
셋째는 독립적 구성에서 연결적 구성 중심으로 변합니다. 우리는 제품을 구입하면 단독으로 사용을 하게 됩니다. 중간에 고장이 나면 서비스 사원이 방문해 수리를 해야했고 내가 가진 제품이 다른 사람의 제품과 비교를 할 수도 없었습니다. 이제는 네트워크로 실시간 연결이 되어 있기 때문에 원하는 정보를 제품에 바로 반영을 할 수도 있고 내가 가진 정보를 쉽게 다른 곳으로 전송을 할 수도 있고, 이러한 정보 공유는 다양한 다른 서비스나 제품을 만들어 낼 수 있습니다.

<그림3> 소프트웨어로 인한 산업의 변화

이러한 변화를 만들어내기 위해서 소프트웨어가 반드시 필요합니다. 소프트웨어는 각 산업에서 만들어내는 제품이나 서비스가 원활히 움직이도록 체계적인 기능을 제공하게 됩니다. 여기에 4차 산업혁명의 핵심인 자율적 기계 개념이 추가된다면 더 소프트웨어가 필요하게 되겠지요.


SK C&C Agile 방법론(SKPE-Agile)

출처: http://skccblog.tistory.com/299
2009년부터 SK C&C에서는 고객과 개발자, 테스터 간 커뮤니케이션을 강화하고, 개발 주기를 짧고 반복적으로 하여 완성도를 향상하고, 마지막으로 개발 초기부터 테스트를 강화하여 결함을 조기에 식별하도록 하는 애자일 기반의 개발방법론을 정립하였다.
사업수행에 필요한 프로세스 정립을 위해 애자일 프랙티스의 적용 접근방법에 대한 가이드를 만들어 제공하였고, 이를 토대로 프로젝트 상황에 맞게 선별적으로 필요한 부분만 적용하였다(그림7).

<그림7> 애자일 프랙티스 적용 접근방법 사례
출처: SK C&C Agile 방법론 적용 사례

그림7을 살펴보면 애자일을 적용하는 원칙을 기반으로 프로젝트에서 불필요한 공정이나 문제 요소를 제거하고 효율적인 부분만 반영하여 해결방안을 도출하여 프로젝트에 적용하고 있다. 소프트웨어 개발 프로세스는 표준화된 모델을 기준으로 취사선택하도록 되어 있지만 능동적으로 프로세스를 개선하도록 하는 애자일 원칙을 적극 반영하는 것으로 나타난다. 그림8은 이렇게 적용된 개선된 프로세스를 중심으로 프로젝트의 개발 수행 체계를 도출한 사례다.

<그림8> 프로젝트 개발 수행 체계 개선 사례
출처: SK C&C Agile 방법론 적용 사례

그림8의 좌측 하단의 노란색 부분을 살펴보면 요구사항 정의/추가/변경 관련 빠른 의사결정과 잦은 피드백 환경 마련을 주요 개선점으로 끌어내어 고객과 프로젝트 간의 커뮤니케이션을 강화하여 요구사항을 원하는 수준까지 정의하도록 한 것으로 보인다. 그리고 반복 점진적 개발 방식을 도입하여 요구사항을 조기에 검증하여 요구사항 정의에 대한 중요성을 강조하고 있다.


디자인 씽킹 - 고객을 위해서가 아니라 '고객으로부터' 사고하라.