TIL25 | 애자일과 지라에 대해서 알아보자

이형준·2024년 3월 11일
0
post-thumbnail

1. 애자일이란 무엇일까요?

  • 짧은 반복 주기: 프로젝트를 짧은 단위(스프린트라고 함)로 나누고 각 단위마다 완성된 기능을 제공합니다.
  • 고객 참여: 고객은 개발 과정에 적극적으로 참여하여 피드백을 제공하고 요구사항을 변경합니다.
  • 협업: 개발 팀은 서로 협력하고 정보를 공유하여 효율적으로 작업합니다.
  • 변화에 대한 적응: 요구사항 변화에 유연하게 대응하여 프로젝트 목표를 달성합니다.

애자일의 장점

  • 빠른 출시: 짧은 반복 주기를 통해 빠르게 작동하는 소프트웨어를 제공하고 고객 피드백을 반영할 수 있습니다.
  • 높은 품질: 지속적인 테스트와 피드백을 통해 높은 품질의 소프트웨어를 개발할 수 있습니다.
  • 고객 만족도 향상: 고객은 개발 과정에 참여하여 자신이 원하는 소프트웨어를 얻을 수 있습니다.
  • 팀워크 강화: 팀원 간 협업과 의사소통이 증진되어 팀워크가 향상됩니다.

대표적인 애자일 방법론

  • 스크럼: 가장 많이 사용되는 애자일 방법론입니다. 스프린트, 데일리 스크럼, 스프린트 리뷰, 회고 등의 핵심 요소를 기반으로 합니다.
  • 칸반: 작업을 시각화하고 지속적인 흐름을 유지하는 데 중점을 둡니다.
  • 익스트림 프로그래밍(XP): 짧은 피드백 루프, 협업, 테스트, 지속적인 개선 등을 강조합니다.

2. 워터폴이란 무엇일까요?

워터폴은 소프트웨어 개발 프로젝트를 관리하는 전통적인 방법론입니다. 폭포수처럼 단계별로 순차적으로 진행되는 것이 특징입니다.

주요 단계

  1. 요구사항 정의: 고객의 요구사항을 명확하게 정의하고 문서화합니다.
  2. 설계: 요구사항을 기반으로 시스템의 설계를 작성합니다.
  3. 구현: 설계에 따라 시스템을 코딩합니다.
  4. 테스트: 개발된 시스템을 테스트하여 오류를 수정합니다.
  5. 배포: 테스트를 통과한 시스템을 고객에게 배포합니다.

워터폴의 장점

  • 명확한 계획: 각 단계의 목표와 결과물이 명확하게 정의되어 있습니다.
  • 관리 용이: 프로젝트 진행 상황을 쉽게 추적하고 관리할 수 있습니다.
  • 문서화: 각 단계의 결과물을 문서화하여 참고할 수 있습니다.

워터폴의 단점

  • 변화에 대한 적응 어려움: 요구사항 변경이 발생하면 이전 단계로 돌아가 수정해야 하기 때문에 유연성이 떨어집니다.
  • 초기 단계의 오류 영향: 초기 단계의 오류가 발견되면 후속 단계에도 영향을 미쳐 수정 비용이 증가합니다.
  • 고객 참여 제한: 고객이 후반 단계에서 시스템을 확인하게 되어 피드백을 반영하기 어렵습니다.

3. 애자일 팀의 원칙

애자일 선언문(Manifesto for Agile Software Development)에서 제시한 12가지 원칙은 애자일 팀의 핵심 가치와 운영 방식을 보여줍니다.

  1. 고객 만족: 초기부터 지속적으로 가치 있는 소프트웨어를 전달하여 고객을 만족시키는 것을 최우선 순위로 합니다.
  2. 요구사항 변경 수용: 변화는 기회이며, 후반 단계에서라도 요구사항 변경을 환영하여 고객의 경쟁력을 높입니다.
  3. 짧은 배포 간격: 짧은 시간 간격으로 작동하는 소프트웨어를 배포하여 지속적인 피드백을 얻고 개선합니다.
  4. 기획자/현업과 개발자는 함께 일하기: 기획자, 개발자, 테스터 등 다양한 역할의 사람들이 함께 일하며 협력을 강화합니다.
  5. 동기 부여된 팀원들: 팀원들에게 책임과 권한을 부여하여 동기 부여를 높이고 자율성을 장려합니다.
  6. 얼굴보고 대화: 직접적인 대화를 통해 효율적인 의사소통을 하고 오해를 방지합니다.
  7. 동작되는 소프트웨어: 가장 중요한 진척 척도는 동작하는 소프트웨어이며, 문서보다는 실제 코드를 중시합니다.
  8. 지속 가능한 개발 속도: 팀원들이 지속 가능한 속도로 일할 수 있도록 워크로드를 조절하고 균형을 유지합니다.
  9. 기술적 우수성 추구: 지속적인 개선을 통해 기술적 우수성을 추구하고 깔끔한 설계를 유지합니다.
  10. 단순성: 불필요한 복잡성을 제거하고 단순하고 명확한 설계를 만듭니다.
  11. 자기 조직화: 팀원들이 스스로 조직화하고 책임감을 가지고 문제를 해결합니다.
  12. 정기적인 반성: 팀은 정기적으로 회고하여 효율성을 높이고 개선 방안을 찾습니다.

애자일 팀의 특징

  • 협업: 팀원들이 서로 협력하고 정보를 공유하여 목표를 달성합니다.
  • 적응력: 변화에 유연하게 대응하고 새로운 상황에 맞춰 계획을 조정합니다.
  • 책임감: 팀원들이 각자의 역할과 책임을 명확하게 인지하고 수행합니다.
  • 지속적인 개선: 끊임없이 개선을 위해 노력하고 새로운 방법을 시도합니다.

애자일 팀의 장점

  • 빠른 출시: 작동하는 소프트웨어를 빠르게 배포하여 시장 변화에 빠르게 대응할 수 있습니다.
  • 높은 품질: 지속적인 피드백과 테스트를 통해 높은 품질의 소프트웨어를 개발할 수 있습니다.
  • 고객 만족도 향상: 고객이 개발 과정에 참여하여 원하는 소프트웨어를 얻을 수 있습니다.
  • 팀워크 강화: 팀원 간 협업과 의사소통이 증진되어 팀워크가 향상됩니다.

4. Jira란 무엇일까요?

Jira는 오스트레일리아 소프트웨어 회사 Atlassian에서 개발한 이슈 추적 시스템(Issue Tracking System)입니다. 버그 추적, 프로젝트 관리, 작업 관리 등 다양한 용도로 사용할 수 있는 강력한 도구입니다.

주요 기능:

  • 이슈 추적: 버그, 기능 요청, 작업 등 다양한 이슈를 생성하고 관리할 수 있습니다.
  • 프로젝트 관리: 프로젝트 계획, 진행 상황 추적, 팀 협업 등을 지원합니다.
  • 작업 관리: 작업 할당, 우선 순위 설정, 기한 설정 등을 통해 작업을 효율적으로 관리할 수 있습니다.
  • 커스터마이징: 다양한 기능을 추가하고 사용자 지정하여 원하는 방식으로 Jira를 사용할 수 있습니다.
  • 통합: Slack, GitHub, Bitbucket 등 다양한 다른 도구와 통합하여 작업 흐름을 개선할 수 있습니다.

Jira 사용 분야:

  • 소프트웨어 개발: 버그 추적, 프로젝트 관리, 릴리스 관리 등
  • IT 운영: 헬프 데스크, 시스템 문제 추적, 변경 관리 등
  • 비즈니스: 프로젝트 관리, 작업 관리, 고객 지원 등

Jira의 장점:

  • 강력하고 유연한 기능: 다양한 용도로 사용할 수 있는 강력하고 유연한 기능을 제공합니다.
  • 사용자 친화적 인터페이스: 사용하기 쉽고 직관적인 인터페이스를 제공합니다.
  • 다양한 기능 추가: 다양한 기능을 추가하여 사용자 지정할 수 있습니다.
  • 활발한 커뮤니티: Jira 사용자 커뮤니티가 활발하여 정보와 도움을 얻을 수 있습니다.

Jira의 단점:

  • 유료 서비스: Jira는 무료 버전도 있지만, 대부분의 기능은 유료 버전에서만 사용할 수 있습니다.
  • 설정 및 학습 곡선: 처음 사용하는 경우 설정 및 사용법을 배우는 데 시간이 걸릴 수 있습니다.
  • 복잡성: 기능이 다양하여 처음 사용하는 사용자에게는 다소 복잡하게 느껴질 수 있습니다.

5. Jira 용어 정리

1. 이슈(Issue)

  • Jira에서 관리하는 모든 항목을 이슈라고 합니다. 버그, 기능 요청, 작업 등 다양한 유형의 이슈를 생성하고 관리할 수 있습니다.
  • 각 이슈에는 유형, 우선 순위, 상태, 설명, 담당자, 기한 등의 정보가 포함됩니다.

2. 타임라인(Timeline)

  • 프로젝트 또는 이슈의 진행 상황을 시각적으로 보여주는 기능입니다.
  • 각 이슈의 시작 날짜, 종료 날짜, 진행 상황 등을 확인할 수 있습니다.
  • 마일스톤이나 중요한 날짜를 표시할 수도 있습니다.

3. 이니셔티브(Initiative)

  • 여러 프로젝트 또는 이슈를 하나의 큰 목표로 묶어 관리하는 기능입니다.
  • 회사의 전략적 목표를 달성하기 위해 여러 팀이 협력하는 경우 유용합니다.
  • 이니셔티브는 여러 프로젝트, 이슈, 태스크로 구성됩니다.

4. 스토리(Story)

  • 사용자 관점에서 작성된 기능 요구사항입니다.
  • 스토리는 "As a (사용자 유형), I want to (목표), so that (이유)"라는 형식으로 작성됩니다.
  • 스토리는 기능의 핵심 가치를 명확하게 전달하고, 개발 팀이 사용자 중심으로 개발하도록 도와줍니다.

5. 태스크(Task)

  • 스토리를 완료하기 위해 필요한 작업을 의미합니다.
  • 개발, 테스트, 디자인 등 다양한 유형의 태스크를 생성할 수 있습니다.
  • 태스크는 담당자, 기한, 우선 순위 등을 설정하여 관리할 수 있습니다.

6. 에픽(Epic)

  • 매우 크고 복잡한 기능을 여러 개의 스토리로 나누어 관리할 때 사용하는 용어입니다.
  • 에픽은 스토리의 집합체라고 생각하면 됩니다.
  • 에픽은 장기적인 목표를 설정하고, 진행 상황을 추적하는 데 유용합니다.

7. 버그(Bug)

  • 소프트웨어의 오류 또는 결함을 의미합니다.
  • 버그는 버그 추적 시스템을 사용하여 보고하고 관리합니다.
  • 버그 보고서에는 버그의 설명, 재현 단계, 영향을 받는 버전 등의 정보가 포함됩니다.

8. 스프린트(Sprint)

  • 스크럼 방법론에서 사용하는 단위 기간입니다.
  • 일반적으로 스프린트는 2주 또는 4주 길이입니다.
  • 스프린트 기간 동안 팀은 특정 기능을 완료하기 위해 노력합니다.

9. 백로그(Backlog)

  • 아직 진행되지 않은 이슈들의 목록입니다.
  • 백로그는 우선 순위에 따라 정렬됩니다.
  • 팀은 백로그를 사용하여 작업을 계획하고 관리합니다.

10. 버전(Version)

  • 소프트웨어의 특정 버전을 의미합니다.
  • 버전은 버그 수정, 기능 추가 등의 변경 사항을 포함합니다.
  • Jira에서 버전을 사용하여 이슈를 특정 버전에 연결할 수 있습니다.

11. 컴포넌트(Component)

  • 소프트웨어의 구성 요소를 의미합니다.
  • 컴포넌트는 기능, 모듈, 라이브러리 등 다양한 유형을 가질 수 있습니다.
  • Jira에서 컴포넌트를 사용하여 이슈를 특정 컴포넌트에 연결할 수 있습니다.

12. 레이블(Label)

  • 이슈를 분류하고 검색하기 위한 태그입니다.
  • 레이블은 사용자 지정이 가능합니다.
  • 레이블을 사용하여 특정 유형의 이슈를 쉽게 찾을 수 있습니다.

13. 필드(Field)

  • 이슈에 대한 정보를 저장하는 항목입니다.
  • 기본 필드(유형, 우선 순위, 상태 등)와 사용자 지정 필드가 있습니다.
  • 필드를 사용하여 이슈를 더욱 자세하게 정의하고 관리할 수 있습니다.
profile
프론트엔드 개발자 이형준입니다.

0개의 댓글