통합 개발 업무관리를 위한, ALM(Application LifeCycle Management)

    오픈소스의 발전과 복잡해진 소프트웨어 개발 환경들이 맞물려진 현재 대다수 프로젝트들은 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의 도입효과


    저비용 구축

    - 오픈소스 활용으로 시스템 구축 가능


    업무관리 구현

    - 이력관리 기능을 통해 정보보안 감사, 정보보안 인증심사 대비 가능


    안정적인 유지보수

    - 전문화된 관리도구를 이용하여 시스템의 유지관리 가능


    복잡도 감소

    - 팀 단위의 개발 시 개발 프로세스에 대한 통합으로 개발 복잡도 감소


    협업 환경 구축

    - 팀 커뮤니케이션 도구와 방법을 단일화 하고 커뮤니케이션 및 협업을 원활하게 지원




    참고자료


    댓글

    Designed by JB FACTORY