내가 소프트웨어 업계에서 45년간 배운 것
(bti360.com)천공카드부터 클라우드까지 45년간 일해온 엔지니어가 은퇴하면서 남긴 교훈들
1. 지식의 저주를 조심하세요
- 뭔가를 알게 되면, 그걸 모르는게 어떤건지를 상상할수 조차 없게 됨
- 이게 많은 오해와 비효율성의 원인
- 복잡한 것에 익숙한 똑똑한 사람들이 더 그런 경향이 있음
- 지식의 저주를 경계하지 않으면 코드부터 의사 소통 하는 것 까지 모두 이해하기 어렵게 됨
- 청중을 이해하려고 노력하고, 처음 배울때 어땠는지를 상상 할 것
2. 기초에 집중하세요
기술은 계속 변화하지만, 소프트웨어 개발에 대한 기초들은 이 트렌드를 뛰어넘음
오랜시간 유효할 여섯가지 기초
ㅤ→ 팀 워크 : 훌륭한 팀이 위대한 소프트웨어를 만듭니다. 팀워크를 당연시하지 마세요
ㅤ→ 신뢰 : 팀은 신뢰의 속도로 움직입니다. 함께 일하고 싶은 신뢰할수 있는 사람이 되세요
ㅤ→ 의사 소통 : 정직하고 적극적으로 의사소통 하세요. 지식의 저주를 경계하세요
ㅤ→ 합의 추구 : 전체 팀이 같이하는 시간을 가지세요. 토론과 불일치를 통해서 최고의 솔루션을 찾아보세요
ㅤ→ 테스트 자동화 : 잘 테스트된 코드는 팀이 자신감을 가지고 빠르게 움직일수 있게 합니다.
ㅤ→ 깔끔하고 이해하기 쉽고 탐색가능한 코드와 설계 : 코드를 인수할 다음 엔지니어를 고객이라고 생각하세요. 후임자가 읽고 유지보수하는데 문제가 없는 코드를 작성하세요.
3. 단순성
- 복잡성과 싸우는 것은 끝이 없는 원인
- 솔루션은 가능한 간단해야 함
- 내 코드를 유지보수할 다음 사람이 나만큼 똑똑하지 않을거라고 가정하세요.
- 더 적은 기술로 할 수있다면 그렇게 하세요.
"디자이너에게 완벽함이란, 추가할 것이 없을 때가 아니라 제거할 것이 없을때 입니다." - 생 택 쥐페리
4. 먼저 이해하기
- 스티븐 코비의 7가지 습관중 하나는 "먼저 이해하고, 다음에 이해시키기"
ㅤ→ 이 말이 다른 어떤 조언들보다 좋은 리스너이자 팀 동료가 되도록 도와주었음. - 다른 사람들에게 영향을 미치고 효율적으로 협력하고 싶다면 먼저 그들을 이해해야함.
- 자신의 생각을 알리기 전에, 적극적으로 그들의 감정과 아이디어, 관점을 이해할수 있도록 경청하세요.
5. Lock-in 에 주의하세요
- 소프트웨어 제작 방식에 혁신을 가져올 차세대 생산성 도구들은 항상 있을 것.
ㅤ→ CASE, COTS, ERP, Ruby 등. - 그들은 전체적으로 자신의 개발철학을 채택하면 비용과 시간을 절감할수 있다고 주장하지만, 선행비용 또는 그로 인해 발생하는 제약들은 명확하지 않음.
- 락인은 주로 소프트웨어 공급자들한테 일어났지만, 요즘은 프레임워크들에도 발생함
- 락인은 변경에 상당한 비용이 발생함
- 현명하게 선택하세요. 새로운게 항상 좋은 것은 아닙니다.
6. 정직하고, 역할에 맞지 않을 때는 인정하세요
- 경력의 어느 시점에서 자신이 적합하지 않은 역할을 맡게 될 수 있음
- 나쁜 핏은 캐릭터의 결함은 아니지만, 무시해서는 안되는 문제임
- 이 딜레마 대한 해결책은 한가지 이상일수 있음
ㅤ→ 당신이 진화하거나
ㅤ→ 역할이 진화하거나 - 중요한 건 "어떤 일이 일어나고 있으며, 이 곳에서 벗어나려면 어떻게 해야하는지"에 대한 자기 지식을 가지는 것
좋은 조언들이 지금까지 많이 올라왔었는데요. 한 개만 더 붙여보면 이 글을 뒤에 붙여보고 싶네요.
https://news.hada.io/topic?id=2060
물론 이 글도 어마어마하게 좋지만. 위 글은 좀 더 범용적인 측면에서( 소프트웨어에 국한되지 않고 ) 되돌아볼게 많았던 조언이었던 것 같습니다. 이런 것들을 모아놓아서 필요할때마다 꺼내 보면 참 좋을 듯한..