Disclaimer:
AI가 싫거나 그닥 마음에 안 들더라도... AI가 쉽거나 어려운 알고리즘 코딩을 '필요 이상으로' 잘하는 건 이제 인정. 다만, 대부분의 회사들은 정보올림피아드 금메달에 빛나는 top level 수준의 알고리즘 머신을 채용할 필요가 없다는 것이 약간 함정이긴 하지만, 코딩(알고리즘) 자체를 잘하는 AI도 있기는 해야 하고, 현실적으로 도움이 되는 것도 분명하다.
AI는 사람 개발자, 나아가 개발 조직, 더 나아가 소프트웨어 개발 전 사이클을 대치할 수 있을까?
우선, AI는 기본적으로 사람이 만든 버그가 있는 코드, 그리고 점점 AI가 만든 버그가 있는 코드로 학습을 했으므로 당연히 그리고 영원히 의미있는 숫자의 버그를 포함하고 있다. 그래서 가장 중요한 첫 번째 이슈는, 그걸 AI가 버그를 발견하기 위해 알아서 (모든) 시나리오를 테스트하고 문제없게 수정할 수 있어야 한다는 것이 당면한 문제이다. 잘 안될 것 같다.
- 더 큰 문제는 -
현실 소프트웨어는 소프트웨어 자체가 아닌 소프트웨어를 둘러싼 모든 환경에 존재하는 인간의 욕망에서 기인한 복잡한 문제를 해결한다는 것이다. 즉 코딩 자체가 아닌 코딩 전후좌우에 있는 거대한 문제를 우리가 소프트웨어라 부른다는 거다.
소프트웨어를 개발한다는 것에 포함된 일이란 다음과 같은 것들이다. (순서는 큰 의미가 없다..)
- 요구 사항의 수집과 정리
- 자원의 제약에 따른 해결 우선순위 설정
- 미래를 고려한 Platform/Architecture 선택과 설계
- 진짜 코딩 - 단위/모듈 테스트 - 디버깅 - 코드 리뷰
- End2End (UX) 테스트
- OPs라고 퉁칠 수 있는 운영 이슈들
- 적절한 로깅과 모니터링
- 데이터/트래픽의 규모와 변화에 대응
- 고객 요구 사항의 변화에 대음
- 시스템 다양성, 플랫폼 진화에 대한 대응
- 새로운 보안 이슈 대응
- Oncall 및 각종 알람에 따른 버그/장애 대응
- 회기 (regression) 테스트
- ... (여기에 적고 싶은 것들이 개발자라면 100만 가지는 될 듯) - 미션 크리티컬한 소프트웨어의 경우 오만가지 edge case에 대한 formal 한 검증
- 소프트웨어를 회사의 Biz 목표, vision에 align 된 채 진화시키는 일
위 내용 가운데 현재 스코아 AI는 '진짜 코딩' 부분에서 꽤 좋은 결과를 내고 있고, 다른 일부 영역에서는 사람의 친절한 리드 하에 의미 있는 도움을 주고 있는 상태이다.
문제의 핵심은 이런 과정이
- 이전 버전과의 호환성을 필요한 만큼 유지하면서,
- 고객 집단이 자연스럽게 느끼도록,
- '어쩌면' 같이 일하는 진짜 사람 개발자가 놀라지 않게
- 다른 AI와 협업 관계를 유지하면서
이루어져야 한다는 것이다. 고객 집단이란 회사 밖의 진짜 사용자 (end user), 사내의 Biz 관리자, 우리 개발 팀, 우리 팀의 결과에 영향을 받는 downstream 팀, 우리 팀에 솔루션을 공급하는 upstream 팀이나 다른 vendor 들을 의미한다.
이 전체를 한 마디로 이야기 하면, '우아한 소프트웨어 형상 관리'라고 표현할 수 있겠다.
그래서 AI는 개발자, 개발팀, 넓은 의미의 소프트웨어 개발 조직을 대치할 수 없다. ('없다' 대신 '어렵다'를 쓰려다 참기는 했다. 진짜 AI가 다 할 수 있게 될까 봐 무섭.. 거기에 요구사항 만드는 것까지 AI가 하면 그것이 바로 스카이넷..)
*
ps. AI에 대한 사해동포적 마인드가 약간 발동..
- 우선 위 모든 문제를 복합적으로 처리하는 능력을 따지는 benchmark는 실적을 위한 논문 쓰는 인간들에겐 꽤 중요한 일이겠으나, 현실적으론 큰 의미가 없는 것 같고...
위 소프트웨어 개발에 필요한 모든 일들을 잘게 쪼개서,
- 위 모든 개발 단계를 잘게 쪼개서 그 각각을 해결하는 똘똘한 독립된 Agent를 만들고.
- 그 Agent들이 수미 쌍관의 결과를 만들 수 있도록 하는 Agent 간의 협업 framework을 만들고
- 주어진 요구 사항에 맞게 그 프레임워크 내의 각 Agent에 명령 (prompt)를 보내는 관리 Agent를 만들고
- 협업 프레임워크 위에서 Biz-Align을 하는 또 따른 사장님 Agent를 만들어 관리 Agent에게 ...
하면 될 것 같기도.
'소프트웨어 이야기' 카테고리의 다른 글
AI가 생성한 코드의 품질 (0) | 2025.02.26 |
---|---|
소프트웨어 엔지니어 가이드 북 [광고] (8) | 2024.10.24 |
'요새 개발자 채용시장'에 관한 동영상의 댓글들 (41) | 2024.08.10 |
소프트웨어 개발자 부트캠프 운영자 워크숍 (0) | 2024.08.05 |
GitHub Copilot 소송.. (0) | 2024.07.10 |