※ 이 코너에서는 컴퓨터 프로그래머 및 개발자를 꿈꾸는 중고생 정보영재들에게 IT 전문가가 들려주는 유익한 이야기를 연재합니다.
소프트웨어 개발에서 가장 중요한 이슈는 무엇일까. 약 30년 전에는 고속 알고리즘과 최적의 데이터 구조였다. 겨우 3MHz의 8비트 6502 MPU와 64KB의 메모리를 가진 애플 II에서 프로그램을 실행해야 하는 환경이었으니 말이다. 파스칼 언어의 개발자 니클라우스 워스(Niklaus Wirth)가 1978년도에 쓴 ‘알고리즘+데이터 구조=프로그램’에도 적은 메모리를 사용하는 효율적인 알고리즘이 프로그램에서 얼마나 중요한지를 설명하고 있다.
그러나 1990년도를 넘어오면서 프로그래밍 환경이 서서히 변했다. 칩의 집적도가 18개월마다 2배씩 증가한다는 무어의 법칙이 적용되던 시기였다. 프로그램을 개선하지 않아도 2년마다 컴퓨터를 새로 도입하면, 프로그램 성능도 2배씩 좋아졌다. 개발자들은 점차 효율적인 알고리즘이나 적은 메모리를 사용하는 프로그램 방법에 대해 무관심해졌다.
한편 업무가 이전보다 훨씬 복잡해지고, 프로그래밍의 규모도 더 크고 복잡해졌다. 단지 몇 명의 개발자가 코딩하는 수준을 넘어섰다. 요구 분석부터 설계까지 일련의 과정을 문서로 정리하지 않고는 협업을 통한 안정된 프로그램 개발은 어려워졌다. 문서의 ‘미친 존재감’이 서서히 부각하기 시작했다. 소프트웨어 개발에서 문서는 고객의 요구를 개발로 이어주는 역할을 한다. 즉, 현재의 IT 환경은 ‘알고리즘+데이터 구조+문서=애플리케이션’이란 말로 요약된다.
그러나 아쉽게도 많은 개발자들이 소프트웨어의 한 축인 문서작성을 불편하게 생각한다. 대부분의 소프트웨어 교육과정에서 실무기술만을 배우며, 대부분의 프로젝트는 성과 위주로 평가받는다. 그러다보니 정작 기본 능력을 배양할 기회는 드물다.
개발자나 개발자를 꿈꾸는 학생들은 인터넷이나 블로그에서 다양한 정보를 얻고 있지만 그 정보들을 ‘재생산’하는 경우는 드물다. 그들은 많은 것을 익히고 많은 생각을 하고, 많은 것을 말할 수는 있지만, 그것을 글로 표현하는 능력이 부족하다.
필자가 그동안 만난 국내외의 수많은 정보영재들 또한 열정과 창의력은 뛰어났지만, 자신의 생각을 자유롭게 글로 적어낼 수 있는 학생은 극소수였다. 불과 몇 시간 전에 회의한 내용을 논리정연하게 적을 수조차 없다면, 글로벌화를 위한 표준 문서화나 개발 방법론을 도입한다고 하더라도 과연 성공할 수 있을까.
정말 글로벌 인재로 성장하고 싶다면 자신의 생각을 글로 표현하고, 남의 생각을 듣고 글로 적어내야 한다. 다른 프로그래밍 능력도 중요하지만, 무엇보다 글쓰기를 적극적으로 연마하기 바란다. 글로 제대로 적을 수 있어야 문서가 생명력을 갖는다. 그 문서가 수백 명, 수천 명이 함께 참여하는 소프트웨어를 개발할 수 있는 기반을 만든다. 글은 소프트웨어 개발의 시작과 끝이다.
소프트웨어 개발에서 가장 중요한 이슈는 무엇일까. 약 30년 전에는 고속 알고리즘과 최적의 데이터 구조였다. 겨우 3MHz의 8비트 6502 MPU와 64KB의 메모리를 가진 애플 II에서 프로그램을 실행해야 하는 환경이었으니 말이다. 파스칼 언어의 개발자 니클라우스 워스(Niklaus Wirth)가 1978년도에 쓴 ‘알고리즘+데이터 구조=프로그램’에도 적은 메모리를 사용하는 효율적인 알고리즘이 프로그램에서 얼마나 중요한지를 설명하고 있다.
그러나 1990년도를 넘어오면서 프로그래밍 환경이 서서히 변했다. 칩의 집적도가 18개월마다 2배씩 증가한다는 무어의 법칙이 적용되던 시기였다. 프로그램을 개선하지 않아도 2년마다 컴퓨터를 새로 도입하면, 프로그램 성능도 2배씩 좋아졌다. 개발자들은 점차 효율적인 알고리즘이나 적은 메모리를 사용하는 프로그램 방법에 대해 무관심해졌다.
한편 업무가 이전보다 훨씬 복잡해지고, 프로그래밍의 규모도 더 크고 복잡해졌다. 단지 몇 명의 개발자가 코딩하는 수준을 넘어섰다. 요구 분석부터 설계까지 일련의 과정을 문서로 정리하지 않고는 협업을 통한 안정된 프로그램 개발은 어려워졌다. 문서의 ‘미친 존재감’이 서서히 부각하기 시작했다. 소프트웨어 개발에서 문서는 고객의 요구를 개발로 이어주는 역할을 한다. 즉, 현재의 IT 환경은 ‘알고리즘+데이터 구조+문서=애플리케이션’이란 말로 요약된다.
그러나 아쉽게도 많은 개발자들이 소프트웨어의 한 축인 문서작성을 불편하게 생각한다. 대부분의 소프트웨어 교육과정에서 실무기술만을 배우며, 대부분의 프로젝트는 성과 위주로 평가받는다. 그러다보니 정작 기본 능력을 배양할 기회는 드물다.
개발자나 개발자를 꿈꾸는 학생들은 인터넷이나 블로그에서 다양한 정보를 얻고 있지만 그 정보들을 ‘재생산’하는 경우는 드물다. 그들은 많은 것을 익히고 많은 생각을 하고, 많은 것을 말할 수는 있지만, 그것을 글로 표현하는 능력이 부족하다.
필자가 그동안 만난 국내외의 수많은 정보영재들 또한 열정과 창의력은 뛰어났지만, 자신의 생각을 자유롭게 글로 적어낼 수 있는 학생은 극소수였다. 불과 몇 시간 전에 회의한 내용을 논리정연하게 적을 수조차 없다면, 글로벌화를 위한 표준 문서화나 개발 방법론을 도입한다고 하더라도 과연 성공할 수 있을까.
정말 글로벌 인재로 성장하고 싶다면 자신의 생각을 글로 표현하고, 남의 생각을 듣고 글로 적어내야 한다. 다른 프로그래밍 능력도 중요하지만, 무엇보다 글쓰기를 적극적으로 연마하기 바란다. 글로 제대로 적을 수 있어야 문서가 생명력을 갖는다. 그 문서가 수백 명, 수천 명이 함께 참여하는 소프트웨어를 개발할 수 있는 기반을 만든다. 글은 소프트웨어 개발의 시작과 끝이다.