산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 자동화 제어 시스템

소프트웨어 개발 자동화로 혁신 가속화: 경쟁 우위 확보하기

소프트웨어 개발 자동화로 혁신 가속화: 경쟁 우위 확보하기

전통적인 소프트웨어 개발은 느립니다. 근본적인 재고가 필요합니다.

약 3년 전 마이크로소프트의 사티아 나델라(Satya Nadella)는 "모든 비즈니스가 소프트웨어 비즈니스가 될 것"이라고 유명하게 선언했습니다. 오늘날 5,000억 달러 규모의 글로벌 소프트웨어 시장은 2030년까지 1조 달러로 두 배 성장할 전망입니다.

J.P. 모건은 가장 최근 공시에서 40,000명의 소프트웨어 엔지니어를 보유하고 있다고 밝혔습니다(알파벳보다 많음). 모든 주요 엔터프라이즈 기업이 경쟁사보다 더 빠르게 개발하기 위해 엔지니어 채용 경쟁을 벌이고 있습니다. 큰 문제는 전통적인 소프트웨어 개발이 느리고, 파편화되어 있으며, 낭비적이라는 점입니다.

예를 들어 평균 소프트웨어 엔지니어는 매주 테스트 완료를 기다리는 데 4시간, 빌드를 기다리는 데 3.5시간, 환경 관리에 3시간을 씁니다. 업무 주간의 4분의 1 이상을 실제 가치를 창출하지 못하는 데 쓰는 셈입니다. 엔지니어가 조직에서 가장 높은 연봉을 받는 경우가 많다는 점을 고려하면 이는 명백한 큰 문제입니다. 하지만 변화가 일어나고 있습니다.

선도적인 개발 플랫폼인 서클CI(CircleCI)는 AI와 자동화가 소프트웨어 혁신을 가속화하고 엔지니어를 중요한 업무에 집중하게 하는 열쇠라고 판단했습니다. 지난해 이 회사는 여러 자동화 및 머신러닝 개선 사항을 도입해 엔지니어들의 대기 시간을 50% 단축했습니다. 페이스북, 스포티파이, 고프로, 인스타카트 등 30만 명 이상의 개발자가 서클CI를 선택해 더 빠르게 움직이고 있는 이유 중 하나입니다.

회사를 이끄는 짐 로즈(Jim Rose)는 6번의 창업 경력이 있으며 구글 벤처스, 파운데이션 캐피탈, 마크 안드레센의 투자를 받은 바 있습니다. 4년 전 서클CI에 합류한 이후 매출을 450% 이상 성장시키고 회사를 진정한 흥미로운 기업으로 키웠습니다.

소프트웨어 개발 자동화와 혁신 가속화에 대해 더 알고 싶어 Information Age가 로즈와 이야기를 나눴습니다.

현재 소프트웨어 시장의 상태는?

현재 많은 기업과 개인이 여전히 다양한 프로세스를 수동으로 수행하고 있습니다. 디지털 트랜스포메이션 프로세스를 생각하면, 소프트웨어 개발 팀을 육성하는 것이 핵심입니다.

하나는 온프레미스 데이터 센터에서 소프트웨어를 꺼내 클라우드 네이티브 환경으로 옮겨, 컴퓨팅 자원에 즉시 접근할 수 있게 하는 것입니다.

둘째, 전통적으로 많은 경우 소프트웨어는 핵심 비즈니스의 지침이나 부속물로 여겨졌습니다. 이제는 은행부터 자동차 제조사, 소매업체까지 모든 종류의 비즈니스가 소프트웨어가 자신들의 핵심임을 깨닫고 있습니다. 그래서 자신들이 무엇을 소유하고 있는지 파악하고, 자산을 통합해 표준화해야 합니다.

기업이 컴퓨팅 자원에 즉시 접근하고 개발자가 일할 수 있는 구조를 갖추면, 그 사이에 있는 것은 보통 여러 플랫폼과 프로세스의 잡탕(mishmash)입니다.

대부분의 경우 매우 긴 워터폴 소프트웨어 릴리스 프로세스가 있고, 많은 수동 단계와 수동 스크립트가 있습니다. 더 진보된 조직의 경우 1세대 자동화 솔루션을 갖추고 있을 수 있지만, 팀이 빨라지면서 그것들이 깨지기 시작합니다.

바로 이 지점에서 우리가 기업들의 내비게이션을 돕고 있습니다. 소프트웨어 팀이 빨라지면서 더 많은 소프트웨어를 구축하고, 더 빠르게 하려 합니다. 시장 기회에 대응하는 동시에 잠재적 부정적 변화에도 대응하기 위해서입니다. 기업은 그 모든 조각이 어떻게 조합되는지 완전히 다시 생각해야 합니다.

언급한 '속도'가 소프트웨어 개발의 주요 걸림돌인가?

기업과 개발 팀은 시장이 빨라지니 따라가려 합니다. 어떻게 하면 빨리 일해 기회를 잡을 수 있을지 고민합니다.

거기에 도달하는 유일한 방법은 인간 개입이 반드시 필요하지 않은 모든 단계를 자동화하는 것입니다. 분, 시간, 일 단위가 걸리던 일을 초 단위로 처리할 수 있기 때문입니다.

팀이 빨라지고 소프트웨어가 고객과의 주요 접점이 되면서 품질 수준이 높아야 하고, 크래시나 보안 취약점이 없어야 합니다.

애자일(Agile)을 생각하면 품질 관점과 속도 관점 양쪽에서 더 민첩해지려는 시도입니다.

미국에서는 속도가 전부지만, 더 빠르게 가고, 더 작은 단위로 통합하고, 더 일관된 주기로 소프트웨어를 릴리스하면 소프트웨어가 본질적으로 더 좋아집니다. 배포에 대한 모든 두려움은 주 5회, 8회, 15회, 경우에 따라 하루 100회 배포하면 사라집니다.

배포가 비문제(non-issue)가 됩니다.

품질 측면에서 과거 소프트웨어 개발의 큰 문제 중 하나는 분기별로 한 번만 릴리스하면, 애플리케이션에 도입한 모든 변경사항이 실제로 함께 작동하는지 확인하기 매우 어렵다는 점이었습니다. 종종 기업들이 빅뱅 릴리스를 한 뒤, 이후 60~90일을 회귀하고 깨진 것들을 고치는 데 씁니다. 이 방식에서는 소프트웨어 주기가 느려질 뿐만 아니라 애플리케이션 자체의 품질도 저하됩니다.

애자일 관점에서 사람들이 해결하려는 것이 바로 이것입니다.

조직이 소프트웨어 개발 팀을 수용, 지원, 육성하려면 어떻게 변해야 하나?

몇 가지 방법이 있습니다.

하나는 개발자를 채용하기 어렵기 때문에, 개발 관점에서 소요되는 모든 시간이 여러분의 고유한 소프트웨어(은행이면 훌륭한 뱅킹 앱, 이커머스 앱이면 훌륭한 이커머스 앱)를 구축하는 데 전념하도록 해야 한다는 것입니다. 사람들이 과소투자한 큰 영역 중 하나는 소프트웨어 개발자가 역사적으로 '것'을 만들었다는 점입니다. 그게 그들의 일이고, 소프트웨어를 만듭니다. 그래서 개발 주기는 서드파티 앱 관점에서 과소투자되어 왔습니다.

테스트 자동화와 지속적 배포 인프라 같은 것들은 팀이 직접 구축할 필요가 없습니다. 해당 분야를 전문으로 하는 누군가로부터 인수하는 것이 훨씬 나아서, 자신이 잘하는 것에 집중할 수 있습니다. 커피 메이커를 만들라고 하면서 구리 파이프, 납땜, 밸브를 주는 격입니다. 절대 그렇게 하지 않죠. 하지만 역사적으로 개발은 그렇게 다뤄져 왔습니다. 따라서 데이터 센터부터 계획 도구까지 스택 전체에 걸쳐 올바른 도구와 플랫폼을 갖춰야 합니다.

둘째, 전통적인 워터폴 모델에서 소프트웨어 개발은 보통 '포수(catcher)' 역할을 합니다. 애플리케이션이 프로세스 초기에 정의되고, 개발 팀이 받을 때쯤이면 여러 결정이 내려져 있는데, 그것이 실제로 작동할지, 실행 가능하거나 쉽게 할 수 있을지 불확실할 수 있습니다.

'시프트 레프트(shift left)'라는 개념이 있는데, 개발을 기획 주기 상류로 최대한 밀어올려 개발 팀의 우려나 필요가 애플리케이션 구성과 전달 양쪽에서 고려되게 하는 것입니다. 운영 관점에서 보면 애플리케이션이 어떻게 운영될지 생애주기 초기에 고민해야 한다는 뜻이기도 합니다. 예를 들어 클라우드 네이티브 앱을 만들려면 매우 특정한 방식으로 아키텍처를 설계해야 하므로, 그 결정을 내리고 프로세스에 훨씬 일찍 참여해야 합니다.

팀이 더 소프트웨어 우선, 애자일 프로세스를 채택하면 우려의 삼각 구도가 생깁니다. 무언가를 만드는 '이유'를 소유한 비즈니스 오너와 제품 관리자, '어떻게' 만들지 논하는 기술 아키텍트와 소프트웨어 개발자, 전체 프로세스 끝에서 실제로 '무엇'을 운영할지 정하는 운영자. 모두가 관여해야 합니다. 일부 기업에게는 어려운 전환일 수 있습니다.

AI와 자동화가 소프트웨어 혁신을 어떻게 촉진하고 개선하나?

자동화를 통해 미리 정해진 작업뿐 아니라 자기 학습 작업도 자동화할 수 있습니다. 예를 들어 소프트웨어를 릴리스할 때마다 서드파티 결제 시스템에 대한 서드파티 테스트를 해야 한다면, 과거에는 QA 팀을 고용해 트랜잭션을 처리하고 수동으로 진행했습니다. 엄청나게 느리고, 오류와 복잡성으로 가득 찼습니다.

이는 테스트 스위트에서 완전히 자동화해야 할 완벽한 작업들입니다. 반복적으로 할 것들을 자동화해 결정론적이고 예측 가능하게 만들고, 궁극적으로 빠르게 만듭니다.

개발자가 그런 일을 반복하는 데 매 분을 쓰는 것은 시간 낭비이자, 솔직히 돈 낭비입니다.

AI와 구축되는 소프트웨어를 볼 때, 예측적 결정론적 소프트웨어를 푸시하는 대신 모델을 푸시합니다. 모델은 무언가가 어떻게 작동할지에 대한 선입견의 샌드박스이고, 사람들이 이를 거치고 테스트가 실행되면서 작동하거나 작동하지 않는 것에 대해 더 배우며 모델이 변화하고 진화합니다. 이는 테스트 시스템에 엄청난 압력을 가합니다.

AI의 실수 사례를 생각해 보세요. 무의식적 편향이 AI에 내장되어 특정 애플리케이션에서 사람들을 차단하거나 시스템을 중단시키는 상황들, 이는 테스트 관점에서 모두 도전 과제입니다.

점점 더 복잡해지고 있지만, 훨씬 더 빠르고 반응성이 좋아지고 있습니다. 따라서 소프트웨어 개발에 AI와 머신러닝이 포함되는 것은 계속 증가할 것입니다. 하지만 이제 그런 모든 변화를 테스트하기 위한 필수 프레임워크를 갖춰야 합니다.

자동화 제어 시스템

  1. 자동차 서비스 어드바이저(서비스 라이터): 역할, 업무, 커리어 경로
  2. 저비용 자율 검사 로봇: 설계, 개발, 현장 검증
  3. 사빅(SABIC), 노팅엄 스피어크(Nottingham Spirk)와 협력해 열가소성 혁신 가속화
  4. 스마트 빌딩 자동화: 도시 부동산 개발의 미래를 이끌다
  5. Seegrid, 자율 모바일 로봇 혁신 가속화 위한 'Blue Labs' R&D 허브 출범
  6. AMRC, 순환 제조 및 첨단 재활용 기술 혁신 주도
  7. ABB 로보틱스, 상하이 정부로부터 R&D 혁신상 수상
  8. 브라이트 머신스, AI 기반 마이크로팩토리 하드웨어·소프트웨어 출시로 생산 혁신
  9. 효율 극대화: 재고 관리 소프트웨어 핵심 기능과 이점
  10. 유지보수 이사의 역할: 책임과 영향력