2016년 11월 16일 수요일

81day / Final Project / 개발방법론


프로젝트 진행을 위해 개발방법론을 연구하다!
강사님의 주도하에 개발방법론을 자유롭게 공부하였다
  • Lean Canvas



1. 문제
사람들이 불편함을 느끼는 진짜 문제점을 찾았는가?

2. 고객군
목표 시장을 알고 있는가?
고객군을 구별해서 각각에 맞는 메세지를 전달할 방법을 알고 있는가?

3. 고유의 가치 제안
여러분의 제품이 왜 더 나은지 또는 어떻게 다른지 명로하고
독특하며 기억에 남는 방법으로 설명할 수 있는가?

4. 솔루션
문제를 적절한 방식으로 해결할 수 있는가?

5. 경쟁 우위
여러분의 노력이 경쟁자보다 더 좋은 결과를 내도록 만드는 '증폭기'는 무엇인가?

6. 수익원
수익이 어디에서 발생하는가? 일회성인가 반복적으로 발생하는가? 수익이 직접적으로 발생하는가 아니면 간접적으로 발생하는가?

7. 비용 구조
사업 운영에 필요한 직접, 간접 비용은 무엇인가?

8. 핵심 지표
사업이 잘 되고 있는지 알기 위해 어떤 숫자들을 추적해야 하는지 알고 있는가?

9. 채널
고객에게 제품이나 서비스를 어떻게 전달하고 매출을 발생시킬 것인가?


린 캔버스가 좋은 점은 우리의 아이템이 어떤 아이템인지
제대로 파악할 수 있는 지표를 제공하게 된다!
아이템의 단점이 무엇인지 장점이 무엇인지 명확하게 알수 있으니
아이템선정에 있어서 항상 린 캔버스를 고려해봐야겠다.


  • WaterFall (폭포수 모델)

로이스가 제시한 최초의 폭포수 모델은 다음과 같은 단계가 순차적으로 기술되어 있다.
  1. 소프트웨어 요구사항 기술
  2. 소프트웨어 설계
  3. 소프트웨어 구현 (또는 코딩)
  4. 통합
  5. 시험과 디버깅
  6. 설치
  7. 소프트웨어 유지보수
폭포수 모델의 진행 방법은!
완전히 순차적으로 한 단계, 한 단계를 진행해 나가야 한다.
예를 들어, 가장 먼저 요구사항 기술을 진행하여 이를 확정하여야 하며,
그런 이후에 설계를 진행할 수 있다

그렇기 때문에!! WaterFall에 대한 비난이 굉장히 많다.

WaterFall에 대한 비교자료


 WaterFall의 개발방법은 뭔가 딱딱하다..
단계별로 넘어간 후에도 전 단계에서 문제가 난다면
계속 되돌아가는 부작용이 있다. 이를 위해 유연한 처리와 확실한
단계 이동이 필요하다

  • Agile (애자일)

애자일 방법론은
아무런 계획이 없는 개발 방법
계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 하는 방법론이다.

  • 종류
1. 익스트림 프로그래밍
고객과 함께 2주 정도의 반복개발을 하고,
테스트우선 개발(TDD)을 특징으로 하는 명시적인 기술과 방법을 가지고 있다.

2. 스크럼
30일마다 동작 가능한 제품을 제공하는 스프린트(Sprint)를 중심으로 하고 있다.
매일 정해진 시간에 정해진 장소에서 짧은시간의 개발을 하는 팀을 위한,
프로젝트 관리 중심의 방법론이다.

3. 크리스털 패밀리
이 방식은 프로젝트의 규모와 영향의 크기에 따라서 여러종류의 방법론을 제공한다.
그중에서 가장 소규모 팀에 적용하는 크리스털 클리어는 익스트림 프로그래밍 만큼
엄격하지도 않고 효율도 높지 않지만, 프로젝트에 적용하기 쉬운 방법론이다.

4. Feature-Driven Development
feature마다 2주정도의 반복 개발을 실시한다.
Peter Coad가 제창하는 방법론으로써, UML을 이용한 설계 기법과도 밀접한 관련을 가진다.

5. Adaptive Software Development, ASD
혼란을 대전제로 그에 적응할 수 있는 소프트웨어 방법을 제시하기 위해
만들어진 방법론이다.
합동 애플리케이션 개발(Joint Application Development,
사용자나 고객이 설계에 참가하는 개발 방법론)을 사용한다

6. 익스트림 모델링
UML을 이용한 모델링 중심 방법론이다. 다만,
언제나 실행할 수 있고 검증할 수 있는 모델을 작성하는 공정을 반복해서,
최종적으로는 모델로부터 자동적으로 제품을 생성하게 한다.



  • UP



이해하기 굉장히 어려운 방법론이다.
RUP와 AUP까지 나오니 정말..뭐가 뭔지...

프로젝트 단계를 상세하게 나누고 단계를 여러번 반복하면서 실행한다.
각 단계마다 반복 실행되면서 비중과 시간 집중도는 모두 다르며
UML에 토대를 둔 방법론이며 가이드라인은 꽤나 자세하다

결론...어렵다

  • Kanban
개발자들에게 과도한 부하를 주지 않으면서 적시에 상품을 출시하도록 하는
개발 방법이며 점진적이고 자발적인 변화를 유도하는 방식이다.
현재의 프로세스를 그대로 칸반에 옮긴 다음 구성원들이 개선 지점을 직접 보고
느끼도록 해준다.

( 참고자료 https://selfothercontext.com/2013/01/03/one-day-in-kanban-land )
↗굉장히 이해하기 쉽게 정리 되어있다! 강추!


Semi-Project를 진행할때 칸반을 적용하여 진행을 했던 경험이 있다!
굉장히 직관적이고 한눈에 보여 누구나 이해할 수 있을 정도로 쉬운 방법론이다
이번 Final-Project에서는 Trello kanban도 적용할 예정이다! 기대기대☝☝


전체적으로 위키피디아를 참조하여 작성하였습니다.

0 개의 댓글:

댓글 쓰기