[java] 이것저것,,

🦥 온보딩과 기업문화

  • 업무 방식, 필요한 툴, 관련담당자 파악을 통한 생산성 향상
  • 조직내 자신의 역할과 목표 이해를 통한 동기 부여
  • 조직 문화 및 기업 가치관 습득을 통한 소속감 형성

효율적인 문서화 필요

  1. 여기저기 문서는 많으나 찾기가 어려움 -> 한곳에 모아두고 관리 필요
  2. 문서는 있지만 너무 오래전 정보라 쓸모 없음 -> 현행화(누가? 문서를 읽는 사람이,, 예를들면 신규 입사자)

업무 적응 팁

  1. 상사의 기대치를 파악
  2. 함께 일할 동료들과 친해지기
  3. 새로운 정보는 모두 기록
  4. 프러덕트의 기능 파악
  5. 팀의 업무 프로세스 파악
  6. 작은 것부터 시작해 업무 영역 확대

문제 해결을 위한 프로세스

  1. 문제를 좀 더 이해하기 위해 문제 관련자와 인터뷰를 하고 요구사항을 수집한다. ( 배경, 문제정의, 기술적 요구사항)
  2. 요구사항의 의도 및 본질을 파악한다. 기술적 검토를 한다. 현재 기술력으로 진행이 어렵다면 대안을 찾는다.
  3. 인프라 기반이 되어 있는지? 보안이슈는 없는지? 타시스템에 대한 영향은 없는지? 연계시스템과 어떻게 상호작용할지?
  4. 목표를 달성하기 위한 인력 및 자원 등을 arrange 해서 output을 끌어내는거 리더의 역할
  5. 수집된 요구사항을 통해 도메인을 모델링 및 데이터 설계를 한다.
  6. 설계를 기반으로 아키텍처를 정하고 필요한 인프라를 구축한다.
  7. 모듈간의 관계, 로직 개발, 리팩토링, 테스트 등
    • 개발자는 모든 프로세스 부분에 관여한다. 시니어가 될수록 책임과 범위과 확대됨
    • 시니어 개발자는 풍부한 경험과 직관을 가지고 있다.
    • 어떤 문제를 발견하더라도 유연하게 해결할 수 있는 방법론 습득 => 경험과 지식을 벗어난 도메인과 환경에 빠르게 적응할 수 있다.

추상적이고 구조적인 사고 방식

  • 추상 : 여러 사물이나 개념에서 공통적인 특성이나 속성을 추출하여 파악하는 작용
  • 현상이나 물체를 가능한 만큼 분해한 후 의도와 목적을 가지고 다시 결합하는 과정 ( 구체적인 것들을 묶어 추상화 )
  • 올바른 추상화는 적절한 수준과 관점을 통해 나온다.
  • 구조적 사고 : 내용을 겹치지 않고, 빈틈없이 정리하는 것
  • 글을 구조적으로 나타내는법 : 글의 목적, 어떻게 묶고 나누는것이 좋을지, 어떤 순서로 나열할지

모델

  • 모델링은 분류 추상화 일반화를 통해 이루어진다.

시니어 개발자

  1. 팀내 엔지니어링 관행을 주도하고 이를 정의하고 가르침
  2. 학습 및 지식 공유를 확산하고 개발 관행 향상
  3. 명확하고 유지보수 가능한 코드 작성
  4. 개발자와 고객간의 협업 촉진
  5. 기술적 문제를 해결하는 팀들과 실무적으로 작업하여 사용자에게 가치 제공
  6. 운영하며 겪었던 문제 해결에 대한 베스트 프랙티스 축적
  7. 업무 파트 전체의 퍼포먼스 향상을 위한 노력
  • 기술문제 해결 단계
    1. 기술 문제 식별 및 정의
    2. 요구사항을 명확히 하고 제안서 작성
    3. 기술 방향 결정
    4. 구현
  • 기술문제와 기술 결정
    1. 간단한 기술 제안 문서(RFC) 작성 - 배경/제안방식/대안등 설명 -> 의견수렴 -> 회의결정
    2. 기술 결정에 대한 이해 및 미래 결정에 대한 유용한 자료
    3. 새로운 기술을 어떻게 평가/적용할것인가? 너무 다양한 기술은 조직내 개발자들이 시스템을 빠르게 이해하는데 문제가 됨. 조직내 사용하고 있는 기술이 적을 수록 개발자도 관리가 편함
    4. 품질 관리 : 팀내 품질 측정 도구가 없음
  • 개발일정관리
    1. 외부 전문 개발이 늦춰질때 : 늦어도 xx일까지 되지 않으면 버퍼로 잡아둔 목표일정인 yy일까지 완료가 불가하다. 스펙을 줄여 yy일까지 되게 하던지, 일정 조정을 해라
    2. 기능간의 역학관계를 파악하여 간소화 할 수 있는 부분이 있는지 찾는다. 오픈 후 사용자 반응등 데이터를 보고 보완해나가자.

Leave a comment