소프트웨어 개발 과정과 글쓰기는 비슷합니다. 결국 둘 다 최종 단계는 퇴고 과정을 거칩니다. 삶 모든 일들과 업무들이 결국 퇴고라는 과정을 거칩니다.
책이 팔릴 독자층을 고려해서 독자들이 어떤 것을 원하는지 미리 시장 조사를 해서 사용자 요구를 분석을 합니다. 소프트웨어에도 마찬가지로 개발을 할 때 어떤 것을 개발할지 사용자가 요구한 것을 듣거나 시장 조사를 합니다.
책을 쓸 필요성이 느껴지면 기획서를 작성하고 목차 뼈대를 만들어 갑니다. 이 부분이 소프트웨어 분석과 설계를 하는 과정입니다. 전체적인 전개가 어떻게 될지 미리 설계를 하는 것입니다. 소프트웨어도 어떤 식으로 동작을 해야 하고 어떤 기능들을 넣어야 할지 고민을 합니다.
기본적인 준비가 끝나면 자신의 지식과 다른 참고 자료들을 통해서 새로운 글들을 하얀 종이 위에 써나갑니다. 이 과정은 소프트웨어에서 코딩 과정입니다. 자기가 선택한 언어로 컴퓨터와 대화를 하면서 타이핑을 쳐서 프로그램 언어의 글을 하나씩 써나갑니다. 책 사이에 이미지도 넣고 하듯이 소프트웨어에도 이미지도 넣고 버튼들도 넣습니다.
글이 어느 정도 완성이 되면 초고를 하게 됩니다. 프로그램도 어느 정도 완성이 되면 베타 버전을 배포를 합니다. 초고를 하면서 여러 번 글을 고치면서 완성도를 높여나가듯이 소프트웨어도 검증이라는 과정을 거치면서 소프트웨어 완성도를 높여나갑니다.
초고를 거치면 퇴고라는 정밀한 검증을 거치듯이 소프트웨어도 최종 검증을 거치며 문제가 없는지 점검을 하게 됩니다. 작가가 몇 년 동안 집필하고 나름 치밀하게 다듬어온 원고인데도 편집자의 손에 들어가면 많은 수정 작업을 합니다. 퇴고가 책의 객관화 과정이듯이 소프트웨어 배포 전 최종 검사도 여러 검증 시스템 객관화를 통해서 퇴고를 하게 됩니다.
퇴고는 현재 수준을 확인하고 더 나은 지성으로 거듭나는 훈련의 괴로운 과정입니다. 작가 생각과 다른 이의 생각이 충돌하며 새로 고침으로 성장통을 겪는 과정입니다. 소프트웨어도 개발자와 검증자 간에 갈등 관계 속에서 소프트웨어는 성장통을 겪으며 세상에 얼굴을 내밀기 시작합니다.
최종 출판 단계에서 책은 서점과 온라인 서점에 유통되듯이 소프트웨어도 구글 마켓이나 아이폰 앱 스토어에서 만날 수 있습니다.
우리들이 읽는 책과 사용하는 스마트폰 소프트웨어의 탄생 배경은 유사합니다.