본문 바로가기
플랫폼

[SW 개발방법] Low Code Development Platform 3#.

by DeungZan 2022. 5. 7.

1. LCDP가 Platform인 이유
- Multi Source, Multi Library, Multi Channel, Multi Framework 사용

2. LCDP가 산업 내에서 안착하기 위한 Key Success Factorss
1) Policy & Regulation
- 다수의 사람이 공동된 목표를 실현하는 그 과정을 함께하기 위해서는 최소한의 '규칙과 가이드'가 필요하다.
  특히, SW를 개발하는 과정은 흔히 '프로젝트'라는 특정한 목적을 중심으로 '일정과 비용'이 소요되면서 불/특정 다수의

  사람들이 각자의 R&R를 부여받고(Deployed) 의사소통을 하는 일련의 과정을 겪게 되므로 '규칙과 가이드'는 더더욱

  필요하며, 프로젝트에서는 'Project Chater'라는 것을 만들어 공동의 목표를 인식하고,  프로젝트 기간과 과정 내에

  필요한 각자의 '규칙과 가이드'를 설정하고 공표하게 되는데, 이런 과정과 같이 'Low Code Development Platform'

  이라는 새로운 개발 방법론과 그 시스템을 채택하여 제대로(LCDP의 채택 목적에 부합하는)된 LCDP를 수행하기

  위해서는 반드시 변화관리(Change Management)차원에서의 '규칙과 가이드 그리고 규범' 등이 필요함을 잊지 말아야

  한다.

#. 경험상 새로운 시스템이나 솔루션 그리고, 프로세스를 도입하는 많은 기업들이 이를 실패하는 가장 큰 이유는 바로 '정책, 규칙, 가이드'가 제대로 정의되지 않은 상태에서 경쟁사나 대외 트렌드 좇아 내부의 동의와 준비가 충분하지 않은 채 도입 자체를 목적으로 둔 경우인 것인데, 아무리 좋은 시스템이나 프로세스도 '정책, 규칙, 가이드'가 명확하지 않고, 이 기준에 따라 변화될 수 있도록 지속적인 관리가 이뤄지지 않는다면 기업은 커다른 기회 비용의 상실 경험을 할 수 밖에 없다.

- 따라서, LCDP를 기반으로 SW개발 프로젝트를 수행하기 위해서는 이에 필요한 프로젝트 수행 절차, 개발/디자인

  가이드, 참여 인력들의 규범(Regulation), 기존 개발 방법과는 다른 통제(Control)와 관리(Management) 방법이 정책/

  제도(Policy)로 제공되어야 하고, 이를 특정한 조직(예: Governance)에서 관리해야 함을 잊지 말자!

2) Business Based Process Management (BPM)
- LCDP의 특징은 개발이나 코딩 업무의 개선과 혁신이 아닌 이러한 수단으로 부터 얻고자 하는 사업적 목표(Goal)에 그    사용 목적(Objectives)가 있다는 점이다. 다시 말해서, 사업적 목표(Goal)란 경쟁사 또는 경쟁 제품 보다 '더 적은 리소스

  (Resources)를 투입하여 더 낮은 원가(Cost)에 SW를 개발하고, 더 빠르게 개발을 완료하여 시장에 출시(Time to

  Market)를 하고, 고객(User or Customer)과 주변 환경(Social Environment)의 반응에 따라 더 유연(Agile)하게 제품을

  성장시키는 목적에 있다. 때문에, 이런 목적을 수행하기 위해서 LCDP를 통해 만들어지는 Software는 그 Software

  자신이 사용될 '제조, 금융, 통신, 공공, 교육 등' 산업과 시장에 대하여 사업 측면(Business Based)의 생산/제조/서비스

  등의 일련의 과정(Process)를 최적화할 수 있는 기능이 수반되어야 하며, Software는 최적화된 Process를 기반으로

  설계되어 고객이 원하는 최상의 결과가 작동될 수 있도록 해야 한다.

- 통상, SW개발 프로젝트에서 가장 어려운 것은 '고객의 요구사항 수집/분석/정의/관리' 라고 하는데, 프로젝트

  초반에는 프로젝트의 목표가 불분명하고, 고객은 스스로 원하는 바를 명확하게 설명하기 어려울 뿐 아니라, 고객의

  상위자가 갖고 있는 정보와의 격차가 크고, 프로젝트 기간 동안 지속적으로 변하기 때문인데, 필자의 경험으로 보면,

  고객 요구사항의 변화와 추가 등은 결국, 웹 또는 모바일 플랫폼의 사용성에 대한 부분 보다는 사업적인 판단과 기준의

  변화가 그 이유이며, 이는 결국 그 고객사의 Business Based Process Management 역량이 높지 않기 때문인 경우가

  많다. 따라서, LCDP를 수행하는 개발사는 일반 여타의 개발사(SI)와는 달리 고객사의 사업적 측면의 컨설팅 역량이

  필요하고, 특히 Software가 사용될 업무에 있어 사업적 목표를 고려한 Process의 설계와 컨설팅 역량이 반드시 필요

  하다고 주장한다.

3) System
- LCDP를 정의할 때 가장 작은 단위(협의의 의미)는 개발 도구(Tools)로서의 의미로
   . 화면을 개발하는 'UI 설계/디자인'
   . Database를 구성하는 'DB'
   . 화면 UI와 DB를 연결하는 'Business Logic'
이 세 가지를 드는데, 최근에는 단순히 개발 도구로서의 LCDP가 아닌, 개발부터 운영, 유지보수에 이르기 까지 'Software Life Cycle Management' 를 커버하는 System으로서 사용읭 범위가 확대되고 있다.

- 따라서, LCDP는 최근 Cloud 환경에 올라 SaaS(Software as as Service) 형태로 서비스되고, 개발 시점 부터 즉시

  Code Inspection 결과와 Debugging 기능을 제공할 뿐 아니라, 관련 소스 코드 간의 Side Effect를 추적하여 시각화

  함으로서 '별도로 형상관리' 시스템과 '빌드업' 시스템이 필요없는 등, 개발 동시에 상품화(Production)가 이뤄져

  DevOps 보다 진보된 System 통합의 모습을 보여줄 뿐만 아니라, 보안(Security) 측면에서도 Cloud 사업자가 제공하는 

  수준 이상의 서비스를 제공하며, Deployment 시스템을 통해 '개발, 운영, 상품화, 리비전 등'에 필요한 Hardware적인

  리소스 사용도 최적화 한다.

4) Organization / Governance / Man
- Policy/Regulation, BPM, System도 결국은 사람에 의해 실질적인 가치를 부여 받는다.

- 모든 혁신적인 System과 Tool이 그러하듯 LCDP도 이를 사용할 조직과 그 구성원이 특정한 Policy/Regulation 안에서   

  이 System을 지속적이고, 목적한 수준에 맞게 사용할 수 있도록 Governing 해야하고, 이러한 역할은 최소한 복수 명의

  담당자와 팀 수준의 조직에서 관리되어야 하고, 이들은 개발 부서가 아닌 사업 부서 혹은 PMO, QAO등 전사의 관리

  조직에서 운영해야 지속적인 변화 관리가 가능하다.

- LCDP에서는 개발자를 크게 두가지로 분류할 수 있는데, 프로그램의 방향성과 설계를 담당하는 Architect(실제, 개발

  환경에서 우리가 흔히 볼 수 있는 Engineer, Developer and Programmer)와 Architect에게 관리/통제를 받고 대부분의

  개발 업무를 수행하는 Citizen Developer가 이들 두가지 분류이며 이 둘은 상호작용을 하면서 LCDP를 활용한다.

- 여기서 흥미로운 것 Citizen Developer인데, Architect는 우리가 흔히 알고 있는 Developer의 상위 버전으로 많은

  개발자가 경력이 쌓이면 Architect가 되던 Project Manager가 되는 등 Career Path를 가기 마련인다, Citizen Developer

  는 면밀하게 말해서 앞 서 언급한 개발자스러운 개발자는 아니다. Citizen Developer는 SQL 문을 단 한줄도 짤 수 없고,

  HTML이 뭔지도 몰라도 되며, 그저 System에서 제공한 Tool과 Architect가 제공하는 Guide에 맞춰 기계적으로 Tool을

  사용하는 일반인을 일컫는다.

- 여기서 LCDP가 장점이자 LCDP의 존재 이유가 설명되는데, LCDP의 등장과 스포트라이드 배경에는

  디지털 트랜스포메이션(DX)와 그에 따른 개발자 부족(Shortage) 현상에 있으며, 이에 대한 대안으로서 부족한 개발자

  를 Citizen Developer라고 명명하는 불특정한 대상을 LCDP라는 개발 시스템을 통해 활용하고, 이들의 생산성이 일반

  개발자 수준 이상으로 시스템이 그 역할을 대신한다는 의미에서 LCDP를 주목해야 하는 이유가 있는 것이다.

- 사실, Citizen Developer를 불특정한 다수라고 언급하긴 했지만 이들 Pool의 대다수는 LCDP를 통해 만들고자 하는

  사업적 목적의 결과물을 누구보다 가장 잘 이해하고 있고, 필요로 하고 있는 그 산업과 도메인의 전문가라고 볼 수

  있으며, 이들 스스로가 개발할 수 있는 Tool, 즉 LCDP를 제공하여 가장 사업적 목적에 부합한 제품을 만들어 낼 수

  있다는 컨셉의 완성이 Citizen Developer로 증명된다고 볼 수도 있다.

사실, Low Code Development Platform 뿐 아니라, 전략을 수반하는 대다수의 과제는 앞 선 4가지 Dimension의 실행 체계가 반드시 필요한데, LCDP는 사용하게 될 대상(일반 개발자)들의 저항감이 가장 큰 영역의 시스템이기 때문에, 이를 도입하거나 제공하려는 기업은 본 포스트에서 설명하고 있는 바를 잘 숙지하여 사업적 목적에 맞게 채택, 잘 활용하기를 바란다.

-

DeungZan Under the ICT