SI는 System Integration의 약자이다.
그런데, SI업계에서 일하는 사람이나 이 말이나 뜻을 알지, 일반적인 사람은 거의 모르는 말일거라 생각한다.
나 자신이 프로그래머가 된 지 얼마 안 되었을 때 이 말을 몰랐고(당시엔 사회적으로 잘 쓰지 않았을 때였던 듯 하다), 알게 되고 나서도 SI가 왜 SI인지 아는데 까지 시간이 걸렸었던 것 같다.
말 그대로 해석하면, 시스템 통합을 하는 일인데, 대개의 정부기관이나 회사, 학교 등에서는 어떻게든 정보시스템이 있기 마련이고, ‘통합’이라는 단어가 조금 생뚱맞는데, 현재의 시스템에 새로운 필요한 프로그램을 만들어서 합쳐 준다는 의미가 된다.
개발자라는 의미 자체가 Developer라는 건축에서 쓰는 Development라는 단어를 빌려 온 것인데, 건축에서 건물을 원하는 대로 만들어 주듯이 원하는 정보 시스템을 만들어 주는 사람을 개발자라고 하고, SI는 개발자들이 단순하게 자신의 프로그램을 설치해 주고 끝나는 것이 아닌, 프로그램을 기존 시스템에 ‘통합’해 주는 작업을 의미하는 것이다.
따라서, SI에서는 프로그램을 만드는 순수한 의미로의 개발자의 롤은 10~20% 정도 밖에 되지 않는다.
아, 물론 어디까지나 한국을 기준으로 말이다.
기존의 시스템이 어떤 방향에서 진행되어 왔는지 파악하는 컨설턴트가 붙고,
사업을 진행하는 사장 역할일 PM(Project Manager)가 고객의 니즈를 파악하고 사업을 Plan, Do, See의 과정으로 계획하고, 들어갈 공수등을 파악하며,
PM의 계획대로 고객과 의사소통하며, 원하는 개발이 되도록 기획을 하는 기획자가 오랜 기간 기획을 한 후에,
디자이너가 UI와 UX에 맞게 화면을 만들고, 퍼블리셔는 그 디자인을 개발 화면으로 만들고 나면,
개발자는 그제서야 투입되어 시간에 쫒겨가며 프로그램을 2~3달 만드는 역할을 한다.
이 후에는 모든 사람들이 수 많은 문서들을 만들어 내고,
외부 감사가 투입되어 계획한 대로 프로그램이 정확히 만들어졌는지 확인하고,
고객들이 프로그램을 적절히 사용할 수 있게 교육하는 인원이 투입되며,
완료보고서와 함께 시스템 통합(SI) 과정이 완료된다.
그렇기 때문에, SI 1억짜리 프로젝트가 사회로 말하자면 1000 ~ 2000 정도로 적당히 만든 프로그램보다 못한 경우가 흔할 정도이다.
개발조차 이전 시스템에 맞춰서 만들어야 하기 때문에, 이미 사회에서는 사용하지 않는 10 ~ 15년전 기술들이 사용되는 경우가 대부분이고, 일반적인 프로그래밍을 하던 개발자에게는 도저히 이해하기 힘든 불합리함이 사람을 참을 수 없게 하는 점이 있다.
따라서 SI를 시작한 사람은 빠져나오기 힘들고, 다른일을 하다가 SI에 들어간 사람은 그 타성을 이해하기도 적응하기도 힘들다.
… 라고 생각하는데, 다른 사람들은 어떻게 생각하고 있을지 모르겠다.