최근에 정말 존경하는 개발자인 존카맥의 인터뷰 영상을 본적있다.
https://www.youtube.com/watch?v=CMv8LzuuTKk
너무나 감명받아 관련한 내용을 정리해 두려한다.
프로그래밍의 핵심은 유저들에게 가치를 제공하는 것이다. 개발자는 자신이 기술자라는 생각을 해서는 안된다. 너무 구체적으로 기술적인 접근만을 해서는 안된다. (안 중요하다는 것은 아니다.)
사용자들의 문제를 해결하거나 그들이 원하는 서비스를 제공하는데 집중해야한다. 이를 통해 소비자들의 불편함을 해소하고 소비자가 하는일에 더 많은 가치를 더할 수 있는 개발을 해야한다.
진부할 수 있지만 개발자는 어떻게 더 좋은 세상을 만들 수 있을까 하는 고민을 계속 해야한다.
개발자가 더 좋은 제품을 만들면 세상은 더 좋은 세상이 될 수 있다. 당신이 좋은 서비스를 개발한다면 사람들은 불편함을 느꼈던 서비스에서 자연스럽게 당신이 만든 좋은 서비스로 넘어오게 될 것이다.
그리고 이러한 서비스는 돈이 자연스럽게 따라온다. 반대로 돈을 버는 제품이 아닌 많은 돈(비용)을 들인 제품을 만들었다면 이 제품은 좋은 제품이 아닐 수도 있다.
특정한 기술( 아키텍처, 코드 , 디자인 패턴 등등)에 대해 자부심을 가지는 것은 좋다. 하지만 최우선적으로 생각해야할 것은 가치가 높은 제품을 만드는 것이다.
여기서 가치란 유저가 느끼는 만족도가 될 수 있다. 유저가 내가 만든 제품을 만족하지 못한다면, 가치를 만들어내는데 실패했다고 볼 수 있다.
가치라는 것 자체가 다양한 사람들에게 다르게 정의 될 수 있지만, 사용자가 서비스에 어떤 만족도를 느꼈는지는 가치를 평가하는데 충분한 요소가 될 수 있다고 생각한다.
실무에서 일하는 개발자라면 사용자를 위해 개발해야한다. 즉 사용자가 가치를 느낄수 있는 제품을 개발해야한다.
이러한 가치를 만들어 내기 위해 어떤 디자인을 사용하고, 어떤 아키텍처를 사용하는지가 정해져야한다. 단순하게 자신의 학습을 위해서 혹은 지적 과시를 위해서 기술을 사용해서는 안된다.
기술에는 철저하게 어떠한 목적이 있어야한다. 한발 더 나아간 개발자는 최소의 노력,비용으로 최대의 가치를 만들어 낼 수 있는 능력이 있다.
아주 새롭고 신선한 서비스도 만들어 질 때에는 현존하는 기술을 기반으로 만들어진다. 새롭거나 어려운 기술이 사용되는 것이 아니라는 얘기다.
흔히 회사에서 제품의 퀄리티가 좋지 못할때, 많은 개발자가 이런 변명을 한다.
"자원이나 인력이 부족하다"
실제로 이러한 이유로 퀄리티가 떨어지는 서비스가 만들어 질 수는 있다. 하지만 항상 그렇지 않다. 단 한명의 개발자가 어떻게 개발하느냐에 따라 제품의 퀄리티가 크게 달라질 수도 있다.
그러므로 개발자는 자기가 하고 있는 개발이 어떤 가치를 만드는지 항상 구체적이고 꼼꼼하게 생각해야한다. 그리고 그 가치를 만들어내는 개발자가 되기 위해 끊임없이 기초와 기본을 갈고 닦아야 한다.
그렇다면 우리는 어떻게 개발을 통해 가치를 만들어 낼수 있을까?
가장 먼저 생각해야할 것은 가상의 사용자가 아닌 구체적인 사용자를 대상으로 제품을 만들어 내야한다. 개발자가 할 일은 아닐 수도 있지만, 시장을 세세하게 분석하고, 실제 그 시장의 유저 경험이나 다양한 지표를 통해 정량화된 자료를 통해 제품을 기획해야한다. 물론 시장에 여러 제품이 지표가 아닌 직관에 의해 성공한 케이스도 있다.
하지만 이러한 케이스는 흔한 케이스는 아니다. 이렇게 할 경우, 아주 큰 가치가 만들어 질 수도 있겠지만, 이는 분명 한계가 있다. 좋은 제품은 좋은 지표에 의해 나올 확률이 높다는 것을 기억하자.
'ETC > IT 이야기' 카테고리의 다른 글
10년동안 생각했던 꿈을 이뤘습니다 (feat. 강의 오픈) (2) | 2023.09.09 |
---|---|
(책 리뷰) 그림으로 이해하는 네트워크 구조와 기술 (0) | 2023.08.29 |
코드리뷰 이야기 (0) | 2023.02.23 |
개발 방법론 - 페어 프로그래밍 (0) | 2023.02.18 |
2022년 개발자 회고 (2) | 2023.01.21 |
댓글