brunch

You can make anything
by writing

C.S.Lewis

by 이경종 May 17. 2020

이제 소프트웨어 개발자가 된 젊은 그대에게

소프트웨어 코딩 실력은 글쓰기 실력에 비유할 수 있습니다. 코딩만 잘한다고 소프트웨어 개발을 잘하는 것이 아닙니다. 현명한 사람은 좋은 글을 쓰지만, 좋은 글을 썼다고 해서 현명한 사람이라고는 말할수 없습니다. 본연의 철학이 없으면 좋은 글이 나오지 않듯이, 제대로 된 소프트웨어를 만드려면 경험과 지혜가 필요합니다. 소프트웨어 개발에 있어서 지혜란 기술만을 말하지 않습니다. 업무태도, 조직생활에 있어서 처신이 기술보다 더 중요할 수 있습니다. 소프트웨어 개발이 혼자 앉아서 지지고 볶는 것처럼 보이지만, 본질은 협업이기 때문입니다. 혼자 잘하는 것이 아닌 같이 잘 되는 것이 중요합니다. 그래야 소프트웨어가 굴러갑니다. 협업이 잘 이루어질수록 버그는 줄어듭니다. 


비지니스 도메인(Business Domain)이란 해당 소프트웨어가 적용되는 사업분야입니다. 보통 회사에서 만드는 최종 상품 내지는 그와 연관된 기술분야를 말합니다. 그것은 스마트폰이 될수도 있고, 스마트폰에 들어가는 프로세서가 될 수도 있습니다. 금융시스템이 될수도 있고, MPEG 표준이 될수도 있습니다. 얼핏 보기에 비지니스 도메인 기술이 중요해 보일수 있습니다. 업무, 그리고 회사와 직접적인 관련이 있기 때문입니다. 하지만 비지니스 도메인 기술보다는 기술 도메인(Technical Domain),  즉 소프트웨어 요소 기술에 대한 전문성을 길러야 합니다. 회사에서 인터넷 방송 프로그램을 만든다고 해서, 인터넷 방송 용어가 메모리 할당 함수보다 더 중요하지는 않습니다.  그 분야를 정말 좋아하고 평생 하고자 작정한게 아니라면, 그리고 소프트웨어 개발자의 업을 계속할 생각이라면, 아직은 비지니스 도메인 분야의 전문가가 될 때가 아닙니다. 본질에 충만해야 합니다. 처음 개발을 시작하는 이들이 순수 소프트웨어 도메인과 비지니스 도메인의 기술을 나누어 구분하지 못합니다. 저역시 마찬가지였습니다. 오랜 시간 경험을 통해 두 분야 모두 전문가라고 자부하지만, 실상은 저도 두 분야 모두 어정쩡한 수준인지도 모릅니다. 개발자들의 대부분은 자신의 능력을 과대평가하는 경향이 있습니다. 비지니스 도메인 기술을 빼버리면, 알멩이 몇 개 없는 개발자들이 태반입니다. 가장 안 좋은 것은 한 비지니스 도메인에 얽히면 거기에 머무를수밖에 없는 확률이 커진다는 것입니다. 특정 비지니스 도메인 분야의 전문가가 될지 아닐지를 결정하는 순간이 올 것입니다. 그때조차도 중요한 것은 본질적인 소프트웨어 개발 능력이라는 것을 잊지 마세요. 


되도록 많은 분야의 소프트웨어 개발을 경험하는 것이 좋습니다. 보통 처음에 했던 일을 계속 하기 마련이라 다양한 분야를 섭렵하기는 어려울 수 있습니다. 그렇다고 마냥 주어진 일만 하지 말고,  스스로 기회를 탐색하고 도전하는 것이 필요합니다. 최소한 서른 중반까지는 애자일(Agile)하게 일하는 것이 필요합니다. 보통의 대한민국 남성 소프트웨어 개발자라면 직장에 들어간지 대략 7~8년 정도 될 때까지겠네요. 큰 계획보다는 실제 부딪히면서 계획을 수정하면서 발전해야 합니다. 행동이 가장 큰 덕목입니다. 행동의 다른 이름은 도전과 실패입니다. 작게 시작하고, 깨져도 쉽게 다시 시작할 수 있어야 합니다. 저는 그게 애자일이라고 알고 있습니다.


항상 일했던 내용을 기록을 해두세요. 업무 노트 No No~ 성장노트라고 부릅시다.  프로젝트가 끝나면 자신이 했던 일들과 성과, 배운 것들과 아쉬웠던 것들을 정리합니다. 여기서 중요한 것은 흥미를 느껴서 재미있게 했던 일, 그리고 이전에 비해  발전한 부분을 짚어보는  것입니다. 자신의 강점과 흥미를 계속해서 기록하는 겁니다. 하고 싶은 분야를 모색하고 매력적인 커리어 패스를 만드는데 있어 큰 밑천이 될 것입니다. 

매거진의 이전글 개발자라는 이름으로
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari