이 글을 쓰다가 보니 내 자신이 꼰대라는 느낌도 들지만, 젊은 엔지니어분들(개발 초입의)에게 글을 쓴다는 게 상당히 조심스럽긴 합니다. 그래도 도움에 될 분들이 있기를 바라면서 생각했던 부분들을 정리해 올립니다.
1. 기본기가 없는 고수는 없습니다.
- 기본기(개념, 원리, 원칙)에 대한 이해도를 높이고, 표준이나 규약 - HTTP 스펙(RFC 7230 ~ RFC 7235), HTML W3C, API(Java Servlet API, Java Persistence API 등)에 대한 분석을 통해 내것으로 만들도록 합니다. 기본기와 표준은 응용을 위한 밑거름이 됩니다. 해당 케이스를 찾기 위해 검색하는데 시간을 낭비하지 말고 기본기를 다지는데 노력을 더 합니다.
- 예를 들어, 스펙을 앎으로써 웹 개발의 경우 응용을 통해 보안 위협을 효율적으로 예방할 수 있고, APM 툴(성능 분석 툴)을 만들수 있고, 우리가 필요로 했던 것들을 스스로 만들 수 있게 해 줍니다. 또한, 버그를 줄이는 잠재 능력을 갖게 되기도 합니다.
2. 스스로 지식의 넓이, 깊이, 실행력을 꾸준히 키웁니다.
- 지식을 늘 가까이 합니다. 독서. 블로그/SNS/뉴스레터 구독, 커뮤니티 활동 등 많다. 요즘 세상은 설명 안해도 알 것입니다.
- 오픈 소스 분석을 게을리 하지 마세요. 검증된 오픈소스들은 내 자신이 만든 코드보다 품질은 더 뛰어날 가능성이 있고 남의 코드를 통해 내 코드에 대한 개선점을 찾는데 많은 도움이 됩니다.
- 비즈니스에 대한 연구도 병행해야 합니다. 엔지니어라고해서 기술에만 관심만 가지면 안됩니다. 비즈니스의 철학을 모르고는 높은 완성도의 제품이 나오기 어렵습니다.
- 실행력의 수준을 높여야 합니다. 엔지니어는 기술적 완성도 점검을 위한 프로토타입형에 그칠 것이 아니라, 그 기술에 대해 제품/서비스형 프로토타입으로 끌어올리는 몸만들기가 필요합니다. 그래야만 비즈니스의 가치를 스피드와 구현가능성에 헌납해 버리는 오류를 범하지는 않게 됩니다.
3. 기술 만능 주의를 경계합니다.
- 최근 들어 많은 기술과 서비스들이 쏟아져 나오면서 다양한 IT 트렌드를 만들어가고 있습니다. 이는 엔지니어들에게는 기술 만능주의가 Silver Bullet이라는 망각에 빠지기가 쉽습니다. 그래서 기술 만능주의보다는 해당 기술이 비즈니스에 적합한 기술인지를 분별하는 식견을 가져야 오버스펙하지 않습니다.
4. 생산적인 일에 투자할 수 있도록 자신의 환경을 개선합니다.
- 비 효율적인 업무에 대해 언제나 회사욕만하면서 지낼 것인가? 스스로 비효율적인 부분을 고칠려는 노력을 해야 합니다. 시스템이 해야할 반복적인 일은 사람이 하고 있진 않은지, 불필요한 요식행위의 프로세스는 없는지를 확인해서 개선하는 일을 서두르세요. 중요한 부가가치는 사람의 생각과 노력이 개입되어야만 이룰 수 있습니다.
- 제대로된 제품을 만들기 위해서, 허비되는 짜투리 시간을 줄이기 위해서 엔지니어에겐 개발 도구가 있게 마련입니다. 이 도구 사용을 능수 능란하게 할 수 있도록 노력합니다.
5. 매너리즘 극복의 최선은 변화입니다.
- 어떤 울타리(직장, 사업 등)든지 시간이 지나가면 그 흐름에 묻혀버리고 만듯한 느낌을 받을 때가 많습니다. 그럴 때 일수록 어렵고, 새롭고, 다른 것들을 할 때까지, 될 때까지, 이룰 때까지 끈기있게 하는게 필요한 거 같습니다. 환경을 바꾸지 못하면 자기 자신을 바꾸어 그 울타리를 벗어나야 합니다.
- 시간이 흐름에 따른 자신의 포지셔닝을 계획하고 이행하는 습관을 가집니다. 조직의 윗선으로 올라갈수록 자신의 위치에서 해야할 일을 찾는 것, 회사의 비전과 자신의 의사결정 수준간의 갭(비전 지향 의사 결정 능력)을 줄이는 것에 대해 부단히 노력해야 합니다. 그 다음이 술자리가 아닐까 생각됩니다.
6. 내 이름을 빛내기 위한 노력을 합니다.
- 엔지니어는 개발만 잘하면 된다는 생각은 버려야 합니다. 컴퓨터와 씨름하는 사이에 나이는 먹고, 이도 저도 아닌 똥배만 나온, 한 때는 엔지니어였지 하는 회상으로 청춘을 허비하려하지 마세요. 좋은 말로 개인 브랜딩이란건데, 블로그를 운영하고, SNS 활동하며, 커뮤니티나 외부 세미나 수강/발표 기회 등을 갖을려고 스스로 노력하고 이를 통해 자신의 잠재력을 높이고 사내, 외에 알려 자신의 가치를 PR해 많은 인맥을 쌓으세요. 이로써 자존감이 생기게 되고, 스스로가 엔지니어로서 잘하고 있다는, 열정을 지속시키는 중요한 단초가 됩니다.
7. 커뮤니케이션 능력은 아무리 강조해도 지나치지 않습니다.
- 한 사람의 천재가 모든 것을 할수 있는게 아니라 한 사람이 못할 일을 여러 전문가가 함께 모여 만들어가는 시대다. 전문가의 실력은 전문 지식 곱하기 커뮤니케이션 능력이다. - 안철수
- 자신의 언어가 아닌 남이 이해할 수 있는 언어로, 상대방의 영역을 이해하는 노력을 하고, 엔지니어의 안좋은 환경에서 오는 피해 의식을 잊고, 자신의 인텔리전트를 과시하거나 남의 헛점을 짚어내는 게 목적이 아닌, 공통의 목표를 상기시키고 동료 의식과 협력 의식을 가지도록 노력합니다.
8. 야무진 꿈을 가지세요.
- 아무리 끈기와 열정을 가지고 노력하는 엔지니어라도 지치지 않을려면, 자신의 인생을 바꿀 수 있는 엔지니어만이 꿀수 있는 꿈은 하나 있어야 하지 않을까요?
9. 남에게 알리는 수고가 자신을 한단계 더 성숙하게 만듭니다.
- 자신이 알고 있는 경험을 공유한다는 건, 그 분야의 거장이 해야할 필수 과정이고 갖추어야할 의무입니다. 그리고 가르치는 사람은 배우는 사람보다 2-3배이상의 노력과 경험을 가지고 올바른 지식을 전파할려고 노력을 하게 됩니다. 이 과정에서 자신도 모르는 사이에 실력이 올라가 있고, 남에게서 존경이라는 말을 들을 수 있는 경험을 가지게 됩니다. 엔지니어에게 이보다 더 기쁜 칭찬이 있을까요?
- 자신의 지식을 남에게 전파하는 것 자체가 개발자(우리들)의 생태계(전체)를 돕는 일이 됩니다.