책과 엔지니어링✍️: 경험
📕 "겉모습으로 뭔가를 판단하지 말라는 가르침을 또한 얻을 수 있었다. 사람이든 상황이든 사물이든 먼저 알기 위해 노력하기 전까지는 그에 대해 아무것도 모르는 것이다. 이러한 앎에는 지름길이 없다. 특히 직접 겪으며 얻는 지식이 그렇다. 통념을 따르고 지름길에 의존하는 것은 아무것도 알지 못하는 것보다 더 나쁠 수 있다.” - 벤호로위츠 / 18p 💬 엔지니어는 개발해야 할 기능의 겉모습을 봤을 때 판단해본다. 비슷한 개발을 한 경험이 있다면 경험을 바탕으로 무엇을, 어떻게 개발할지 결정하겠지만, 경험이 없다면 어떤 접근이 가장 좋을지 고민한다. 내가 경험한 여러 가지 접근 방식을 나누자면, 1️⃣ 비슷한 기능의 예제를 본다. 2️⃣ 기획서를 정독해보며 큰 그림의 설계를 한다. 3️⃣ 일단 코드를 작성한다. 세 가지 접근 방식 외에도 여러 접근 방식이 있겠지만 나는 크게 세 가지 경험이 있다. 어떤 접근 방식이 가장 좋을까? 정답은 2️⃣번과 3️⃣번을 적절하게 섞는 것인데 이를 “경험”이라고 말하고 싶다. 핵심은 내가 프로그래밍을 하면서 겪어봐야 한다는 것이다. 하지만 큰 그림의 설계는 필요하지 않을 수 있다. 사용자 스토리맵과 사용자의 동작을 토대로 작은 것 하나하나씩 성취해보는 것이다. “이러한 앎에는 지름길이 없다. 특히 직접 겪으며 얻는 지식이 그렇다. 통념을 따르고 지름길에 의존하는 것은 아무것도 알지 못하는 것보다 더 나쁠 수 있다.” 좋은 코드, 좋은 접근을 해다 쓴 지름길을 걸었다 하더라도 그 코드, 접근이 내가 겪은 가치와 지식이 아니라면 아무것도 알지 못하는 것보다 나쁠 수 있다. 좋은 코드, 접근을 내 것으로 만드는 시간을 충분히 갖은 후에 그 위에 내 가치를 만들어야 한다. 통념과 지름길에 의존하지 말자. 오히려 빙빙 돌아가는 모험의 시작이다.