본문 바로가기

diary6

문제를 능동적으로 해결하려면 요즘 같이 일하는 1년차 개발자 분과 정기적으로 1on1을 하면서 회사 생활이나 개발에 대해서 여러 이야기를 나누게 되는데 그 중에 문제를 능동적으로 해결하는 방식에 대해 이야기를 한 적이 있다. 개인적으로 능동적으로 무언가를 해결하기 위해서는 문제 의식과 목적 의식이 분명해야한다고 생각한다. 이 두 가지가 명확해야지 흔히 말하는 동기부여가 명확해지고 문제에 깊게 몰두할 수 있다고 본다. 내가 생각하는 문제 해결에 대한 문제 의식과 목적 의식은 문제 의식 어떠한 일이나 상황에 대해 내가 문제 상황임을 인지하는 것이다. (예를 들어, 동일한 기능에 대해서 지속적으로 VoC가 들어오는 경우 이 기능에 대한 UI를 변경하거나 유저 가이드를 만드는게 좋겠다고 생각하는 것이다) 문제 의식을 느끼지 못하면 내가 왜.. 2023. 8. 26.
생각의 차이를 넘어 공통점 바라보기 누군가 크게 문제가 없는 코드를 갑자기 리팩터링을 한다고하자. 밑도끝도 없이 훅 들어오는 변경에 매우 당황스러울 수도 있다. 그래서 잘 돌아가고 있는 코드를 굳이 바꿀 필요가 있냐고 말할 수 있을 것이고, 상대방은 더 좋은 코드로 바꾸는데 문제가 될게 있냐고 반박할 수 있다. 계속 서로 논리를 주고받는 동안 서로 왠지 껄끄럽기도하고 이 사람이랑은 같이 일하기 힘들겠다는 마음에 장벽이 생기기도 한다. 코드에 비유했지만 업무를 하면서 상대방과 견해 차이로 인해 감정이 소모되는 일이 비일비재하다. 그렇지만 왜 생각의 차이가 발생했을까를 생각해보면 결국엔 우리 모두 더 좋은 조직, 서비스, 코드를 위해 욕심을 내는 것이다. 그러한 욕심이 있기 때문에 우리는 더 치열하게 배우고 고민하고 더 좋은 결과물을 낼 수 .. 2023. 5. 16.
실수할 여지를 주지않기 모든 것은 변한다. 서비스도 그렇고 그 서비스의 기반이 되는 소프트웨어도 마찬가지이다. 그러면서 우리는 크고작은 실수를 만들곤 한다. 예를 들어 DB 테이블에 대한 Model 클래스에는 새로운 필드를 추가하였지만, DB 테이블에는 컬럼을 추가하지 않거나 개발 환경에는 환경 변수 설정을 추가했지만 운영 환경에서는 하지 않거나 개발 프로세스가 잘 정립되어있다면 실수를 어느정도 관리할 순 있지만 모든 것이 자동화 되어있지 않는한(심지어 자동화를 하였어도) 사람이 하는 일이다보니 늦든 빠르든 언젠가는 실수가 생긴다. 급하게 일을 끝내려 하거나(이것만 끝내고 집에 가야지~) 관련된 업무와 관련된 모르는 지식이 있거나 (아니 이런게 있었어요?) 그렇지만 나의 멘탈과 안정적인 서비스를 위해서는 크든 사소하든 실수는 .. 2023. 4. 1.
새로운 기술을 제안할 때는... 요즘은 도서 및 온라인 강의 사이트, 기술 블로그 뿐만 아니라 재직자 교육기관 등이 활발하게 운영되고 있기 때문에 의지만 있다면 새로운 기술이나 내가 몰랐던 라이브러리들을 접하는게 어렵지 않다. 개발자로서 새로운 기술을 배우거나 Cool한 라이브러리를 발견하고 써보는건 매우 짜릿한 경험이다. "이 좋은걸 나만 알 수 없지!" 여러분은 이 좋은 기술을 우리 프로젝트에서도 도입하면 어떨까라는 이타적인 생각에 신나게 PR을 올린다. 하지만 돌아오는건 우려와 반대의 코멘트들 뿐... 그리고 여러분은 "아니 이 좋은 걸 왜 해보지도 않고 무조건 반대를 하지..."라고 생각하며 속으로 씁쓸함을 삼킨다. (정성적, 정량적인 이유가 충분하다는 조건하에) 여러분의 동기와 엔지니어링 관점에서 새로운 기술을 적용하는 것은 .. 2023. 2. 23.
방법론에 중독된 사회 요즘은 방법론들이 정말 많다. OKR, 애자일, TDD, DDD 같은 프로젝트, 제품 개발 방법론 뿐만 아니라 1일 1커밋, 미라클 모닝 과 같이 생활 속의 방법론들도 말이다. 그리고 그걸 따라하는 사람들도 많다. 대부분 "누가해서" 혹은 결과만을 보고 "이렇게하니까 저렇게 성공하더라"라는 이유로 많이들 따라하였지만, "어떤 사람이나 조직이 왜 그것을 하는지", "그것에서 나는 무엇을 적용할 수 있고 어떤 것을 취해야할지"는 빠져있는 경우가 많았다. 그리고 간혹 어떤 방법론을 따르면서 마치 정해진 답이 있는 것처럼 그 방법론을 자체를 연구하는 경우도 종종 있었다. 그 방법론이 잘 동작하지 않으면 "혹시 내가 방법론을 제대로 이해한게 아닌건가?" 하는 의심도 하면서 말이다. 클린 시리즈로 잘 알려져있는 R.. 2023. 1. 28.
Simple is the Best 세상엔 어떤 문제를 풀기위한 수십가지 방법들이 있다. 그렇기에 개발자로서 우리는 무언가를 만들면서 "좋은" 결정을 내려야한다. 그러면 "좋은" 결정이란 무엇일까? 나같은 경우, 개발에서 "좋은" 결정은 요구사항을 충족시키면서 동시에 간단하고 이해하기 쉬운 것이라고 생각한다. 매 챌린지 마다 항상 우아하게, 복잡하게 갈 필요는 없다고 생각한다. 만약 '분산 시스템에서 Unique ID 생성하기'와 같은 주제를 찾아보았다면 아마도 Flickr의 Ticket Server 방식을 본 적이 있을 것이다. https://code.flickr.net/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/ 이 방식은 동일한 년도에 발표한 Twit.. 2022. 5. 2.