금일 오전에는 멘토님과 간단한 자기소개 및 개발자로서의 자세에 대해서
보여주신 영상을 시청하며 배워보는 시간을 가져보았다.
내가 생각하던 개발자는 단순히 자료구조, 알고리즘, 아키텍쳐, 디자인 패턴같은 '기술'적인 부분만 잘 알면 되는줄 알았지만,
하지만 실제 프로젝트와 제품 개발 과정에서는
기술보다 더 중요한 요소들이 존재한다는 것을 알게되었다.
결국 단순히 코드 작성 하나로 제품 개발이 끝나지 않는다는 것을 느꼈다.
영상을 보면서 개발 사이클은 단순히 구현 단계만 의미하는 것이 아니었다.
요구사항 분석 -> 디자인 및 모델링 -> 구현 -> 테스트 및 배포 -> 피드백 및 업데이트
위 흐름 속에는 단순 개발 과정 뿐만 아니라 다음 요소들도 함께 포함되어 있었다.
통틀어서 결국 말하고자 하는 내용은
"좋은 제품은 결국 좋은 팀에서 나온다"라는 이야기였다.
프로젝트 관리는 단순한 일정 관리에서 나아가:
결국 제한된 자원 안에서 얼마나 좋은 결과물을 정해진 시간 내에
만들어 낼 수 있는지가 중요했다.
기술적으로 완벽하게 구현하더라도 시간과 비용을 초과하게 된다면
좋은 프로젝트라고 생각하기 어렵다는 점이 인상 깊었다.
회의 중 가장 인상깊었던 점은 팀 관리에 대한 이야기였다.
아무리 좋은 기술을 채택하고 사용해도
팀원간의 신뢰가 무너진다면 프로젝트도 흔들릴 수 밖에 없었다.
특히 팀의 성장 과정인:
Forming -> Storming -> Norming -> Performing
단계가 영상에서 나왔는데,
초반에는 서로 조심스러운 단계 (Forming)
이후 의견이 조금씩 충돌하게 되고 (Storming)
점점 한쪽이 양보하며 역할과 방식이 정리되며 (Norming)
마지막에는 자연스럽게 협업하게 된다 (Performing)
라는 것이 팀의 성장 과정인 것이다.
결국 한 팀의 일원으로서 협업 능력도
개발자의 중요한 역량 중 하나라는 것을 느꼈다.
기술적인 이야기에서 나아가 가장 새로웠던 부분은 ROI에 대한 이야기였다.
ROI = Return On Investment
즉, "얼마를 투자하여 얼마의 가치를 만들었는가?" 에 대한 해석이다.
아무리 멋진 기술을 활용해도 사용자에게 가치가 없거나
비즈니스 적으로 의미가 퇴색된다면 제품은 유지되기 어렵다.
개발자는 단순하게 구현하는 것 뿐만 아니라
왜 이 기능이 필요해서 넣게 되었는 지,
사용자에게 어떤 가치를 주고자 하는지까지 고민해야 겠다는 생각이 들었다.
마지막으로 기억에 남은 내용은 개발자의 성장 방식이었다.
1. 하드 스킬
= 공부하며 배우는 기술적인 능력
2. 소프트 스킬
= 경험을 통해 배우는 능력
3. 비즈니스 스킬
= 사람과 사회를 이해하는 능력
결국 좋은 개발자가 되기 위해서는
멋지고 전문적인 기술만 잘하는 것이 아니라,
"기술을 통해 사람과 비즈니스에 가치를 만드는 사람"
이라는 생각이 들게되는 시간이었다.