20년차 소프트웨어 엔지니어가 전하는 20가지 교훈

소프트웨어 엔지니어가 아니라도, 일을 하는 사람들은 와 닿을 내용이 많아서 공유해 봅니다. 다만 글쓴이는 본인과 읽는 이의 맥락을 중시하는데요. 교훈(조언!?)을 허투루 주고받고 싶지 않겠다는 의지입니다. 일환으로 본인이 소프트웨어 에이전시 회사를 창업했으며 특정 툴보다 소프트웨어의 작동을 중시하고 생산성을 중시한다고 밝혔어요. 어쨌든, ‘맥락을 중시한다’고 강조한 자체로 신뢰가 갔는데요. 실제로 읽어보니 모두 소프트웨어 엔지니어가 아닌 사람(특히 저)에게도 지침이 될 만한 내용이더라고요. 20가지 교훈 중 이순간 가장 인상깊었던 내용을 자세한 설명과 함께 적어볼게요. 1. 평생 배워야 합니다. 소프트웨어 분야에서 일하면 언제 어디를 돌아보든, 날마다 새로운 정보와 지식이 사방으로 확장합니다. (어떻게 보면 매일 배워야 하는 어려운 직업이지만) 이는 수십 년 동안 소프트웨어 엔지니어로 활동할 수 있다는 사실을 의미하며, 겉보기에는 비슷한, 다른 역할로 수십 년 경력을 쌓은 사람과 비교할 때 도메인 지식 격차가 크다는 사실도 의미합니다. 이를 빨리 인정하면 인정할수록 가면 증후군을 빠르게 벗어던질 수 있습니다. 대신 다른 사람에게 배우고 또 지식을 공유하는 일을 기쁘게 받아들일 수 있습니다. 2. 소프트웨어는 목표를 위한 수단입니다. 모든 소프트웨어 엔지니어의 목표는 '가치를 제공하는 것'입니다. 해당 사실을 이해하는 소프트웨어 개발자는 거의 없으며 스스로 내면화하는 개발자는 더 적습니다. 이를 진정으로 내면화하면, 새로운 시각으로 문제 해결 방법과 도구를 발견할 수 있습니다. 소프트웨어가 결과에 도움이 되는 수단이라고 믿는다면, 소프트웨어가 아닌 '작업에 적합한 도구는 무엇이든' 실제로 찾을 준비가 된 것이기 때문입니다. 3. 충분히 질문합시다. '늘 해왔던 방식'의 기저에 있는 가정과 접근법에 의문을 가져봅시다. 새로운 팀원이 합류했나요? 그들이 혼란스러워하는 부분과, 자주 묻는 질문에 주의를 기울여 보세요. 사용자들이 서비스에 이상한 기능을 추가해달라고 요구하나요? 왜 그런지, 니즈가 무엇인지 이해하려고 노력해보세요. 명확한 답을 얻을 때까지 이유를 물어보세요. 4. 데이터는 시스템의 가장 중요한 부분입니다. 데이터는 코드베이스보다 오래 지속될 가능성이 높다는 점을 기억하십시오. 질서 정연하고 깨끗하게 유지하는 데 에너지를 사용하면 장기적으로 좋은 결과를 얻을 수 있습니다. 5. 빠른 변화에도 오래 살아남은 기술을 찾아보세요. 지금까지 살아남은 기술은 (멸종된) 공룡이 아니라 상어입니다. 끊임없이 발생하는 급격한 변화에서 살아남을 정도로 문제를 잘 해결하는 기술이라고 보면 됩니다. 그러니 그 기술에 무작정 반대할 것이 아니라 타당한 이유가 있을 경우에만 새로운 기술로 바꿔야 합니다. 그런 기술(도구)들은 화려하지도, 흥미롭지도 않지만, 개발자나 엔지니어가 밤을 새지 않게 도와줍니다. 6. 겸손을 무지로 착각하지 맙시다. 묻지 않으면 의견을 표현하지 않는 소프트웨어 엔지니어가 많습니다. 누군가 의견을 제시하지 않는다고 해서 가치를 더하지 못할 것이라고 속단하지 맙시다. 조금 더 적극적으로 피드백과 조언을 구해봅시다.

20 Things I've Learned in my 20 Years as a Software Engineer

Simple Thread

20 Things I've Learned in my 20 Years as a Software Engineer

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 2월 6일 오전 11:50

 • 

저장 15조회 2,344

댓글 0