소프트웨어 개발 프로젝트에서 흔히 발생하는 다양한 문제점과 그 해결책에 대한 심층적인 분석이 이루어졌습니다. 발표자는 자신의 경험을 바탕으로 여러 사례를 제시하며, 각 상황에서 얻을 수 있는 실질적인 교훈을 강조했습니다.
1. 개발자 행동 및 팀 관리
- 다중 프로젝트 작업: 한 개발자가 여러 프로젝트를 동시에 진행하며 납기 지연과 소통 문제를 야기한 사례를 통해, 커뮤니티 내 정보 공유와 추천 시스템의 중요성을 역설했습니다. 팀원 간의 신뢰가 부족할 경우 페어 프로그래밍을 활용하고, 부정직한 행동은 조기에 인지하고 대처해야 함을 강조했습니다.
- 직급 명칭의 모호성: ‘시니어 개발자’와 같은 직급 명칭이 회사마다 다르게 정의되어 발생하는 문제를 지적했습니다. 직무 기술서를 명확히 하고, 구체적인 기대치와 기술 스킬 맵을 활용하여 혼란을 줄일 것을 제안했습니다.
2. 클라이언트 관계 및 외부 협력
- 유독한 클라이언트와의 관계: 소규모 회사가 유독한 대형 보험사 클라이언트와 협업하며 겪었던 어려움을 공유했습니다. 클라이언트가 두 회사를 같은 저장소에서 작업하게 하고 모든 책임을 개발팀에 전가했을 때 발생한 코드 충돌과 테스트 부재 문제를 통해, 부당한 요구에는 ‘아니오’라고 말하고 때로는 클라이언트를 떠날 용기가 필요함을 강조했습니다.
- 불필요한 미팅 및 문화적 차이: 인도 팀과의 프로젝트 인수인계 미팅에서 참석자들이 비개발자임에도 불구하고 질문하지 않아 발생한 비효율적인 상황을 설명했습니다. 회의 전 명확한 아젠다와 참석자 명단 확인, 그리고 문화적 차이에 대한 이해의 중요성을 강조했습니다.
- 문서화에 대한 오해: 미국 CTO와 중국 개발팀 간에 ‘docs’에 대한 이해 부족으로 문서화가 제대로 이루어지지 않은 사례를 통해, 명확한 소통과 상호 문화 이해가 원격 팀 협업에 필수적임을 역설했습니다.
3. 기술 및 비용 관리
- 클라우드 비용 낭비: 이전 CTO의 이메일로 AWS 알림이 전송되어 PostgreSQL 업데이트 지연으로 12만 유로의 불필요한 비용이 발생한 사례를 통해, 개발자들이 비용에 대한 인식을 높이고 개선 방안을 제안할 필요성을 강조했습니다.
- 레거시 API 통합의 위험: 오래되고 문서화가 부실한 SOAP API 통합 과정에서 겪은 어려움을 공유했습니다. 비기술적인 클라이언트에게 외부 벤더 통합의 위험성을 명확히 설명하고, 시간 및 재료(T&M) 모델을 고려하며, API의 에러 메시지 명확성을 사전에 확인할 것을 조언했습니다.
- 코드 품질 및 유지보수: “내 코드는 완벽하다”고 주장하며 에러 로깅을 하지 않은 개발자의 사례와, 클라이언트가 Rails 2.x 애플리케이션 업그레이드를 거부하여 Heroku 정책 변경으로 시스템이 마비된 사례를 통해, 적절한 에러 처리와 지속적인 시스템 업그레이드의 중요성을 강조했습니다.