- Posted
- Filed under 글로 기록하기
우리 회사에서는 업무용 소프트웨어를 주는 저작도구 프로그램을 만들고 있습니다. 이 저작도구 프로그램은 .NET기반으로 만들어져 있고, 저작도구의 결과물인 업무용 소프트웨어를 실행시켜주는 운영환경도 같이 제공하고 있습니다. 이 저작도구 프로그램은 .NET 버전만 약 8년이 되었고, 이전에는 MFC버전이 있었습니다. (MFC버전은 얼마나 오랬동안 만들어졌는지 모르겠습니다.)
저는 .NET기반의 저작도구 프로그램으로 만들어진 업무용 소프트웨어를 Java에서 실행시킬 수 있도록 하는 Java기반 운영환경을 만들고 있습니다. 기존에 구현된 기능을 파악하고 Java에서도 같은 기능을 만들어야 합니다. 이때, 단순히 코드를 .NET에서 Java로 변환하는 정도의 일이 아니라, 정의된 기능을 처음부 하나하나 다 만들어야 합니다.
이미 만들어진 프로그램의 기능을 파악하기 위해서는 메뉴얼이 필요하지만, 안타깝게도 우리 프로그램은 메뉴얼에 나와 있는 기능보다는 나와있지 않은 기능을 더 많이 사용합니다. 그러다보니, 메뉴얼보다는 .NET 소스를 직접 분석하면서 기능을 파악하는 경우가 더 많습니다.
소스를 분석하다보면, 도저히 이해가 가지 않는 부분을 발견하게 됩니다. 이때 거의 대부분은
- 생각부족
- 설계부족
- 문서 안만들기
- 임시적인 해결
- 개발자간 의사소통 안함
하지만 위에서 나열한 것보다 더 근본적인 문제가 있는 것 같습니다.
잘못을 알았을 때, 바로 고치지 않는 것...
- 이미 업체에서 이렇게 사용하고 있기때문에 고칠 수 없어요.
- 고치기에 너무 시간이 오래 걸릴 것 같아요.
- 당장 고칠 사람이 없어요.
잘못을 발견했을 때 고치지 않고 묻어두기만 한다면, 조그만 실수가 나중에는 돌이키기 어려운 큰 문제가 될수도 있다는 것을 우리는 너무 관과하고 있는게 아닐까요?
저는 지금도 잘못을 고치지 못하고, 그 잘못을 그대로 옮기고 있습니다.