내 생산성의 장애물

프로그래밍하다보면 부드럽게 달리다가 턱에 퍽하고 걸린다고 느낄 때가 있다.

  • 유닛 테스트(혹은 기능 테스트)를 돌렸는데 끝이 안난다거나
  • 컴파일러 메시지가 쭉 뜨고있거나 혹은 링커/코드 생성 메시지에서 끝이 안나고 있다거나
  • 빌드 서버에서 끝없이 노란 불(=빌드 중)이 들어가 있거나
  • 안티바이러스 스캐닝이 하드 디스크를 긁고 있거나 ((물론 이 경우에는 정말 아무 것도 할 수 없기 때문에, 수단과 방법을 가리지 않고 안티 바이러스를 종료한다. 안 꺼지면 파워 버튼을 연타))

여하튼 이런 일에 신경이 쓰이면 뭔가 발이 잡힌 것 같고, 집중이 퍽하고 깨진다.

개인적으로는 이거에 대해 약간의 우회책을 넣어 대처하고 있다(=성격 나빠지고 있다).

우선 빌드 속도와 테스트 케이스 실행 속도. google test 를 써서 작성한 테스트인 경우 실행 파일 생성 시간이 바뀌면 자동으로 테스트를 실행하고 실패하면 화면 오른쪽 아래에 커다란 빨간 팝업을 뜨게 했다. 클릭하기 전에는 안 사라지는 그런 팝업임.

대충 여기 화면 오른쪽 아래에 나오는 식.1 반대로 모든 테스트가 성공하면 쬐끄마한 녹색 팝업을 수 초쯤 띄우고 사라지게 했다. 이전에 빨간 팝업이 있었으면 그것도 지우고. 상대적으로 좀 덜 기다리고 (문제가 생기면 알려주고) 다른 작업을 할 수 있게;

이전 포스팅에서 말했던 원래 문제(긴 테스트 시간)도 약간은 견딜만한 문제정도로 바꿨다. 다만 이 방법도 항상 통하는건 아니다. 코드 작성 -> 빌드 -> 실행 -> 보고의 한 싸이클이 너무 길면 큰 도움이 안된다. 테스트가 다 돌기도 전에 다음 싸이클의 코드 작업이 끝나고 빌드 버튼을 누르면 이미 실패. 엄한 링크 오류나 보게 된다.

그덕에 직전 포스팅에 나온 작업에 착수. 테스트 실행시간을 줄이고나니 어지간해선 — 멍청한 안티바이러스라거나가 빌드 시간을 잡아먹지 않는다면 — 견딜 수 있는 범위 내로 어떻게 어떻게 되더라.

빌드 서버 결과기다리는 것도 예전엔 상태 보면서 기다렸는데, 요즘은 신경 끄고 딴 일하다 실패 팝업 뜨면 그 때 보기는 방식으로 가고 있다. 문제는 내가 고친 프로젝트 말고 다른 사람 프로젝트 깨지면 그것도 신경쓰게 된다는 거지만;

하지만 이런 짓하면 성공적으로 전진하는 경우야 좋지만 실패했을 때의 페널티가 크다. 내가 뭘 생각하고 있었나도 돌아봐야하고, 문제를 풀고나서도 다시 원래있던 곳으로 사고를 돌려야하니.

여하튼 세 줄 요약

  • 작업 싸이클에 드는 시간이 짧아야 집중해서 일할 수 있다
  • 특정 단계가 너무 길다 싶으면 비동기로 바꾸고, 보고할만한 내용이 있으면 눈에 잘 띄게 알려주자(소리나 불빛 덜 방해되는 영역의 팝업)
  • 이래도 안되면 – 사실이게 제일 싼 방법 같은데 – 하드웨어에 투자해야. 뭐 난 그게 안되서 테스트 코드를 최적화했다만.

  1. 화면 오른쪽 아래 좀 탁하게 찍힌 화면이 그것. 화면 해상도가 2048 by 1152 임을 감안하고 보실 듯. ↩︎