본문 바로가기
💯정보처리기사

[정보처리기사]에자일(Agile)

by 김말자 2023. 1. 9.
728x90
728x90
BIG

Agile(애자일)

  • 어원 agile = 기민한, 날렵한 이라는 뜻에서 시작...
  • 개발과 함께 피드백을 동시에...
  • 미래를 예측해서 계속 검토하면서 요구사항을 더해서 살을 붙임

진행과정

계획 user가 원하는 바를 파악해서 타당성조사하고, task를 이용해서 명세서 작성
설계 기획의도에 맞게 설계 및 디자인
개발 설계서를 바탕으로 프로그램을 만듬
테스트 테스트를 해서 오류 발견, 수정하는 단계
검토 기획의도를 파악해서 수정할 부분을 제시해야함

특징

  • 고객, 개발자 간의 소통이 원활하여 요구사항을 신속하게 수용
  • 팀목적을 우선시하고, 고객의 의견을 가장 우선시
  • 주기적인 회의 및 제품시현을 해서 방지
  • 프로그램을 시행해보고 고객으로부터 피드백 받음

애자일 12원칙

  1. 가치 있는 소프트웨어를 조기에 지속적으로 제공함으로써 고객을 만족시키는 것을 최고 우선순위로 둔다
  2. 개발 작업 후반부일지라도 요구사항 변경을 기꺼이 수용한다. 애자일 프로세스는 변화를 활용해 고객의 굥쟝룍애 ㄷㅎ윰아 되게 한다.
  3. 2주에서 2개월 주기로 작동하는 소프트웨어를 자주 제공하되, 더 짧은 시간 단위를 선호한다.
  4. 프로젝트 전반에 걸쳐 비즈니스 담당자들과 개발자들이 매일 함께 잡업해야 한다.
  5. 동기가 부여된 개인들을 중심으로 프로젝트를 구성한다. 구성원들이 필요로 하는 환경과 지원을 제공하고, 임무를 완수할 것임을 신뢰한다.
  6. 개발팀에 그리고 팀 내부에서 가장 효과적, 효율적으로 정보를 전달하는 방법은 대면대화이다.
  7. 작동하는 소프트웨어가 진처의 주된척도이다.
  8. 애자일 프로세스는 지속 가능한 개발을 장려한다. 스폰서와 개발자, 사용자들이 일정한 속도를 계속유지할 수 있어야 한다.
  9. 기술적 탁월성과 좋은 설계에 대한 지속적인 관심으로 기민함을 향상시킨다.
  10. 단순성 - 아직 하지 않은 작업량을 최대한 세분화하는 기술은 필수적이다.
  11. 최고의 아키텍쳐, 요구사항 및 설꼐는 자율구성팀에서 비롯된다.
  12. 팀은 정지적으로 더 효과적인 방법을 찾아서 반영한 다음, 그에 따라 업무활동을 조율하고 조정한다.

애자일 선언문

우리는 소프트웨어를 개발하고 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더나은 방법들을 찾아가고 있다. 이 작업을 통해 우리는 다음을 가치있게 여기게 되었다.

  • 공정과 도구보다 개인과 상호작용을
  • 포괄적인 문서보다 작동하는 소프트웨어를
  • 계약 협상보다 고객과의 협력을
  • 계획을 따르기보다 변화에 대응하기를

가치있게 여긴다. 이말은 왼쪽에 있는 것들도 가치가 있지만 우리는 오른 쪽에 있는 말들에 높은 가치를 둔다는 것이다.

애자일 유형

XP(Extreme Programming)

  • 사용자로부터 요구사항을 듣고 분석 및 설계의 바탕이 되는 요구사항을 정의해야되는데 분석이 어려움
  • 그래서 요구사항을 한꺼번에 받지 않고 개발주기를 짧게해서 설계,구현, 시험을 많이 함
  • 짧은 개발주기의 반복성
  • 프로토타입이 자주만들어짐
  • 개발계획 자주 변경

가치

의사소통 고객과 개발자의 의사소통 중요시
단순성 가장 효율적인 디자인, 코딩을 사용
피드백 즉각적인 피드백을 통해 실행가능한 상태유지
용기 개발자들이 자신감있게 변화를 수용할 수 있도록 만들어줌
존중 팀원간 상호존중

12가지 기본원리

짝 프로그래밍 개발자 둘이서 짝코딩
공동 코드 소유 시스템에 있는 코드는 누구든 언제라도 수정가능
지속적통합(ci) 매일 여러번 소프트웨어통합,빌드
계획세우기 고객이 요구하는 비즈니스가치정의, 개발자가 필요한 것은 뭐고, 어떤 부분에 지연될 수 잇는지를 알려주어야함
작은 릴리즈 작은 시스템을 먼저만들고, 짧은 단위로 업데이트
메타포어 고객과 개발자간의 의사소통 원할
간단한 디자인 단순한 시스템 설계
TDD 테스트기반 개발
리팩토링 기능을 안바꾸면서 중복제거 재구성
40시간 작업 피곤하지 않게 40시간 이상 일하지 말아야함
고객상주 개발자질문에 즉각대답가능
코드표준 모든 코드에 대한 코딩표준을 정의해야함

스크럼(scrum)

  • 특정 개발 언어나 방법론에 의존적이지 않으며, 작은 주기로 개발 및 검토를 하며 효율적인 협업 방법을 제공
  • 복잡한 제품을 개발하고, 유지하기 위한 프레임워크
  • 비즈니스 요구를 충족시키는데 초점을 맞추기 위해, 작은 목표를 짧은 주기로 점진적이며 경험적으로 제품을 지속엊ㄱ으로 개발하는 관리 프레임 워크

특징

  • 솔루션에 포함할 기능, 개선점에 대한 우선순위 부여
  • 개발주기 1~4주
  • 개발 주기마다 적용할 기능이나 개선에 대한 목록제공
  • 15분정도의 스크럼미팅을 가지기
  • 항상 팀을 우선시하기
  • 원활한 의사소통을 위해, 구분 없는 열린 공간과 마음을 유지하기

추구가치

  • 용기 = 팀원간 갈등과 도전을 위한 용기
  • 집중
  • 약속 = 개개인이 하기로한 목표달성을 위해 헌신하고 달성을 위한 모든 권한 부여
  • 존중
  • 투명성/개방성=프로젝트에 대한 모든 내용을 투명하게 공개

역할자

Product Owner

  • 백로그 관리 밑 제품 검토(백로그 - 요구사항), 우선순위 관리

ScrumMaster

  • 가치와 원칙으로 성공적 제품을 만듬 // 팀보호, 장애요소해결, 모니터링 트랙킹

 주요용어

  • product backlog - 개발할 제품의 요구사항인 사용자 스토리 집합, 우선순위로 관리
  • user story - 사용자가 사용하는 관점에서 어떤 가치를 제공할 것인지를 설명
  • definition of done, acceptance criteria - 완료기준과 인수기준
  • sprint - 계획, 개발, 리뷰 작업 등 최소 단위의 사이클(1~4주)
  • potentially shippable product incremnet or minimum viable product-
  • 잠재적 출시가능재품 또는 최소 실행 가능 제품 -  팀이 최소 노력으로 고객에게 검증결과를 받을 수 있는 수준의 제품을 만듬
  • Sprint Planning Meeting - 스프린트 목표와 백로그를 계획하는 회의
  • sprint backlog - 스프린트 목표에 도달하기 위한 작업목록
  • kanban board - 작업을 시각적 업무상태, 흐름을 보여주는 게시판
  • daily scrum - 15분 정도 매일 회의 수행
  • sprint review - 마지막날 개발자가 개발한 내용을 고객, 책임자 등 시연하고 검토
  • sprint retrospective - 스프린트 마지막날 좋았던 점, 개선할 점을 도출하고 더 나은 방향으로 개선
  •  
728x90
반응형
BIG

댓글