
품질팀에서 근무하면서 제품의 로트 추적성, 관련 물품의 관리, 제품 시험 결과에 관한 정보 관리 체계의 부재로 초래되는 생산성 저하에 관한 큰 문제의식을 느꼈다.
인쇄한 시험 양식에 수기로 시료 제품의 구분과 결과를 기록하거나, 컴퓨터 상에서 기록한다 하더라도 워드 프로그램 상에서 양식에 결과를 기재한다음 인쇄하여 문서철에 보관하는 방식은 차이가 없다.
단편적인 시험 결과 이외에는 제품의 종합적인 성능과 시험 결과에 대한 검토, 통계적 분석 과정에서 데이터 취합 비용이 너무 과다하게 소요된다.
데이터의 누적 자체에 체계적이고 표준화된 방법론이 정립되어 있지 않으므로 간단한 Student-T 검정이나 히스토그램 작성이 서류철을 쌓아놓고 시험 결과를 찾아 엑셀이나 미니탭 등에 입력한 다음 진행될 수 있다.
현대 산업론에 있어서 이에 대한 가장 주요한 해결책은 전사적 자원 관리(Enterprise resource planning, ERP), 생산관리시스템(Manufacturing execution system, MES)과 같은 정보 시스템(Information system, IS) 도입을 통한 전산화이다.
그러나 ERP, MES와 같은 고도화된 단계의 정보시스템의 도입은 큰 비용이 요구된다. SAP, Oracle과 같은 상용화된 표준 성능의 ERP는 도입과 유지관리 비용에 지불해야하는 비용이 작지않고, MES의 경우 생산 공정의 특성과 설비의 유기적 연계를 달성할 수 있는 구축과정이 필요하다.
즉, 기업의 입장에선 고도화된 정보 시스템의 도입에 소요되는 기간과 비용에 대하여 이에 상응하는 목표를 명확하게 규정하고 당 목표의 달성 가능성과 효과, 지속적 개선 가능성에 관한 고려가 엄밀하게 이루어져야한다.
기업의 규모와 환경에 따라서 비용에 관한 부분은 상황의 차이가 있을 수 있으나, 결론적으로 정보 시스템의 원활한 도입과 운용, 지속적 개선의 달성을 위해서는 업무 재설계(Buisness process reengineering, BPR) 수준의 절차가 진행되어야 한다.
그러나, 중소기업 환경에서는 주로 인적자원의 부재로 비롯되는 역량의 한계로 인하여, 제안 요청(Request for proposal)단계에서 자사에 적합한 요구사항을 평가하고, 이를 위해 적절한 메소드를 요청하는 것 자체가 하나의 난관에 해당한다.
이른바 상용화된 솔루션이 일종의 경영 상의 위험을 불러일으킬 수 있는 것이다. 이러한 환경에서 대부분의 회사는 스프레드시트 등을 활용한 낮은 단계의 전산화를 선택한다. 엑셀로 대표되는 프로그램에 적당히 인덱스와 양식을 작성하여 데이터를 기록하고 전자문서로 저장하는 것이다.
그러나 엑셀 기반 전자 문서 관리의 한계는 명확하다.
- 데이터의 정합성을 보장하는 것이 매우 어렵다.
- 공동 관리와 모바일 작업에 불리하다.
- 엑셀 문서 파일 관리는 체계화하기 어렵다.
첫번째로, 엑셀은 다른 셀의 데이터를 참조하여 계산을 하거나 연관관계를 맺게되며, 하나의 셀 값이 변하면 자동적으로 다른 셀의 데이터도 변경되므로, 하나의 계산오류나 입력 오류에 의하여 모든 데이터가 변경되는 샷건 이펙트가 벌어질 수 있다.
엑셀은 또한 다른 문서의 셀 내용도 참조할 수 있는 기능을 가지고 있으므로, 여러개의 관리되지 않는 문서간에 외부 참조를 갖게 되는 경우 문서 관리에 재앙적인 난이도를 가지게 만들고 데이터의 정합성을 보장하는 것은 불가능에 가깝다.
당사자 본인이 설정한 외부 참조를 기억하고 있는 것도 불가능한데, 그 엑셀 파일에 접근할 수 있는 가능성이 있는 모든 동료에게 자신의 참조사실을 통보하고 모든 동료가 그 파일의 수정과 삭제에 주의를 기울인다는 것은 더더욱 가능할 수 없다.
이처럼 새로 추가되는 다양한 기능을 원활하게 활용하면 할 수록 문서 관리 체계에서는 망가질 가능성이 높다. 생산성을 높이기 위한 다양한 기능을 제한하는 아이러니한 결과를 초래하는 것이다.
또한, 클라우드화와 공동작업의 보편화의 시대에 발맞추어 엑셀과 워드프로세서 등도 원드라이브와 함께 클라우드 저장, 웹 편집, 공동 편집 작업 등의 기능을 갖추었으나, 이는 데스크탑 환경에서 문서 편집과 협업, 회의에는 유용하지만, 근본적으로 모바일 환경을 포함하여 데이터를 기록 및 누적 관리하는 목적에서는 무겁고 불편하다.
가장 근본적인 문제는 파일 자체를 체계적으로 관리하는 것이 어렵고, 구조화된 조회 등에 매우 불리하다는 점이다.
체계화라고 해봤자 특정 저장 위치에 폴더를 만들고 폴더 구조를 만들어 파일을 저장하는 것이 한계이며, 명명법(Nomenclature)의 도입이 필요하고, 도입한다한들 오타 한글자에 무력화되고 교육과 정착도 어렵다.
도입과 정착이 이루이진다 해도 추가적인 파일 관리 툴의 도움을 받지 않는 이상 운영체제가 지원하는 조회기능을 활용하는 것이 전부이고, 파일의 조회와 검색은 JSON이나 SQL로 기록된 데이터들에 비할바 없이 무겁고 근본적인 한계를 가지고 있는 방법이다.
이로 인하여 온통 종이서류가 난무하는 회사의 업무 절차 개선의 낮은 단계의 전산화 수준으로 시작하는데 있어 엑셀을 체계적으로 활용하겠다는 방식은 근본적으로 부적합하다고 판단했다. 그렇다면 남은 선택지는 그리 많지 않다고 생각한다. Access의 폼과 프로시저 등을 활용한 보다 범용의 데이터베이스를 채택하는 방식을 고려하였으나, 실무에서 프로그램을 사용하게 되는 직원들이 Access의 숙련도를 높이고 활용하는데 드는 시간과 비용에 비하여 Access의 활용도가 크지 않고 다양한 비즈니스 메소드에 대한 확장 가능성이 없으므로 채택하지 않았다.
시스템의 구축과 유지보수에 있어서 일정 수준의 진입장벽을 감수하기로 한 이상 체계적이고 보편적인 방식을 선택하였다. 바로, 관계형 데이터 베이스 관리 시스템(Relational data base management system, RDBMS)와 Java, Spring framework를 활용한 회사 내의 작은 서버를 구축하는 것이다.
가장 기본적인 기능은 직원계정의 생성 및 로그인, 품질 문서와 제품 시험 결과의 체계적인 누적 관리, 시험 진행에 관련된 기초 정보를 사용자에게 제공하는 기능을 구현하는 것을 목표로 한다.
이에 따라 품질팀의 시험정보와 제품의 품질특성에 관한 정보를 SQL을 활용하여 입력 및 조회의 비용을 낮추고 통계적 분석의 생산성을 보다 높이고자 한다.
1인 프로젝트인 만큼 한꺼번에 너무 많은 기능을 상정하지는 않을 것이며, 가장 작은 부분의 기능을 제공하는 것 부터 시작하여 차차 기능을 늘려갈 수 있도록 객체 간의 낮은 결합도, 확장을 고려한 테이블 디자인 및 객체지향의 원리에 가능한 한 충실하고자한다.
배포 환경에서 데이터베이스는 MariaDB를 사용할 예정이지만, 개발 및 테스트 환경에서는 주로 H2 데이터베이스를 활용한다.
IDE는 JetBrains의 Intellij를 사용한다.