K (잘한것)

  • 회사 프로젝트에서 초기 개발시작하기 전부터 자동화된 CI/CD(배포+테스트+정적분석)시스템을 구축하고 나서 프로젝트를 진행하도록 하였다. 그 결과로 팀원들의 코드 퀄리티와 개발품질이 향상되었다. 테스트 코드를 추가하면서 인지하지 못한 사소한 버그를 확인 하였고 정적 분석툴(SonarQube)을 도입한 이후에 코드 컨벤션은 물론이고 팀원들의 잘못된 습관들을 많이 바로 잡을 수 있었다.

  • 프로젝트 단위에서 도메인 주도 개발을 부분적으로 도입하였다. 프로젝트팀들과 이벤트스토밍을 통해서 언어의 통일과 발생되는 이벤트와 프로세스도 팀원 전체가 동일하게 이해할 수 있도록 하였다. 하지만 아직 개발팀원들이 코드 레벨로 도메인 주도 개발을 적용하는 부분은 어려움을 격고있다. 하지만 지속적으로 도입을 위한 노력을 하고 있고 코드 레벨에서의 도메인 주도 개발 방법도 여러가지를 시도중이다.

  • 좋은 구성원들이 참여하면서 프로젝트 진행 방식이 많이 개선되었다. 누군가가 시키지 않아도 자연스럽게 논의를 거쳐서 프로세스를 개선하려는 문화가 형성되고 있다. 업무를 진행하면서 누구의 잘못을 따지는 문화보다는 어떻게 하면 더 나은 제품을 만들 수 있는지에 대해서 고민하는 문화가 형성되고 있다.

  • 올해 초에는 프로젝트의 팀구성을 맞추기 쉽지 않았는데 지속적으로 적게나마 좋은 분들이 합류하면서 프로젝트의 인원구성을 어느 정도 맞출 수 있었다. 하지만 지금도 프로젝트는 지속적으로 확장되고 있고 필요한 인원도 늘어나서 좋은 분들을 찾는 채용은 계속 될것같다.

  • 프로젝트 진행 방법으로 스크럼반을 선택했다. 누가 시켜서가 아닌 팀원들이 스스로 프로젝트의 진행방식을 개선하기 위해 도입을 결정했다. 전체적으로 프로젝트 진행 방식에 대해서 토의하고 도입하기 함께 공부하는 과정이 인상 깊었다. 처음에는 쉽지 한을 것이라는 것과 지속적으로 좋은 방향으로 개선하기 위해서 노력해야 한다는 부분도 구성원 모두가 이해했고 노력하고 있다.

  • MSA도임을 고민하고 팀원들과 의논을 하면서 기술이 정말 우리에게 필요한 것인지 고민하게 되었다. 우리 팀인 내린 결론은 불필요하다는 것이었다. 그리고 나서 도출한 결론은 우리에게 정말 필요한 것은 “도메인에 대한 깊은 이해와 그것에 필요한 기술이 무엇인지 찾는것” 이였다. 모놀리틱 서비스라도 우리의 상황과 맞다면 좋은 해결책이 될수 있고 최신 기술이 아니라도 하더라도 우리와 적합한 기술을 찾는것이 중요하다는 것을 깨달았다.

S (아쉬운것)

  • 일부 프로젝트에 Grafana 를 도입하고 로그 모니터링 및 매트릭스 모니터링을 도입했지만 아직 활용을 못 하고 있다. 개발 중에도 적극적으로 사용할 수 있는 방법을 모색해야 할것 같다. 현재 백엔드 개발팀원만 주로 모니터링하고 있지만 프로젝트팀의 전반적인 인원들이 데이터를 얻을 수 있도록 표준화된 환경을 만들어야 한다.

  • 개발이 급해지다 보면 좋은 설계보다는 코드를 작성하기에 급급한 경향이 있다. 이런 부분을 줄이고 스파게티 코드나 모듈간의 결합도를 낮추기 위한 설계에 신경써야 한다. 결과적으로 기존에 도입하기로한 도메인 주도 개발이 코드레벨에도 적용될 수 있도록 해야 한다.

  • 프로젝트를 진행하면서 여러 이유로 인해서 생기는 깨진 유리창과 같은 기술 부채 들을 무시하고 넘어가는 일들이 있었다. 여러 이슈들을 해결하기는 했지만 아직도 남아 있는 부분이 있다. 향후 개발시 인지한 잘못된 부분에 대해서는 모든 인원들이 오픈된 공간에서 인지 하고 해결해 나갈 수 있는 프로세스를 만들어야 한다.

T(시도 해볼것)

  • 프로젝트 구성원들이 모두 모니터링 툴에서 데이터를 획득할 수 있도록 하기 위해 표준화된 모니터링 시스템을 구축 할것
  • 도메인 주도 개발을 활성화 시키기
  • 운영하면서 발생하는 실수(보안사고/ 운용사고)를 최대한 줄이기/ 기술 부채들을 해결해 나가기