프로젝트를 하기 전 작성해야 하는 WBS( Work Breakdown Structure )를 위해 Jira에 대해 공부하게 되었다.
Jira는 CI/CD는 아니지만 어떠한 프로젝트를 하기 위해 필요한 WBS 작성과 협업에 도움이 되기에 공부하는 것이 좋다.
서론으로 WBS와 CI/CD와의 차이를 간단하게 알아보자.
구분 | WBS | CI/CD |
목적 | 프로젝트 범위 정의, 작업 관리 |
소프트웨어 자동화, 빠른 출시
|
기능 | 워크 패키지 분해, 예상 시간/책임자/자원 정의, 시각적 표현 |
코드 통합, 자동 테스트, 자동 배포, 배포 후 모니터링
|
사용 시점 | 프로젝트 초기 | 프로젝트 후반 |
활용 분야 | 다양한 분야 | 소프트웨어 개발 |
도구 | 마인드맵, 스프레드시트, WBS 전용 도구 |
Jenkins, GitLab CI/CD, CircleCI 등
|
먼저 WBS (Work Breakdown Structure)란 무엇일까?
WBS는 업무 분해 구조 또는 작업 분류 체계라고도 불리며,
프로젝트를 작은 워크 패키지 단위로 분해하여 체계적으로 표현한 구조이다.
워크 패키지는 예상 소요 시간, 책임자, 필요한 자원 등이 명확하게 정의된 구체적인 작업 단위를 의미한다.
WBS는 프로젝트의 범위를 명확하게 정의하고 작업을 효율적으로 관리하는 데 사용된다.
또 프로젝트 진행 상황을 파악하고, 문제점을 발견하며, 의사소통을 원활하게 하는 데 도움을 준다.
WBS의 장점
- 프로젝트 범위 정의: 프로젝트에서 수행해야 할 모든 작업을 명확하게 정의한다.
- 계층적 구조 구축: 프로젝트를 여러 단계로 나누고, 각 단계를 다시 하위 단계로 분류하여 계층적 구조를 만든다.
- 워크 패키지 정의: 각 하위 단계별로 예상 소요 시간, 책임자, 필요한 자원 등을 정의하여 워크 패키지를 구성한다.
- WBS 도구 활용: WBS 작성 도구를 활용하여 WBS를 시각적으로 표현한다.

그렇다면 애자일이 뭘까?
애자일은 소프트웨어 개발 방식을 혁신한 핵심적인 방법론이다.
변화에 대한 빠른 적응과 고객 가치 중심의 개발을 강조한다.
애자일 탄생 배경
애자일 탄생 이전에는 워터폴 방식이라는 전통적인 소프트웨어 개발 방식이 주로 사용되었다.
워터폴 방식은 개발 프로세스를 계획, 설계, 개발,테스트, 배포 단계로 명확하게 구분하고, 각 단계를 순차적으로 진행하는 방식이다.
워터폴 방식은 몇 가지 문제를 가지고 있었는데
1. 변화에 대한 적응 어려움
- 프로젝트 초기 단계에서 모든 요구사항을 명확하게 정의해야 하며, 이후 단계에서는 변경이 거의 불가능
- 현실 세계는 프로젝트 진행 과정에서 여러 변화가 생길 수 있기에 프로젝트 지연, 비용 증가, 고객 불만족 등의 불편 생김.
2. 고객 가치 중심 개발 부족
- 워터폴 방식은 프로젝트 완료 후에야 최종 결과물을 확인할 수 있기 때문에, 개발 과정에서 고객과의 소통이 부족하고 고객의 실제적인 요구를 반영하기 어려움.
- 결과적으로 고객에게 가치를 제공하지 못하는 소프트웨어가 개발될 수 있음.
3. 비효율적인 개발 프로세스
- 워터폴 방식은 각 단계를 순차적으로 진행하기 때문에, 개발 초기 단계에서 발생한 문제가 후반 단계에서 발견될 경우 프로젝트 전체에 영향을 미쳐 다시 처음부터 작업해야 하는 경우가 발생.
- 개발 프로세스의 비효율성을 야기하고 시간과 자원 낭비를 초래.
이런 문제점을 가지고 있던 워터폴 방식에 비해 애자일은 많은 사랑을 받고 있는 방식이다.
애자일도 단점이 없는 건 아니지만 빠른 변화에 대응하고 프로젝트의 유연성과 투명성을 높이기 위해 채택된다.
고객 요구사항을 더 빠르게 충족시키고 팀 간의 협업을 강화하여 제품 또는 서비스의 품질과 시장 적응성을 향상시킨다.
2023년 VersionOne에서 실시한 조사에서 응답자의 87%가 애자일 방법론을 사용한다고 답했다.
또한, Gartner는 2025년까지 대부분의 글로벌 기업들이 소프트웨어 개발에 애자일 방법론을 채택할 것이라고 예측했다.
애자일의 특징
1. 가치 중심 개발
- 고객에게 가장 중요한 기능부터 우선적으로 개발하고, 개발 과정에서 지속적으로 고객 피드백을 반영하여 고객 가치를 극대화하는 데 초점을 맞춤.
2. 반복적 개발
- 프로젝트를 작은 단위의 반복으로 나누고, 각 반복 단계에서 기능 개발, 테스트, 피드백 진행.
- 개발 과정에서 발생하는 문제점을 빠르게 발견하고 해결할 수 있으며, 고객의 요구에 맞춰 기능 조정.
3. 협업
- 개발 팀, 고객, 기타 이해관계자들이 긴밀하게 협력하여 소통하고 정보 공유.
- 개발 과정에서 발생하는 문제점을 신속하게 해결하고, 고객의 요구를 정확하게 반영.
4. 자율성
- 개발 팀에게 일정한 자율성을 부여하여 창의적인 문제 해결을 장려하고, 팀원들의 참여도와 책임감 높임.
5. 지속적인 개선
- 개발 과정 및 결과물을 지속적으로 검토하고 개선.
- 개발 프로세스의 효율성을 높이고, 소프트웨어 품질 향상.
이런 이유들로 애자일 방식을 채택하는 사람들이 많아졌고, 더 완벽한 제품의 탄생이 이루어질 수 있었다.