ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 배휘동-엔지니어의 성과 및 역량 향상을 위한 실전가이드 - What makes a Great Software Engineer?
    Semina/개발자의성장 2023. 9. 9. 15:38

     

    인프콘 2023 중 30번째

    배휘동님 - 엔지니어의 성과 및 역량 향상을 위한 실전가이드

    https://www.inflearn.com/course/%EC%9D%B8%ED%94%84%EC%BD%982023-%EB%8B%A4%EC%8B%9C%EB%B3%B4%EA%B8%B0/dashboard

     

    [무료] 인프콘 2023 다시보기 - 인프런 | 강의

    성장하는 IT인들의 축제, 인프콘 2023에서 진행된 오프닝 및 발표 세션을 영상으로 다시 보실 수 있습니다., ✅ 확인해주세요 이 콘텐츠는 2023년 8월 15일 화요일 진행된 인프콘 2023 다시보기 녹화

    www.inflearn.com

     

    9p

    What makes a Great Software Engineer?

    출처 : https://faculty.washington.edu/ajko/papers/Li2019WhatDistinguishesEngineers.pdf

    무엇이 위대한 개발자를 만드는가에 대한 논문

    Rank 1. 53/59 Must  작성한 코드의 Detail 이 살아 있다 예로, 에러 핸들링이 잘되어 있으며, 적은 메모리를 사용하면서, 강한 성능을 내고, 코드의 스타일 또한 좋다

    Rank 2. 52/59 Must 복잡한 문제를 다룰 수 있는 강한 Mental 을 가지고 있다

    Rank 3. 49/59 꾸준히 공부한다

    Rank 4. 49/59 신뢰할 수 있는 정보를 제공하며, 상대방이 바로 행동할 수 있는 Feedback 을 제공한다

    Rank 5. 49/59 Open-minded  이며, 상대방의 생각의 변화를 이끌어내는 새로운 정보를 제공한다

    Rank 6. 46/59 좋은 실행자로, 언제 고민을 멈추고,  행동을 시작해야 되는지를 알고 있다 

    ...

    *주 53/59 : 인터뷰한 59명의 Senior engineer 중 53명이 Must 라고 응답

    나의 해석

    01 .개발자니까 개발을 잘하는게 가장 기본이다
    02. Rank 2,3,6 번은 일잘하는법, 의사결정 잘하는 법등 자기개발에 대한 내용이다
    03. Rank 4,5 번은 심리학 관련 내용이다.
    결론으로, 개발(1)을 기본적으로 잘해야 되지만, 자기개발(3)이 잘되어 있고, 심리학(2)에 능해야 한다

     

     

    반대로 채택되지 못한 문항들

    좋은 개발자가 되기 위한 속성 중 선택받지 못한 질문들

     

    Hardworking : 8시간 넘어 야근하는 상황을 만드는 것 자체에 대해 부정적

    Trade favors : 미리 좋은 동료애를 구축해 놓아, 필요할 때 도움을 요청할 수 있다

    -> 많은 Senior 개발자들이 독립적으로 문제를 해결하는 것에 더 많은 투표를 하였으며, 동료에 의존하는 문항은 채택받지 못했다

     

     

    배동휘님의 위대한 개발자

    탁월한 개발자의 5가지 필수 역량

    1. 유능한 코더가 된다 ( Be a competent coder )

    2. 작업의 현재 가치를 극대화 한다 ( Maximize current value of your work )

    3. 근거 기반 의사결정을 연습한다 ( Practice informed decision-making )

    4. 동료의 효율적 의사결정을 돕는다 ( Enable others to make decisions efficiently )

    5. 꾸준히 학습한다 ( Continuously learn )

     

    1. 훌륭한 코드를 짠다 

    Be a competent coder

    • 단순히 작동하는 걸 넘어 훌륭하게 만들 디테일에 주의를 기울인다

    - 에러 핸들링, 메모리, 성능, 보안, 스타일
    • 주니어에게 가장 중요한 역량! 그러나 '훌륭함'의 기준이 아주 높지는 않음에 주의
    • 일정 수준을 넘어가면 다른 역량을 키우는 노력이 더 효율적

     

    탁월한 개발자의 5가지 필수 역량
    * '훌륭한 코드를 짠다'에 대한 개인적 해석
    1) 고객 요구사항을 만족하는 코드를
    2) 빠른 속도와 

    3) 적은 버그로 

    -> 고객의 요청사항을 만족하는 수준에서, 코드의 가독성을 높여 품질을 높여간다

     

    4) 코드 품질에 대한 자신만의 일관된 관점을 갖고, 

    5) 가독성 있게 작성한다

     

    주2) 가독성과 코드 품질에 대한 내용은, 6번 백명석님의 강의에서도 언급된 내용입니다

     

    2. 근거 기반 의사결정을 연습한다

    Practice informed decision-making

    • 의사결정의 결과보다는 프로세스를 개선하는 데 집중하는 게 유리
    • 문제 정의 → 현재 가진 정보에 기반해 반증 가능한 가설 수립 → 추가로 필요한 정보 판단해서 습득
    → 의사결정 및 행동 → 결과 관찰 → 피드백
    • 데이터에 기반하되 편견에 빠져 해석하거나, 성급하게 결론내리지 않기
    • 새 정보를 얻었다면 불편하더라도 기존 판단을 재고해봐야 함(e.g., 수요일의 전화코칭)
    • 디버깅할 때 이건 내 문제가 아니라고 생각하면 대부분 틀림(e.g., 라이브러리, 브라우저, 네트워크, 하드웨어...)

     

    여유를 가지고, 열린 마음으로 다양한 외부 관점을 받아들여 큰 그림으로 보기
    • 친구의, 동료의, 고객의, 경쟁자의, 상사의 관점
    • 다양한 양질의 정보가 내 주변에서 지나가게 하는 시스템 구축하기 (뉴스레터, 커뮤니티, 스터디...)
    • 다양한 = 고여있지 않기
    • 양질의 = 큐레이션 활용, 정보 질 판단하는 능력 기르기
    • 지나가게 = 받아들이다 + 내보내다
    • 시스템 = 너무 큰 노력을 들이지 않아도 유지되도록

     

    3. 동료의 효과적 의사결정을 돕는다

    Enable others to make decisions efficiently
    • 탁월한 개발자는 본인이 확보한 유용한 정보와 성공 및 실패 경험을 공유하여 동료를 성장시키고,
    팀의 생산성을 높이고, 결과적으로 본인이 속한 조직이 더 나은 의사결정을 할 수 있도록 도움

     

    주니어라면 저평가, 거절, 민폐의 두려움을 이겨내 고맥락으로 질문 및 부탁하는 습관을 가지면 좋음.
     신뢰를 쌓아야 취약성을 드러낼 수 있는 게 아니라, 취약성을 용기있게 드러내야 신뢰를 쌓게 됨
     ; 주니어는 성장이 더 중요하기 때문임


    • 고맥락 : Don't Make Me Think: (A-B)-C 면 C만 물어보지 마라
    context 를 공유할 수 있도록 (A-B) 를 설명한 후 C를 질문해야 함


    • 이런 행동이 촉진되려면 취약성과 투명성에 높은 가치를 두는 문화를 구축해야 함

      • 디폴트의 중요성: Slack vs Email, Notion, wiki vs Google Docs

         • Slack, Notion, Wiki 는 기본이 public

         • Email, Google Docs 는 기본이 private

     

    • Do Not Disturb vs Open Hours

    교수님식 open hours 보다,

    언제나 질문 가능한데, 특정 시간만 Do not distubr me 가 default 인 조직이 더 좋은 토양을 가지고 있음 -> public 인 시간이 더 많기 때문에

         

    4. 작업의 현재 가치를 극대화한다

    Maximize current value of your work

    • 나중에 문제가 될 만한 부분이나, 요구사항이 어떻게 변할지 예측하여 장기적 관점에서 구현하기 vs 분석하느라 멈춰있지 말고, 불확실성이 두려워도 일단 뛰어들어 실행하여 피드백 받기
    • 특히 스타트업에서는 후자가 더 유리하지만, 절대 극단에 치우치면 안 됨


    • 적은 노력으로 큰 이득을 가져다주는 습관이 몇 가지 있음
    • 미시적: 값이 하나라도 하드코딩 대신 변수로, 값이 둘이라도 Boolean 대신 Mode로
    • 거시적: 결과를 관찰할 수 있는(=피드백을 받을 수 있는) 명확한 가설은 세워놓고 실행
    • 내 의지로 시스템적 사고와 당장 움직이기 둘 사이를 유연하게 오갈 때 작업 가치가 극대화

     

    5. 효과적으로 꾸준히 학습한다

    Continuously learn

    • 모든 역량 중 가장 중요. 효과적으로 학습하는 법을 학습하는 게 가장 큰 복리이득을 줌
    • 학습 = 나의 지식을 넓혀 삶을 변화시키기 위한 것

     

    • n년 전에 유효했던 지식이 지금도 유효하리라는 보장이 없음 → 새로운 정보를 이용해 업데이트 필요
    • 정보 = 사실, 해석, 예측 → 가치있는 지식은 이 3가지를 버무릴 때 나옴
    • 그러나 정보가 많다고 무조건 좋은 건 아님 (e.g., 정제되지 않은 빅데이터)

     

    • 소음 대비 신호(관련 있으면서 정확한 정보)의 비율을 높여야 함

    -  내 전문분야에서 부터 시작

    • 생소한 분야에서 내 기존 지식과의 연결점을 만들어주는 통찰
    • 확증 편항을 깨주는, 내 지식의 특정 부분을 반박해주는 증거 (e.g., <종의 기원>)

     

     

     

    Reference 

     

    배휘동님 steay-study site : https://steady-study.super.site/

     

    Steady Study

    배휘동, 프론트엔드 엔지니어링 팀 리드, XL8(2022.02 ~ ) 웹과 소프트웨어 개발, UI/UX, 스타트업과 개발문화, 삶의 질에 대한 여러가지 생각.

    steady-study.super.site

     

     

    https://maily.so/boost.life.density

     

    삶의 밀도를 높이는 여정

    우리의 시간과 에너지를 더 가치있게 써봅시다

    maily.so

     

     

    A framework for Engineering Managers

    http://www.engineeringladders.com/

     

    Introduction

    A framework for Engineering Managers

    www.engineeringladders.com

     

    roadMap

     

    https://roadmap.sh/devops

    https://roadmap.sh/frontend

    https://roadmap.sh/backend

     

    Backend Developer Roadmap

    Learn to become a modern backend developer using this roadmap. Community driven, articles, resources, guides, interview questions, quizzes for modern backend development.

    roadmap.sh

     

     

    댓글

Designed by Tistory.