4. 녹이 슨 소프트웨어를 돌보기
요즘 나의 주된 일은, 오랜시간동안 방치되어왔던 소프트웨어를 돌봐주는 것이다. 곧 제품의 방향성이 정해졌을 때 더 빠르게 달려나갈 수 있도록 말이다.
그 과정에서 홍민희님이 쓰셨던 소프트웨어는 녹이슨다라는 글이 떠올랐다.
그런데 이 과정이 쉽지만은 않다. 나는 이전 직장에서 레거시를 경험한 적이 없다. 개발자로서 꽤나 온실속의 화초처럼 자라왔는데..이전에는 시작한지 얼마 되지 않은 사업의 개발자로 일했기 때문에, 소프트웨어가 풍화(?)되어 가는 과정을 목도하지 못했다. 그냥 잘 돌아갔고, 미래가 조금 우려되지만 일단은 우리가 당장에 원하는 아키텍쳐였고, 우리가 당장에 원하는 기술스택이었고. 그러다보니 그 때 내가 내렸던 의사결정에 대한 빚을 갚는 과정을 경험하지 못했다.
그런데, 지금의 나는 누군가가 내렸던 의사결정의 빚을 대신 갚아줘야하는 역할을 부여받은 것이다. 그러니 어려운게 당연하다.
그러려면 어떻게 해야할까? 둔감하게 말고, 기민하게 반응해야한다.
내가 생각하는 개발자로서의 나의 장점 중에 하나는 꽤나 둔감(?)하고 유연한 것인데..즉, 어느 환경에나 잘 흡수되고 적응한다는 것이다.
그런데 이러한 장점이 지금은 단점으로 작용하고 있다. 문제점들을 식별하는게 아니라 이해하고 있으니 말이다.
따라서 내가 만들어갈 소프트웨어에게 조금 더 긴 생명을 주기 위해서, 고치기 쉬운 소프트웨어로 만들어야한다.
그 때는 맞았고 지금은 틀린 의사결정들을 식별 할 줄 알아야한다.
상호운용성이 맞지 않는 것들을 찾아내어서 빠르게 고쳐야한다. 그러지 않으면 버그는 눈더미처럼 쌓여서 소프트웨어의 앞날을 막을 것이다.
사소해보이는 개선들, 그 때는 좋았지만 지금은 걸림돌이 되는 기술들, 리소스의 문제로 무한히 미뤄져왔던 것들을 하나씩 찾아내어서 틈틈히 고쳐야한다.
지금 고치지 않으면 고칠 시간이 앞으로 없을지도 모른다. 더 둔감해지기 전에, 하루라도 더 낯설 때 이런 것들을 예민하게 찾아내서 고쳐야한다.