오픈소스의 발전과 복잡해진 소프트웨어 개발 환경들이 맞물려진 현재 대다수 프로젝트들은 ALM(Application LifeCycle Management) 솔루션을 적용하거나, ALM의 환경을 직접 구성하여 프로젝트를 진행하는 것이 대다수라 할 수 있다.
소규모 프로젝트야 Git 정도만 공유하고 개발을 할 수 있겠지만, 10명 이상 혹은 PM 등이 포함되어 다양한 의사소통을 해야 하는데 파티션이 분리되어 의사소통이 쉽지 않을 경우 이슈 및 진행 사항에 대한 관리가 쉽지 않을 수 있다. 이럴 경우 ALM을 적용하는 것을 고려해봐야 한다.
ALM은 개발의 전과정을 가시화하고, 관리 및 빌드 등이 수월하도록 만들어진 종합 개발 솔루션 정도로 인식해도 될 것이다. 특정 솔루션 하나를 지칭하는 것이 아니라 다양한 솔루션이 한곳으로 어우러져서 ALM 환경 혹은 ALM 솔루션이 되는 것이라 할 수 있다.
프로젝트를 나가면 흔히 하게 되는 Git과 같은 형상관리, Jenkins와 같은 빌드 관리, Redmine과 같은 일정 관리 등이 모두 ALM의 구성요소로 들어가게 된다.
소프트웨어 개발 프로세스 통합 관리, ALM의 개요
ALM의 개념
- 변화하는 비즈니스 프로세스를 신속/유연하게 관리하기 위한 통합 업무 관리 솔루션
- 비즈니스 요건 관리 부분과 실제 소프트웨어 개발 프로세스를 융합 하고, 이에 대한 관리를 자동화 툴을 이용하도록 하는 소프트웨어 관리 체계
ALM의 Key Feature
유기적인 통합
- 개발 전 과정 중에서도 코딩, 단위/통합테스트에 집중
이슈기반 통제
- 위험 조기제거 및 이슈 추적을 통한 작업관리 및 통제
개발방법론 통합
- 개발 주기 간의 유기적인 통합을 통한 생산성 및 품질 향상
프로세스 자동화
- 응용 프로그램 전체 SDLC에 걸처 관리, 자동화 프로세스
ALM의 구성도 및 구성요소
오픈소스 기반의 ALM의 구성도
개발자와 관리자간의 의사소통이 편리해지고 진행사항의 가시성 증가
ALM의 구성별 상세 설명
주요 구성 |
설 명 | 주요 솔루션 |
|
이슈 관리 |
일정관리 |
이슈 별 진행 상황 실시간 추적 주요 마일스톤 관리 | Redmine, JIRA |
위험도 관리 |
작업 별 우선순위 및 위험도 지정하여 리스크 관리 우선 순위 기준으로 작업 순서 및 작업 자 배정 관리 가능 |
||
작업관리 |
인력별 작업 부하 및 성과 측정 작업 진척 사항 모니터링 |
||
개발 환경 |
표준개발 / 빌드환경 |
개발 환경의 통합 Daily Build 가능한 통합 환경 제공, 테스트 자동화 연계 | SonarQube, PMD, jUnit |
테스트환경 |
테스트 도구와 환경을 제공, 개발자 손쉽게 테스트 케이스 생성 소스 코드 체크인시 자동 테스트 후 오류 발생 시 즉시 모니터링 |
||
코딩규칙 검사 |
시스템 적으로 코딩 규칙을 검사하여 코드 가독 품질 향상 코드 표준화의 강제화 통한 조직 내 의사소통 강화 |
||
테스트 커버리지 검사 |
테스트 커버리지 측정을 통한 테스트 범위 명확화 각 이슈 별로 커버리지를 다르게 적용 가능 |
||
소스 관리 시스템 |
소스공유 |
팀원간 소스 및 형상을 공유, 공동 작업 가능 | Git, SVN |
변경내역 추적 및 관리 |
소스코드 변경에 대한 이력을 관리 이전 버전으로 복구 기능 제공 |
||
브렌치별 버전관리 |
릴리즈 버전 별 소스/문서 등의 형상물을 관리 소규모 업데이트 지원 관리 |
||
빌드 자동화 시스템 |
통합빌드 |
매일 통합 빌드롤 통해서 코드 통합 오류 방지 | Jenkins, Hudson |
자동 테스트 |
빌드 시 Unit 테스트 및 통합 테스트 자동화로 변경 Defect조기 검출 |
||
코드오류 검사 |
코딩 Rule검사, 잠재적인 Defect보유 코드 제거 |
||
복잡도 분석 |
코드 복잡도 분석으로 테스트 위험도 높은 코드의 자동 검출 |
- 기존의 제품개발을 위한 PLM 프로세스를 SW개발에 맞게 기능을 재 구성 및 보강 하여 관리
ALM의 도입효과
저비용 구축
- 오픈소스 활용으로 시스템 구축 가능
업무관리 구현
- 이력관리 기능을 통해 정보보안 감사, 정보보안 인증심사 대비 가능
안정적인 유지보수
- 전문화된 관리도구를 이용하여 시스템의 유지관리 가능
복잡도 감소
- 팀 단위의 개발 시 개발 프로세스에 대한 통합으로 개발 복잡도 감소
협업 환경 구축
- 팀 커뮤니케이션 도구와 방법을 단일화 하고 커뮤니케이션 및 협업을 원활하게 지원
참고자료
https://en.wikipedia.org/wiki/Application_lifecycle_management
https://www.gsitm.com/content/almapplication-lifecycle-management
'정보처리기술사 > 경영, 컨설팅' 카테고리의 다른 글
기업간 어플리케이션 결합을 위한, B2Bi (0) | 2020.04.20 |
---|---|
End to End 성능관리 솔루션, APM(Application Performance Management) (0) | 2019.12.24 |
중소기업 경쟁력 강화, 전자정부프레임워크(eGovFramework) (0) | 2019.12.09 |
21세기의 기업 생존 전략, 가상기업(Virtual Enterprise) (0) | 2019.12.09 |
IT Governance 국제표준, ISO/IEC 38500 (0) | 2019.12.09 |