기업, 정부, 비영리 단체 또는 소규모 팀은 규모나 유형에 관계없이 조직 활동을 수행합니다.
조직 활동은 여러 업무 프로세스로 구성됩니다.
업무 프로세스는 태스크로 세분화될 수 있습니다. 조직 내 부서와 개인이 각자에게 할당된 역할을 수행할 때 업무 프로세스가 기능합니다.
이러한 방식으로 개별 업무 프로세스가 기능하면 전체적인 조직 활동이 기능하게 됩니다.
객체 지향 소프트웨어
소프트웨어 개발 분야에서는 객체 지향 소프트웨어라는 개념과 이를 기반으로 한 설계 방법론 및 프로그래밍 언어가 발전해왔습니다.
이전에는 소프트웨어가 데이터와 처리를 분리하여 설계되었고, 프로그램 내에서도 데이터 정의와 처리 정의가 독립적이었습니다.
이 때문에 밀접하게 관련된 데이터와 처리 정의를 프로그램 내에서 서로 가까운 곳에 배치할 수도 있었고, 완전히 다른 곳에 배치할 수도 있었습니다.
어디에 배치하든 컴퓨터가 프로그램을 처리하는 방식에는 아무런 차이가 없었습니다.
하지만 개발된 프로그램을 수정하거나 기능을 추가할 때에는 배치 방식의 좋고 나쁨이 작업 효율성과 버그 발생 가능성에 큰 영향을 미쳤습니다.
밀접하게 관련된 데이터와 처리 정의가 수만, 수십만 줄에 달하는 프로그램 코드 곳곳에 흩어져 있다면, 변경 작업을 수행하기가 매우 어려워졌습니다.
객체 지향 소프트웨어는 이러한 문제를 해결하기 위한 근본적인 접근 방식을 제공합니다.
즉, 밀접하게 관련된 데이터와 처리는 나중에 프로그램을 수정할 때에도 이해하기 쉽도록 프로그램 내에서 명확히 구획화하여 동일한 구획 안에 함께 두는 아이디어를 채택한 것입니다.
데이터와 처리를 담는 이 구획이 바로 객체라고 불리는 개념입니다.
소프트웨어 설계 단계부터 객체라는 단위를 중심으로 설계하는 것 또한 중요합니다.
게다가 우리는 일반적으로 다양한 사물을 객체로 인지하는 데 익숙합니다.
예를 들어, 알람 시계에 기상 예정 시각을 설정하면 그 시각에 알람이 울립니다. 우리는 알람 시계라는 객체가 기상 예정 시각이라는 데이터와 알람이 울리는 처리 기능을 가지고 있다고 인식하는 것입니다.
이러한 인간의 일반적인 인지 방식에 맞춰 소프트웨어를 설계하고 구현하는 것이 논리적입니다. 이것이 객체 지향 소프트웨어가 널리 보급된 이유입니다.
업무 프로세스 지향 소프트웨어
지금까지 조직 활동과 객체 지향 소프트웨어에 대해 개괄적으로 설명했습니다.
이제 소프트웨어 개발의 새로운 접근 방식으로 업무 프로세스 지향 소프트웨어를 제안하고자 합니다.
객체 지향 소프트웨어 논의에서 설명했듯이, 인간의 인지 방식에 맞춰 소프트웨어를 설계하는 것은 소프트웨어 수정이나 기능 추가 시 상당한 이점을 제공합니다.
조직 활동에서 소프트웨어를 활용할 때, 기본 단위인 업무 프로세스라는 개념적 구획 내에 관련 정보와 기능을 배치하면 수정 및 기능 추가가 용이해질 것입니다.
이것이 업무 프로세스 지향 소프트웨어의 기본 개념입니다.
매뉴얼 및 입력 정보
비교적 규모가 큰 기업에서는 일반적인 업무 프로세스가 매뉴얼화되어 있는 경우가 많습니다. 매뉴얼화될 만큼 명확하게 정의된 업무 프로세스를 워크플로우라고도 부릅니다.
일반적인 소프트웨어로 구현되는 업무 시스템은 이러한 워크플로우를 시스템화한 것입니다. 워크플로우에 따라 각 담당자나 담당 부서가 업무 시스템에 정보를 입력함으로써 업무 프로세스가 구현됩니다.
여기서 업무 매뉴얼, 업무 시스템, 입력 정보는 매우 밀접한 관계를 가집니다.
하지만 여기서 설명하는 메커니즘에서는 이 세 가지 밀접하게 관련된 요소들이 분산되어 있습니다.
업무 프로세스 지향 소프트웨어의 개념은 이러한 요소들이 하나의 덩어리가 되어야 한다는 입장을 취합니다.
하나의 파일 안에 업무 매뉴얼이 기재되어 있고, 각 담당자나 담당 부서가 입력 정보를 기입할 수 있는 칸도 있는 서류를 상상해 보십시오.
또한, 각 태스크의 다음 담당자 연락처도 구체적으로 기재되어 있다고 가정해 봅시다.
그러면 업무 매뉴얼이 포함된 이 입력 정보 기입용 파일 안에 업무 프로세스의 모든 요소가 포함되어 있음을 알 수 있습니다.
이 파일을 생성하여 첫 번째 태스크 담당자에게 전달하면, 기재된 매뉴얼에 따라 업무 프로세스가 진행될 것입니다. 최종적으로 필요한 모든 정보가 입력되면 하나의 업무 프로세스가 완료됩니다.
이 파일이 바로 업무 프로세스 지향 소프트웨어 개념을 적용한 업무 프로세스 지향 소프트웨어 그 자체입니다.
그리고 다양한 업무 프로세스 지향 소프트웨어가 기능함으로써 전체 조직 활동이 기능하게 될 것입니다.
소프트웨어 그 자체
앞서 저는 업무 매뉴얼이 포함된 입력 정보 기입용 파일을 업무 프로세스 지향 소프트웨어 그 자체라고 설명했습니다.
어떤 분들은 이것이 프로그램이나 시스템을 개발하는 이야기로 이어질 것이라고 상상했을지도 모릅니다.
하지만 그렇지 않습니다.
프로그램이나 시스템과 무관하게 이 파일 자체는 업무 프로세스 지향 소프트웨어로서 기능합니다.
앞서 설명했듯이, 이 파일을 생성하여 첫 번째 담당자에게 보내면, 이후 각 태스크 담당자에게 전달되어 파일에 기술된 업무 프로세스가 실행되기 때문입니다.
물론 이 파일을 기반으로 파일에 작성된 워크플로우를 구현하기 위한 프로그램이나 시스템을 개발할 수도 있습니다.
하지만 그러한 시스템을 사용하는 것과 단순히 파일 자체를 담당자들끼리 주고받는 것에 얼마나 큰 차이가 있을까요?
여기서 주목해야 할 점은, 프로그램이나 시스템을 개발하는 것은 매뉴얼과 처리를 분리시킨다는 것입니다.
이러한 분리는 업무 프로세스 지향의 접근 방식에 역행합니다. 즉, 업무 프로세스의 개선이나 기능 추가를 어렵게 만듭니다.
업무 매뉴얼을 수정하는 경우를 상상해보면 바로 알 수 있습니다.
업무 프로세스의 절차가 변경될 때마다 프로그램이나 시스템도 그에 맞춰 변경해야 합니다.
이 때문에 업무 매뉴얼은 처음부터 충분히 잘 다듬어져야 하며, 매뉴얼화에 시간이 오래 걸립니다. 또한, 매뉴얼이 변경되어도 프로그램이나 시스템에 즉시 반영되지 않습니다.
이러한 시간 소요 문제 외에도 수정 비용이 발생합니다.
이는 업무 프로세스와 매뉴얼을 쉽게 변경할 수 없다는 것을 의미합니다.
반면, 프로그램이나 시스템을 개발하지 않고 업무 매뉴얼이 포함된 입력 정보 기입용 파일을 담당자들끼리 주고받는 방식이라면, 프로그램이나 시스템 개발 기간과 유지보수 운영 비용도 필요 없게 됩니다.
실행 가능한 소프트웨어
그렇다면 왜 이 파일을 '소프트웨어'라고 부르는지 궁금해하는 사람도 있을 것입니다.
그 이유는 이 파일이 실행 가능한 파일이기 때문입니다. 단, 프로그램으로서 컴퓨터에서 실행되는 소프트웨어가 아니라, 인간에 의해 실행되는 소프트웨어이기 때문입니다.
업무 매뉴얼은 인간에게 프로그램과 같은 역할을 합니다. 그리고 입력 정보 기입란은 메모리나 데이터베이스의 데이터 저장 공간과 같습니다.
이렇게 생각하면 이 파일을 인간이 실행하는 소프트웨어로 간주하는 것이 틀리지 않습니다.
실행 주체
업무 프로세스 지향 소프트웨어에 기술된 태스크는 인간 또는 인공지능에 의해 실행될 수 있습니다.
하나의 태스크라 할지라도, 인공지능과 인간이 협력하여 실행하는 경우가 있을 수 있고, 인간만으로, 또는 인공지능만으로 실행되는 태스크도 있을 것입니다.
인공지능 또한 이 파일 안에 기술된 업무 매뉴얼을 읽고 적절한 처리를 수행할 수 있습니다.
즉, 이 파일은 인간과 인공지능 모두에게 실행 가능한 소프트웨어라고 할 수 있습니다.
AI 지원
먼저, 인공지능이 파일을 실행합니다. 이때 파일 안에 작성된 업무 매뉴얼을 읽고 처리해야 할 내용을 이해합니다.
처리 내용 중에는 인공지능이 직접 실행하거나 입력 정보 칸에 정보를 입력할 수 있는 부분도 있습니다.
반면에 인간의 처리나 입력 정보가 필요한 부분도 있습니다.
해당 부분에 대해서는 인공지능이 인간에게 이를 알리고 처리 또는 입력 정보를 요청합니다.
이때 인공지능은 인간의 처리 내용이나 입력 정보 내용에 따라 인간에게 제시하는 방식을 변경할 수 있습니다.
인간에게 정보를 제시하는 기본적인 방법으로는 텍스트 채팅이나 음성 채팅으로 필요한 작업을 전달하거나 입력해야 할 정보를 질문하는 방식이 고려될 수 있습니다.
또한, 파일을 직접 여는 방법도 있습니다. 파일이 텍스트라면 텍스트 에디터를 여는 방식입니다.
좀 더 고도화된 방법으로는 필요한 작업이나 입력 정보를 추출하여 그 내용에 따라 인간이 작업하기 쉬운 앱을 위한 임시 파일을 생성하고, 이를 실행하는 방법도 있습니다.
예를 들어, 표 형태로 입력이 필요하다면 스프레드시트용 파일을 생성하여 인간이 정보를 입력하게 하는 방식입니다. 임시 파일에 입력된 정보는 인공지능이 원본 파일의 입력란에 옮겨 적습니다.
더욱 고도화된 방법으로는 파일과 인간이 해야 할 작업 또는 입력 정보에 맞는 사용자 인터페이스를 가진 앱을 온디맨드로 프로그래밍하는 방식도 있습니다.
이러한 방식으로 인공지능이 자동으로 처리하거나 인간의 작업 및 입력을 지원하여 하나의 태스크가 완료되면, 인공지능은 업무 매뉴얼에 기재된 다음 태스크 담당자의 연락처로 파일을 전송합니다.
이렇게 인공지능이 인간을 지원함으로써, 인간은 사용자 친화적인 인터페이스를 통해 최소한의 필요한 작업만을 효율적으로 수행하면 되는 메커니즘을 실현할 수 있습니다.
AI 친화적 파일
기본적으로 업무 프로세스 지향 소프트웨어는 어떤 파일 형식으로든 상관없습니다.
하지만 인공지능의 지원을 고려한다면 AI 친화적 파일 형식, 즉 인공지능이 다루기 쉬운 기본 파일 형식이 적합합니다. 대표적인 예는 마크다운 형식의 텍스트 파일입니다.
또한, 기본적인 내용 기재 규칙을 정해두는 것이 좋습니다. 인공지능이 지원을 제공하기 때문에, 이러한 기본 기재 규칙도 유연하게 변경하거나 확장할 수 있습니다.
지식 축적 및 업무 프로세스 개선
업무 프로세스 지향 소프트웨어는 프로그램이나 시스템 개발 없이 매뉴얼과 입력 정보 칸을 결합한 파일 자체를 생성하거나 변경하는 것만으로 조직에 새로운 업무 프로세스를 추가하거나 기존 업무 프로세스를 수정할 수 있게 합니다.
또한, 업무 매뉴얼 내에 해당 업무 프로세스와 관련된 질문이나 개선 요청을 위한 소통 채널의 연락처를 기재하는 것이 중요합니다.
이는 인공지능과 인간이 불확실성에 시달리거나 조사를 하는 데 드는 시간과 노력을 크게 줄여줍니다. 게다가 질문과 답변, 그리고 개선 요청이 하나의 연락 창구로 집중되므로 업무 프로세스 나레지가 자연스럽게 축적되고, 업무 프로세스 개선이 빈번하게 이루어질 수 있습니다.
축적된 나레지를 체계화하고 정리하거나, 개선 요청에 따라 업무 프로세스 지향 소프트웨어를 변경하는 작업 또한 인공지능이 자동으로 수행하거나 인간을 지원할 수 있습니다.
필요하다면 새로운 업무 프로세스 지향 소프트웨어를 생성하여 조직에 새로운 업무 프로세스를 추가할 수도 있습니다.
고속 학습 조직
이러한 방식으로 업무 프로세스 지향 소프트웨어 개념과 인공지능을 통한 자동화 및 지원을 통해 조직 전체가 자연스럽게 나레지를 축적하고 지속적인 자기 강화를 수행할 수 있게 됩니다.
이를 고속 학습 조직이라고 설명할 수 있습니다.
이는 전통적인 조직보다 훨씬 더 효율적인 조직 활동을 가능하게 합니다.
동시에, 개별 태스크에 대한 AI 지원 덕분에 인간은 사용자 친화적인 인터페이스를 통해 최소한의 작업만 수행하면 됩니다.
따라서 인간은 방대한 양의 정보를 학습하거나 자주 변경되는 모든 업무 프로세스를 파악할 필요가 없습니다.
인간과 달리 인공지능은 모든 새로운 업무 매뉴얼을 순식간에 읽는 것을 전혀 힘들어하지 않습니다. 게다가 새로운 업무 프로세스에 익숙해지는 시간이 필요 없으며, 이전 업무 프로세스에 집착하지도 않습니다.
이러한 이유로 방대한 매뉴얼 학습이나 업무 프로세스 변경에 대한 적응과 같이 인간이 어려워하는 부분은 인공지능이 흡수합니다.
이로써 고속 학습 조직이 실현될 수 있습니다.