[java] 이것저것,,
🦥 온보딩과 기업문화
- 업무 방식, 필요한 툴, 관련담당자 파악을 통한 생산성 향상
- 조직내 자신의 역할과 목표 이해를 통한 동기 부여
- 조직 문화 및 기업 가치관 습득을 통한 소속감 형성
효율적인 문서화 필요
- 여기저기 문서는 많으나 찾기가 어려움 -> 한곳에 모아두고 관리 필요
- 문서는 있지만 너무 오래전 정보라 쓸모 없음 -> 현행화(누가? 문서를 읽는 사람이,, 예를들면 신규 입사자)
업무 적응 팁
- 상사의 기대치를 파악
- 함께 일할 동료들과 친해지기
- 새로운 정보는 모두 기록
- 프러덕트의 기능 파악
- 팀의 업무 프로세스 파악
- 작은 것부터 시작해 업무 영역 확대
문제 해결을 위한 프로세스
- 문제를 좀 더 이해하기 위해 문제 관련자와 인터뷰를 하고 요구사항을 수집한다. ( 배경, 문제정의, 기술적 요구사항)
- 요구사항의 의도 및 본질을 파악한다. 기술적 검토를 한다. 현재 기술력으로 진행이 어렵다면 대안을 찾는다.
- 인프라 기반이 되어 있는지? 보안이슈는 없는지? 타시스템에 대한 영향은 없는지? 연계시스템과 어떻게 상호작용할지?
- 목표를 달성하기 위한 인력 및 자원 등을 arrange 해서 output을 끌어내는거 리더의 역할
- 수집된 요구사항을 통해 도메인을 모델링 및 데이터 설계를 한다.
- 설계를 기반으로 아키텍처를 정하고 필요한 인프라를 구축한다.
- 모듈간의 관계, 로직 개발, 리팩토링, 테스트 등
- 개발자는 모든 프로세스 부분에 관여한다. 시니어가 될수록 책임과 범위과 확대됨
- 시니어 개발자는 풍부한 경험과 직관을 가지고 있다.
- 어떤 문제를 발견하더라도 유연하게 해결할 수 있는 방법론 습득 => 경험과 지식을 벗어난 도메인과 환경에 빠르게 적응할 수 있다.
추상적이고 구조적인 사고 방식
- 추상 : 여러 사물이나 개념에서 공통적인 특성이나 속성을 추출하여 파악하는 작용
- 현상이나 물체를 가능한 만큼 분해한 후 의도와 목적을 가지고 다시 결합하는 과정 ( 구체적인 것들을 묶어 추상화 )
- 올바른 추상화는 적절한 수준과 관점을 통해 나온다.
- 구조적 사고 : 내용을 겹치지 않고, 빈틈없이 정리하는 것
- 글을 구조적으로 나타내는법 : 글의 목적, 어떻게 묶고 나누는것이 좋을지, 어떤 순서로 나열할지
모델
- 모델링은 분류 추상화 일반화를 통해 이루어진다.
시니어 개발자
- 팀내 엔지니어링 관행을 주도하고 이를 정의하고 가르침
- 학습 및 지식 공유를 확산하고 개발 관행 향상
- 명확하고 유지보수 가능한 코드 작성
- 개발자와 고객간의 협업 촉진
- 기술적 문제를 해결하는 팀들과 실무적으로 작업하여 사용자에게 가치 제공
- 운영하며 겪었던 문제 해결에 대한 베스트 프랙티스 축적
- 업무 파트 전체의 퍼포먼스 향상을 위한 노력
- 기술문제 해결 단계
- 기술 문제 식별 및 정의
- 요구사항을 명확히 하고 제안서 작성
- 기술 방향 결정
- 구현
- 기술문제와 기술 결정
- 간단한 기술 제안 문서(RFC) 작성 - 배경/제안방식/대안등 설명 -> 의견수렴 -> 회의결정
- 기술 결정에 대한 이해 및 미래 결정에 대한 유용한 자료
- 새로운 기술을 어떻게 평가/적용할것인가? 너무 다양한 기술은 조직내 개발자들이 시스템을 빠르게 이해하는데 문제가 됨. 조직내 사용하고 있는 기술이 적을 수록 개발자도 관리가 편함
- 품질 관리 : 팀내 품질 측정 도구가 없음
- 개발일정관리
- 외부 전문 개발이 늦춰질때 : 늦어도 xx일까지 되지 않으면 버퍼로 잡아둔 목표일정인 yy일까지 완료가 불가하다. 스펙을 줄여 yy일까지 되게 하던지, 일정 조정을 해라
- 기능간의 역학관계를 파악하여 간소화 할 수 있는 부분이 있는지 찾는다. 오픈 후 사용자 반응등 데이터를 보고 보완해나가자.
Leave a comment