-
[비공개] 기술 부채와 오버 엔지니어링을 줄이는 방법
소프트웨어 개발자는 해결해야 할 문제를 정확하게 정의하고, 다양한 솔루션을 검토한 후, 현재 상황(규모, 자원, 비즈니스)에 적절한 엔지니어링 수준을 의사 결정을 해야합니다. 애플리케이션 구현 기술 (라이브러리, 프레임워크, 도구 및 프로세스), 인터페이스 (API 및 게시된 계약), 의존성 (구성 요소 결합), 시스템 (아키텍처 패턴) 및 비기능적 요구 사항 (보안, 고가용성 및 내결함성) 등 다양합니다. 하지만, 현실에서는 장기적으로 더 나은 방식 보다는 대신 쉬운(제한된) 솔루션을 채택할 수 밖에 없고, 향후에 추가적인 리팩토링이 일어날 수 있습니다. 이를 소위 기술 부채 (Technical Debt)라고 부릅니다. 기술 부채는 소프트웨어 개발 초기의 피봇 단계에서 많이 만들어지며, 제품이 성숙한 단계로 나아가는 동안 디자인 개선 노력을 통해 줄여 나가..추천 -
[비공개] AWS코리아 10주년 – 가장 인상 깊었던 기억을 꺼내다!
올해는 AWS코리아 10주년입니다. 10년 동안 AWS 클라우드와 함께한 가장 인상 깊었던 개인적인 기억을 하나씩 꺼내 보았습니다. 여러분은 어떤것이 있는지 #AWSKorea10th 태그로 이야기해 주세요. (몇 분을 선정해서 레어 아이템 SWAG 세트를 보내 드릴께요.) 2012년 5월 – 저와 AWS 클라우드와 첫 인연은 아마존 CTO이신 버너 보겔스 박사님이 내한하셨을 때, AWS한국사용자모임 첫번째 행사를 Daum 오피스에서 진행한 것이었습니다. 클라우드의 현재와 미래에 대한 통찰력을 얻을 수 있었습니다. 2013년 6월 – beLAUNCH 패널토의에서 국내 스타트업의 클라우드 도입 전망에 대한 예언(?)을 했습니다. 당시만 해도 국내에서 AWS 클라우드가 대세가 될거라고 보던 분들은 거의 없었습니다만… 과감하게 IDC에서 클라우드로 이동할 거다라는 전망을 하였네요. 201..추천 -
[비공개] 나의 외국인 매니저 체험기
얼마 전 “여러분의 경력에서 ‘개인 실무자(Individual Contributor) – 팀 매니저(Manager) – 임원(Executive) – 학생(Student)’ 등 다양한 역할을 지그재그로 경험하면 좋겠습니다. 저도 26년간 이들 역할 변화를 통해 새롭게 배우고, 도전하고 재충전도 하고 그랬었네요. 인생은 직선이 아니라 파동입니다.”라는 트윗을 올린 적이 있습니다. 어떤 분이 “40세가 넘어 개인 실무자로 사는 것이 어떠신가요? 외국계 회사에서 팀장과의 관계는 어떤가요?”라고 질문을 하셨습니다. 우선 외국 회사에서는 나이를 묻지 않는 것이 불문율입니다. 나이와 역할은 아무 상관이 없고, 오로지 업무 역량에 따라 일이 진행되기 때문에 국내 회사 보다는 훨씬 더 수평적입니다. 각 직무마다 업무의 범위와 권한을 좌우하는 ‘레벨(Level)’ 역시 나이 혹은 연차와 전혀 관계..추천 -
[비공개] 나의 외국인 매니저 체험기
얼마 전 “여러분의 경력에서 ‘개인 실무자(Individual Contributor) – 팀 매니저(Manager) – 임원(Executive) – 학생(Student)’ 등 다양한 역할을 지그재그로 경험하면 좋겠습니다. 저도 26년간 이들 역할 변화를 통해 새롭게 배우고, 도전하고 재충전도 하고 그랬었네요. 인생은 직선이 아니라 파동입니다.”라는 트윗을 올린 적이 있습니다. 어떤 분이 “40세가 넘어 개인 실무자로 사는 것이 어떠신가요? 외국계 회사에서 팀장과의 관계는 어떤가요?”라고 질문을 하셨습니다. 우선 외국 회사에서는 나이를 묻지 않는 것이 불문율입니다. 나이와 역할은 아무 상관이 없고, 오로지 업무 역량에 따라 일이 진행되기 때문에 국내 회사 보다는 훨씬 더 수평적입니다. 각 직무마다 업무의 범위와 권한을 좌우하는 ‘레벨(Level)’ 역시 나이 혹은 연차와 전혀 관계..추천 -
[비공개] 아마존(Amazon)에서 배운 5가지 글쓰기와 소통 방식
아마존에서는 업무를 위한 소통과정에서 글쓰기를 매우 중요하게 생각합니다. 일상적인 대화, 미팅, 발표 등의 구두 방식의 모호함을 벗어나서 정보를 온전하게 기록하고 공유할 수 있기 때문인데요. 그중에서도 고객 중심 거꾸로 일하기(Working Backward)를 실현할 수 있는 보도자료(PRFAQ) 문서, 최대 6장을 넘기지 않는 내러티브(Narrative) 문서 형식은 꽤 많이 알려져 있습니다. 사내 교육 프로그램에도 글쓰기 강좌가 있을 정도입니다. 이 글에서는 아마존 내부의 (제가 속한 팀에서) 하나의 문장부터 시작해서, 문단, 팀 미팅 보고서 및 월간 보고서에 이르기까지 일상 업무 중에서 글 쓰기가 어떻게 이뤄지는지 살펴보겠습니다. 1. 데이터를 기반한 명확한 문장 어릴 때부터 학교에서 육하원칙(5W1H)에 따라 문장을 쓰라고 배웠습니다. 비즈니스 글쓰기..추천 -
[비공개] 아마존(Amazon)에서 배운 5가지 글쓰기와 소통 방식
아마존에서는 업무를 위한 소통과정에서 글쓰기를 매우 중요하게 생각합니다. 일상적인 대화, 미팅, 발표 등의 구두 방식의 모호함을 벗어나서 정보를 온전하게 기록하고 공유할 수 있기 때문인데요. 그중에서도 고객 중심 거꾸로 일하기(Working Backward)를 실현할 수 있는 보도자료(PRFAQ) 문서, 최대 6장을 넘기지 않는 내러티브(Narrative) 문서 형식은 꽤 많이 알려져 있습니다. 사내 교육 프로그램에도 글쓰기 강좌가 있을 정도입니다. 이 글에서는 아마존 내부의 (제가 속한 팀에서) 하나의 문장부터 시작해서, 문단, 팀 미팅 보고서 및 월간 보고서에 이르기까지 일상 업무 중에서 글 쓰기가 어떻게 이뤄지는지 살펴보겠습니다. 1. 데이터를 기반한 명확한 문장 어릴 때부터 학교에서 육하원칙(5W1H)에 따라 문장을 쓰라고 배웠습니다. 비즈니스 글쓰기..추천 -
[비공개] 국내 최고의 개발 문화를 가진 회사는? – 설문 조사 결과
예전에 “훌륭한 개발 문화의 이면“이라는 시리즈를 연재한 적이 있습니다. 최근 IT 기업 사이에서 개발자 연봉이나 복지 부분에 대한 개선이 이루어지는 현상이 일어나고 있어 매우 고무적인데요. 그런데, 기업 내 개발 환경이나 문화에 대한 개선이 잘 이루어지고 있는지가 궁금했습니다. 지난 6월 10일 부터 27일까지 2022년 국내 기업 개발자 문화 현황 조사를 실시하였습니다. 제가 늘 중요하게 생각하는 12가지 항목을 선정했는데, 개인의 개발 환경, 팀의 업무 문화, 기업의 협업 방식, 기술 경력 및 공유 등 4가지 파트에서 3개씩 골랐습니다. (비슷한 접근 방식으로는 조엘 테스트 (2000)와 실용적 엔지니어 테스트(2021) 같은 것이 있습니다.) Channy의 12가지 훌륭한 개발 문화 체크리스트 코딩 테스트 인터뷰 – 개발자 입사 시 코딩 테스트 혹은 화..추천 -
[비공개] 국내 최고의 개발 문화를 가진 회사는? – 설문 조사 결과
예전에 “훌륭한 개발 문화의 이면“이라는 시리즈를 연재한 적이 있습니다. 최근 IT 기업 사이에서 개발자 연봉이나 복지 부분에 대한 개선이 이루어지는 현상이 일어나고 있어 매우 고무적인데요. 그런데, 기업 내 개발 환경이나 문화에 대한 개선이 잘 이루어지고 있는지가 궁금했습니다. 지난 6월 10일 부터 27일까지 2022년 국내 기업 개발자 문화 현황 조사를 실시하였습니다. 제가 늘 중요하게 생각하는 12가지 항목을 선정했는데, 개인의 개발 환경, 팀의 업무 문화, 기업의 협업 방식, 기술 경력 및 공유 등 4가지 파트에서 3개씩 골랐습니다. (비슷한 접근 방식으로는 조엘 테스트 (2000)와 실용적 엔지니어 테스트(2021) 같은 것이 있습니다.) Channy의 12가지 훌륭한 개발 문화 체크리스트 코딩 테스트 인터뷰 – 개발자 입사 시 코딩 테스트 혹은 화..추천 -
[비공개] 소프트웨어 개발자가 ‘소프트 스킬’ 쌓는 방법
프로그래밍 능력, 소프트웨어 디자인 및 설계 등 업무 수행에 직접적으로 필요한 능력이 ‘하드 스킬(Hard Skill)’이라면 이러한 하드 스킬을 효율적으로 활용할 수 있게 도와주는 소통 능력, 실행력, 리더십 등 대인 관계와 관련된 정서적 능력을 ‘소프트 스킬(Soft Skill)’이라고 부르는데요. 대다수 소프트웨어 개발자들은 논리적인 사고를 하는 경우가 많다보니, 다른 사람도 자기처럼 논리적으로 사고해 줄거라고 여기는 경향이 있습니다. 그래서, 명확한 논리를 제시하기만 하면 상대가 자신의 생각을 잘 받아들일 거라고 착각을 하는 경우도 많구요. 자신의 아이디어를 내세우기 위해 논쟁을 하는 경우도 많고, 이 때 소프트 스킬이 부족하면 상대를 무시한다는 인상을 주면서 부정적인 행동이나 말을 하게 될 수 밖에 없습니다. 소셜 미디어에도 ..추천 -
[비공개] 소프트웨어 개발자가 ‘소프트 스킬’ 쌓는 방법
프로그래밍 능력, 소프트웨어 디자인 및 설계 등 업무 수행에 직접적으로 필요한 능력이 ‘하드 스킬(Hard Skill)’이라면 이러한 하드 스킬을 효율적으로 활용할 수 있게 도와주는 소통 능력, 실행력, 리더십 등 대인 관계와 관련된 정서적 능력을 ‘소프트 스킬(Soft Skill)’이라고 부르는데요. 대다수 소프트웨어 개발자들은 논리적인 사고를 하는 경우가 많다보니, 다른 사람도 자기처럼 논리적으로 사고해 줄거라고 여기는 경향이 있습니다. 그래서, 명확한 논리를 제시하기만 하면 상대가 자신의 생각을 잘 받아들일 거라고 착각을 하는 경우도 많구요. 자신의 아이디어를 내세우기 위해 논쟁을 하는 경우도 많고, 이 때 소프트 스킬이 부족하면 상대를 무시한다는 인상을 주면서 부정적인 행동이나 말을 하게 될 수 밖에 없습니다. 소셜 미디어에도 ..추천