- 많은 조직에서 Excel이 업무 프로세스의 기반이 되면서, 작은 자동화가 필요할 때 VBA가 사실상 기본 선택지가 됨
- 사례 조직은 13개 데이터 플랫폼과 여러 자동화 도구를 갖고 있지만, 필요한 데이터 소스에 폭넓게 접근할 수 있는 도구는 VBA와 PowerShell 정도로 좁혀짐
- CyberSecurity가
Python,Ruby,Node,Rust같은 고수준 언어 설치를 거부했고, 대안인 Power Platform은 데이터 접근성과 복잡한 알고리듬 유지보수에서 한계를 보임 - Lotus Notes와 IBM BPM 이전 사례는 IT 주도 시스템이 지원 종료, 미완성 마이그레이션, 유지보수 공백에 취약할 수 있음을 보여줌
- VBA는 낡고 약점도 있지만 Office에 포함되어 누구나 접근할 수 있고, SME가 업무 로직과 데이터 이전을 직접 검증할 수 있는 통제권을 제공함
VBA가 계속 선택되는 직접적인 이유
- 2021년 /r/vba 설문에서 VBA 사용자의 다수는 다른 선택지가 없어서 VBA를 쓴다고 답함
- 많은 조직은 전체 업무 프로세스를 Excel로 운영하며, 약간의 자동화가 필요할 때 VBA가 가장 먼저 선택되는 경우가 많음
- “스프레드시트로 인프라 일부를 제어한다”는 비판 뒤에는 조직이 제공하는 도구, 데이터 접근성, 유지보수 구조의 제약이 있음
데이터 접근성과 자동화 도구의 제약
- 사례 조직의 엔지니어링 부문은 여러 자동화 플랫폼을 사용할 수 있음
- OnPrem:
PowerShell, Excel의VBA/ 제한된OfficeJS/OfficeScripts/PowerQuery,PowerBI Desktop,SAP Analysis for Office - OnCloud:
PowerApps,Power BI, 비프리미엄PowerAutomate - 샌드박스 환경:
ArcGIS의ArcPy,MapInfo의MapBasic,InfoWorks ICM의Ruby,ArcGIS Online
- OnPrem:
- IT가 관리하는 데이터 플랫폼은
D1부터D13까지 있으며, 지리공간 DB, SAP DB, 텔레메트리 플랫폼, SharePoint, Lotus Notes, IBM BPM, 파일 시스템, Hydraulic Model Information 등을 포함함 - 필요한 데이터 소스에 연결할 수 있는 자동화 플랫폼은 VBA와 PowerShell 정도로 정리됨
Power BI Desktop은 조직에 도입되었지만 VBA가 접근하는 모든 플랫폼을 포괄하지 못함- 접근 범위가 같더라도
Power BI는 프로세스 자동화에 쓰기 어렵고, 다른 데이터셋을 다루려면 CSV를 만들어 SharePoint에 저장하는 방식이 쓰임 - 그 CSV 생성도 VBA가 맡는 경우가 있음
- VBA의 일부 OnCloud 서비스 연결은 직접 시도에 기반하며, SAP BW4HANA와 다른 클라우드 서비스도 VBA로 인터페이스할 수 있다고 보지만 인증 요구사항과 프로토콜은 아직 해결되지 않음
고수준 언어와 Power Platform의 한계
- 조직은 업무 자동화를 위해
Python,Ruby,Node,Rust같은 고수준 언어를 쓰고 싶어 했지만, 팀이나 비즈니스 전반에 설치하는 요청은 CyberSecurity에 의해 모두 거부됨 - 거부 이유는 최종 사용자에게 고수준 프로그래밍 언어 접근을 허용하는 것이 회사의 기술 전략 비전에 어긋난다는 것이었음
- 대안으로 거론되는
PowerAutomate,PowerApps는 필요한 데이터에 거의 접근하지 못함 - 데이터 접근이 가능하더라도
Power Platform은 대부분의 프로세스를 수행하기에 부족함- 필요한 알고리듬이 복잡해
PowerAutomate솔루션은 유지보수가 어렵고 IT 인력에게도 이해하기 힘들 수 있음 - 예시로 projection algorithms이 언급됨
- 필요한 알고리듬이 복잡해
- 결국 실용적으로 남는 도구는
PowerShell v3와 VBA임PowerShell v3는 클래스 문법을 지원하지 않고 모듈 설치도 불가능함- VBA는 현대적 기준에서 합리적인 언어로 보강하기 위해 수백 시간을 들여 open source VBA libraries를 만들게 된 대상임
유지보수 보장으로서의 VBA
- 2000년대에 많은 시스템이 IBM Lotus Notes 데이터베이스 위에 구축됨
- Lotus Notes는 2019년 HCL에 인수된 뒤 지원 지속성이 흔들렸고, 2024년 6월 공식 지원 종료가 예정돼 있었음
- 2019년부터 기술팀은 여러 시스템을 새 기술로 이전하려 했고, 조직은 Lotus Notes DB 하나를 대체하기 위해 IBM Business Process Manager 기반 시스템 개발에 큰 비용을 투입함
- 계획은
D11에D10데이터를 모두 채운 뒤D10을 아카이브하는 것이었지만, 2023년 시점의 상태는 달랐음- 공식 지원 종료까지 8개월 남음
- 기술팀은 IBM BPM 지원 계약을 없앰
- IBM BPM과 Lotus Notes DB 모두에 대한 대체 시스템이 보이지 않음
- IBM BPM 솔루션은 유지보수가 부족하고 필요한 대로 동작하지 않음
- 목적에 맞지 않는 솔루션을 IBM BPM에 억지로 넣은 상태임
- REST API가 있지만 기술팀과 SME에게 거의 쓸모가 없음
- 일부 REST 호출은 문자열로 인코딩된 JavaScript를 사용함
- 다른 호출은 XML 안의 JSON 안에 HTML을 넣어야 함
- DB 테이블은 이름이 아니라 GUID로 쿼리됨
- 어떤 GUID가 어떤 테이블이나 프로세스에 대응하는지 문서가 없음
D10데이터는 실제로D11로 이전되지 않아 비즈니스는 1개가 아니라 2개 시스템을 쓰고 있음D11데이터 모델도D10데이터를 제대로 지원하지 않음
- SME는 도구를 매일 사용하고 시스템 변경 필요사항을 결정하는 주체임
- SME가 VBA를 쓰면 필요한 만큼 시스템을 직접 통제하고 유지할 수 있으며, 이는 IT 시스템에서는 보장되지 않는 유지보수 보장으로 작동함
통제권과 SME 협업 문제
- 최근 프로젝트는 비즈니스 핵심 스프레드시트를 대체하는 새 통합 IT 시스템을 만드는 것이었고, 성공하면
D6의 중요도는 C 등급으로 내려갈 예정이었음 - 초기 명세는 단순했음
NodeJS서버와MySQL데이터베이스ReactUI- 관리자와 SME에게 코드베이스와
git접근 권한 제공 - IT와 SME가 협업해 시스템 구축
- 기술팀은 다른 요구를 내놓음
- 관리자와 SME는 코드에 접근하지 못함
- 프런트엔드는 “Strategic Vision”에 맞춰
Microsoft PowerApps로 구축함 - 백엔드는 “Strategic Vision”에 맞춰
Microsoft Azure Pipelines로 구축함
- SME 입장에서는 이 요구가 여러 문제를 만듦
- 기술팀은 현업 업무를 이해하지 못하므로 비즈니스 로직과 계산을 이해하기 어려움
- 개발자가 비즈니스 로직을 작성하면 오류가 생기기 쉬움
- 기술팀은 맞춤형 기술 프로젝트를 자주 방치해 유지보수와 개선 리소스가 사라짐
- SME와 협업하면 최소한 한 팀은 시스템 유지 리소스를 유지할 수 있음
- SME는 산출물을 신뢰할 수 있어야 하지만, 코드가 보이지 않으면 모든 엣지 케이스에서 동작하는지 확인하기 어려움
- 단위 테스트가 있더라도 코드가 보이지 않으면 테스트가 존재하고 자주 실행되는지 검증하기 힘듦
- SME는 기존 레거시 시스템을 개선·유지하고 시스템 간 상호작용에 대한 지식이 많음
- 새 시스템으로 모든 데이터가 정확히 이전되고 표현되는지 확인하려면 백엔드 접근이 필요함
- 코드가 VBA에 남아 있으면 SME와 비즈니스가 통제권을 유지함
- 기술팀은 비즈니스 팀에 통제권을 거의 넘기지 않으며, SME는 소프트웨어가 모듈식으로 제대로 개발되고 느슨하게 이어진 기술 덩어리가 되지 않도록 확인할 수 있음
익숙한 환경 안의 사용자 경험
- 대부분의 엔지니어는 일상 업무에서 스프레드시트를 사용함
- VBA는 스프레드시트 안에 내장되어 있어 익숙한 환경에서 낯선 도구를 제공할 수 있음
- 낯선 환경에서 낯선 도구를 제공하는 것보다, 익숙한 환경 안에 새로운 기능을 넣는 편이 사용자에게 더 강력할 수 있음
결론: VBA의 약점과 현실적 선택
- 조직이 스프레드시트와 VBA를 선택하는 이유는 여러 가지임
- 보안 우려 때문에 IT가 제공하는 대안이 빈약함
- 대안 도구가 소스 시스템에 제대로 연결되지 못하며, 보통 아직 진행 중인 상태임
- 일부 사용 사례를 반영하지 못한 IT 전략 문제가 있음
- 보안과 유지보수 우려 때문에 SME와 협업하려 하지 않음
- 사용자, 관리자, SME가 대체 시스템 교육을 충분히 받지 못함
- 사용자와 SME는 시스템의 비즈니스 로직에 대해 일정 수준의 통제권을 원함
- Office에 포함되어 모두가 사용할 수 있는 유일하게 실행 가능한 기술임
- VBA의 약점이 없는 것은 아님
- mataroa의 글에는 일부 맞는 부분이 있음
- 때로 관리는 형편없지만, 조직의 많은 사람은 주어진 도구 안에서 옳은 일을 하려고 노력함