예전에 내 손을 거쳐간 레포를 보면 대부분 테스트 작업이 CI에 포함되어있다. 내가 개발하다보면 결국 복잡함이나 기존 구현을 보장하기 위해 필요해서 만들게 됨.
그렇게 테스트를 붙여놓고 다른 작업을 부여받아 레포를 떠나는 과정을 서너번 반복함.
발단
최근에 2개의 레포가 약 1년 전부터 테스트가 깨져있으나 PR 단계에서 CI가 실패해서 X를 달고도 머지되어 배포가 지속적으로 나감을 확인했다. 우리의 레포는 약한 검증으로 CI가 실패해도 머지는 가능했다.
전개: 막 들었던 생각들
CI가 X인데 왜 배포를 나가죠?
이건 이해할 수 있다. 봤더니 변경사항과 전혀 관련없는 부분이 터지면 나갈 수 있음. 경우에 따라 바빠죽겠는데 X가 뜨면 화가 날 수도 있음.
배포를 나갔습니다. 이후 왜 아무도 안 고치죠?
테스트가 효용이 없으면 스킵하든 삭제하든 O를 만드는 것이 옳다. 살릴만한 테스트라고 판단되면 자세히 살펴보고 도움을 구해서라도 고쳐야한다. 어떤 부분에서 터졌는지도 확인 안 했다면? 흠…
추가적인 생각
테스트 코드는 유지해야하는 비용이 드는 코드다. 나도 다른 사람의 테스트코드를 유지하고 삭제해봐서 그 귀찮음을 안다.
추가적인 생각 2
- 단체는 개인이 아니다. 기대하는 바(테스트가 터지면, 방치하지 말고 저를 불러주세요)를 이야기한 사람은 지금의 그들이 아닐 수 있다.
- 필요하다면 CI X → 배포를 못 나감을 설득하고 자동화해서 강제했어야 함. 하지만 나도 필요하지 않다고 생각하고 있다.
결말
시간이 지나고 ‘추가적인 생각 2’를 하면서 생각이 바뀌었다.
‘내가 더 잘 하자.’
깨진 CI를 보면 방치한 사람들을 블레임을 할게 아니라, 고치고 보여줬으면 되었을 일이라는 생각이 들었다.
이 결말에 다다르기까지의 흐름
전개의 질문들은 스스로에게 먼저 물어보고 공개적으로 당사자들에게 물어보려고 했던 질문들이다. 그리고 실제로 질문들을 안건으로 올리고 공개하기 전에 누군가 피드백을 줬다. “제목(질문)이 비꼬는 거다.” 라는 이야기였다. 나는 아닌데 궁금한 건데,, 했지만, 결국 맞다고 인정함.
그냥 궁금하기도 했고, 감정적인 부분도 있었다.
필요하다면 CI X → 배포를 못 나감을 설득하고 자동화해서 강제했어야 함. 하지만 나도 필요하지 않다고 생각하고 있다.
그리고 나서 위의 이 생각까지 오니, 단순히 궁금함이라는 이유로(=협업의 관점에서 이유가 없다고 볼 수 잇음) 공개적인 자리에서 블레임하는 나쁜 팀원이었구나 싶었음.
🌱
위기와 절정까지 찾아올 뻔했지만, 더 잘하자로 생각이 바뀌었다. 연차는 늘어가는데, 이제서야 협업을 위한 커뮤니케이션을 배우고 있다는 생각이 든다. 🌱 이 부분에서는 나는 자라나는 중일지도….