세상에 만들어지는 모든 것들은 생로병사라는 인생의 사이클을 가지고 있습니다. 태어나고 늙어가고 병들고 죽습니다. 그 동안 또 다른 버전을 내놓게 됩니다. 한 세대와 다음 세대 사이에는 겹치는 부분이 있습니다. 공존하는 시간 동안 학습을 통해서 문화가 만들어지고 전달이 됩니다.

사용자 삽입 이미지
image from: http://www.billyfire.com/plan.php


소프트웨어도 같은 맥락에서 바라보면 태어남, 늙어감, 병듦, 소멸에 대한 사이클을 갖고 있다고 할 수 있습니다. 태어나서 서비스를 할만큼 성장하고 갖가지 입력값과 쌓이는 데이터를 처리하면서 늙어갑니다. 버그나 해킹 그리고 시대의 변화에 따라 가지 못함으로 병이 들고, 사람들이 떠납니다. 그리고 소프트웨어는 역사의 뒷켠으로 소멸하게 됩니다.

인기 있는 소프트웨어가 있는가 하면 조용히 묵묵히 자기 일을 하다가 스러지는 소프트웨어들이 더 많습니다. 인명은 재천이라고 사람의 태어나고 죽음이 하늘의 뜻인 것처럼 소프트웨어의 명은 만들고 사용하는 프로그래머와 유저들에 달려있습니다.

흔히 버전이라는 것으로 소프트웨어의 생명을 연장하려고 합니다. 유년기에 해당하는 알파버전 청소년기에 해당하는 베타버전, 성인으로 세상에 나서는 1.0 그리고 20대에 해당하는 2.0, 쓸만해진 3.0, 이미 세상에서 인정받는 버전 4.0, 이렇게 소프트웨어는 성장합니다.

컴퓨팅 환경이 바뀌고, 사람들의 생활방식이 바뀌는 것에 적응해야 좋은 소프트웨어로 많은 사람들에게 서비스를 지속할 수 있습니다. 변화의 흐름에 맞는 소프트웨어, 또는 사람들을 변하게 할 수 있는 재주를 가진 소프트웨어가 가치를 만들어냅니다.

안정적인 서비스를 지속하면서, 더 나은 버전의 새로운 탄생을 준비하는 것. 소프트웨어 엔지니어가 해야할 일이 아닌가 생각해봅니다.

+ Recent posts