미래의 소프트웨어 구현의 방식은 현재와 같이 대규모의 소프트웨어 시스템을 개발하는 것보다는 작은 소프트웨어들이 개발되어 통합되는 것을 선호할 것이다. 누군지도 모르는 개발 관리 조직에 의해서 마련한 지침에 따라 소프트웨어가 개발되지 않는다.

독립적인 다양한 소프트웨어 개발자들이 자율적으로 소프트웨어를 개발하고, 개발자간에는 서로 표준 규약을 인정한다. 이로써 작은 소프트웨어 기능들이 자연스럽고 유기적으로 통합될 수 있다.

그렇기 때문에 특정 개인의 독단적인 사고가 수많은 개발 참여자에게 일방적인 힘을 발휘할 수 없다. 구현의 방식은 개방된 환경에서 서로의 경쟁을 자극하는 요소가 가미되어 더 좋은 소프트웨어를 개발할 수 있는 힘의 원천이 된다.

개발된 소프트웨어는 스스로의 높은 품질 기준과 사회적 합의에 따른 도덕적 책임에 따라 배포되어야 한다. 그렇지 않으면 주변의 많은 참여자로부터 비난과 지탄을 받기 때문이다. 잘못된 소프트웨어로부터 발생하는 문제와 피해는 집단과 개인 스스로의 통제력이 발휘되지 않으면 큰 재앙이 될 수도 있다. 누구도 통제하지 않기 때문에 개인의 실수와 잠재적인 문제 혹은 의도적인 일탈 행위에 의해서 발생되는 사회적 이슈가 돌이킬 수 없는 큰 사회적 재난이 될 수 있다.

사회적 재난을 방지하기 위하여 국가나 공인된 단체에서 소프트웨어와 가공된 정보의 신뢰성을 담보하는 최소한의 제도, 시스템 및 장치를 만들어 내는 사회적 합의가 필요할 수도 있다. 하지만 최소한의 간섭이라도 창의성을 제약할 수 있다는 문제가 있다. 간섭은 자유와 자율을 갈망하는 많은 소프트웨어 전문가들에게는 받아들이기 쉽지 않은 정책일 수도 있다. 창의성에 바탕을 둔 소프트웨어 개발에 최소한이라도 공공기관의 직접적인 통제는 사고를 통제하려는 것으로 오해 받을 수 있기 때문에 바람직하다고는 할 수 없다.

이상적인 소프트웨어 생태계는 소프트웨어가 경쟁을 통하여 다수에 의해서 검증되고 채용되어짐으로써 소프트웨어 독재가 나오지 않도록 한다. 낮은 품질과 오염된 코딩으로 정보가 왜곡되지 않도록 해야 하고, 다수가 원하지 않고 다수가 요구하지 않은 소프트웨어는 자연발생적으로 도태되는 환경이 구축되어야 한다.

개방적이고 공유된 소프트웨어 생태계 안에서 다수가 인정한 규약에 따라 선제적인 품질 검증과 신뢰성을 확보함과 동시에 참여한 개발자들 간의 상호간의 적극적인 의사소통을 통해서도 검증할 수 있는 환경이 제공되어야 한다. 이 방법을 실현하는 것이 소프트웨어 생태계를 책임지는 공개된 소프트웨어 관리 및 개발 플랫폼이다.

소프트웨어 생태계에서도 자연 생태계처럼 우월한 유전자를 가진 종이 살아 남고 그렇지 못한 종은 도태되는 자연의 법칙이 작동한다고 할 수 있다. 개발자의 도태가 아니라 개발자가 만든 소프트웨어의 도태를 의미한다. 선의의 불량 소프트웨어라면 개발자는 도태된 소프트웨어를 진보시켜서 생태계에서 살아 남을 수 있는 기회가 제공되어야 한다. 또한 동일한 기능을 하는 다수의 소프트웨어는 공개된 소프트웨어 생태계에서 경쟁하여 사용자들에 의해서 선정되어 사용되기 때문에 개발된 소프트웨어는 우수한 유전자 즉 우수한 알고리즘을 가진 것들만 사용될 수 있는 것이다.

채성수 chaesungsoo@iabacus.co.kr 소프트웨어개발 전문기업 ㈜애버커스 사업총괄부사장. 엘지전자와 엘지씨엔에스(LG CNS)에서 다년간 컴퓨터 관련 사업을 추진한 전문가이다. 국가 공인 최고 자격인 정보관리기술사로 대학에서 컴퓨터 관련 연구를 하였다. ‘속도경쟁사회’, ‘코딩을위한컴퓨팅사고력’ 등 5권의 책을 저술하였으며 넥스트데일리의 컬럼니스트로 활동하였다. 현재 ㈜애버커스의 COO로 근무하고 있다.

(*이 칼럼은 Nextdaily의 편집방향과 다를 수 있습니다.)

관련기사

저작권자 © 넥스트데일리 무단전재 및 재배포 금지