솔로 개발자를위한 민첩


133

솔로 개발자로서 애자일 프로세스 개념을 어떻게 구현할 것인가? 애자일은 더 빠른 속도로 응용 프로그램을 개발하는 데 유용하지만 팀 지향적 인 것 같습니다 ...


77
방금 솔로 개발자로 페어 프로그래밍을 채택하려고했는데 작업 품질이 향상되었습니다!
Wizard79

답변:


66
  • 테스트 중심 개발을 통해
  • 작은 스프린트에서 개발함으로써
  • 고객과 많은 접촉을함으로써

카우보이 개발에 대한 논문을 읽은 것을 기억합니다. 솔로 개발자에게는 본질적으로 애자일이지만, 내가 찾은 곳을 기억할 수 없습니다.


18
난 강력하게 "카우보이"개발도 솔로 개발자, 애자일이라는 주장에 동의하지 않을 것이다
트래비스 기독교

4
@TravisChristian-더 고독한 레인저입니다.
JeffO

9
@ a.brookshollar가 편집으로 남겨 두려는 논문에 대한 링크가 있습니다.
Scott Whitlock

6
나는 Travis 나 자신의 의견을 표명 한 11 명 모두가 문제의 논문을 읽지 않았다는 것에 베팅 할 것입니다. 전체 제목은 "Cowboy : 솔로 프로그래머를위한 민첩한 프로그래밍 방법"이며, 약간 날짜가 있지만 읽을만한 가치가 있습니다.
Brien Malone

2
논문에 대한 링크가 죽었이지만, 아카이브가 있습니다 web.archive.org/web/20150914220334/http://...
토비아스 Kienzler을

39

klez (모든 좋은 제안)의 대답 외에도 다음을 제안합니다.

  • 제품 백 로그 유지 제품 백로 그는
    기본적으로이 제품의 특정 단계에서 완료하려는 모든 항목의 목록입니다.
  • 스프린트 단속 및 제품 단종 유지 보수 스프린트 단절
    은이 스프린트에서 완료하기로 결정한 모든 작업 (예 : 일정 기간 (예 : 2 주간 완료된 제품 백 로그의 하위 세트)) 목록으로 시작됩니다. 필요한 작업의 추정치. 물건을 표시 할 때 완료된 것으로 표시합니다. 그로 인해 스프린트의 남은 작업이 줄어 듭니다.
    마찬가지로 제품 번 다운은 전체 제품 백 로그의 남은 작업을 추적합니다.
  • 상대 추정 및 속도의 개념 채택
    상대 추정은 다른 작업 (또는 스토리)을 가이드로 사용하는 추정 기법입니다. 예를 들어, 작업 A가 작업 B보다 쉽고 작업 C보다 2 배 더 복잡하다는 것을 알고 있다면 작업 A의 "포인트"가 해당 예상과 비교하여 올바른지 확인해야합니다.
    필요한 작업량을 정확하게 추측하는 것이 아니라 견적을 서로 일관성있게 유지하는 데 중점을 둡니다.
    속도는 스프린트에서 얼마나 많은 "포인트"를 수행하는지 측정 한 것입니다. 상대 추정이 일관성을 보장하는 경우이 속도를 사용하여 다가오는 스프린트에서 수행 할 작업을 추정 할 수 있습니다. 속도는 지속적으로 수정되어야합니다.

제품 백 로그, 번 다운, 상대 추정 (스토리 포인트) 및 속도는 모두 필수적인 민첩한 관행입니다. 그들 중 어느 것도 솔로 실무자 상황에만 국한되는 것은 아닙니다.
azheglov

4
... TDD, 스프린트 및 고객 연락처와
마찬가지로

5
이 용어가 의미하는 바를 말해 주면 좋을 것입니다. 이 답변을 읽기 전에는 단서가 없습니다.
Click Upvote

2
@Damovisa : 설명이나 웹 검색이 필요하지 않습니다. 대단히 감사합니다. 스크럼의 몇 가지 일반적인 관행을 정확하게 설명합니다. 이것이 바로 OP 질문의 시작점입니다. 예, 이러한 관행은 존재하지만 팀 지향적입니다. 어떻게 소규모로 적용합니까? 설명에 마이크로 스케일에만 해당되는 것은 없습니다.
azheglov

4
@azheglov 와우, 공격을 일으킬 필요가 없습니다. 스크럼의 어떤 부분 을 적용하는 방법 보다는 솔로 개발자 시나리오에서 가장 유용하다고 생각 하는지 강조 했습니다. 이 기술들 중 어느 것도 솔로 vs 팀에서 전혀 바뀌지 않아야하므로, 그것들은 정확히 같은 방식으로 적용됩니다. 당신의 말을 반영하기 위해-이 기술에는 마이크로 스케일에만 해당되는 것이 없습니다.
Damovisa

21
  • 진행중인 작업 제한 (시간 복싱과 함께) Kanban과 달리 반복 방법을 사용하더라도 속도가 반복 당 8 포인트라고 가정합니다. 한 번에 8 개로 작업을 시작하지 마십시오. 스토리 수 또는 스토리 포인트 수에 따라 WIP를 제한하는 것은 좋습니다.
  • 모든 사용자 스토리에 대해 자동 수락 테스트를 수행하십시오. 일반적으로 최대한 많이 자동화하십시오.
  • 사용자 스토리를 너무 작게 만드는 측면에서 오류가 발생했습니다. 경험상 가장 큰 이야기와 가장 작은 이야기 3 : 1비율을 만드십시오 . Scrum의 스토리를 과소 평가하고 너무 큰 것으로 판명되면 여러 개발자가 스토리를 다시 시작하기 위해 무리를 지을 수 있습니다. 그러나 당신은 충분한 사람들이 없습니다.
  • 규칙적인 규모의 팀 환경에서 사용자 스토리에서 스파이크를 분리할지 여부를 단독으로 또는 소규모 팀 환경에서 망설이지 않고 스파이크를 수행할지 여부를 망설이십시오. 이를 통해 스토리를 더 작고 예측 가능하게 유지할 수 있습니다.
  • 회고는 일반적으로 민첩하게 중요하므로 회고 과정이 더 데이터 중심적이기 때문에 Kanban (개인 Kanban)은 여기에서 추가 점수를 얻습니다. 사람이 충분하지 않으면 트리플 니켈을하기가 어렵습니다.

이러한 것들은 아마도 솔로 팀과 소규모 팀 (2 ~ 3 명의 개발자) 상황 모두에 적용됩니다.

ADDED :이 답변을 쓴 후 언젠가는이 회의 연설을보고 매우 감동했습니다. Personal Kanban : 개인 코더 최적화


9
  • 잘 정의 된 스프린트로 작업하거나 의도적으로 Kanban 접근 방식을 선택하십시오. 실수로 칸반에 가지 마십시오
  • 버그는 첫째, 기능은 두 번째입니다.
  • 여전히 가치 대 기능 부풀림에 계속 집중하십시오. (YAGNI over 금도금)
  • 회고는 마찬가지로 귀중합니다. 그리고 중요하게도 작은 덩어리로 프로세스를 변경하십시오. ATM을 제공 할 외부 기능이없는 한, 오늘 TDD, Mock 및 IoC를 한 번에 시작하기로 결정하지 마십시오. 한 번에 하나씩 가져 오십시오.

궁극적으로, 저는 Agile을 "팀과 고객에게 의미있는 일을하고 과거에 일한 것처럼 보이기 때문에 기존 관례를 따르지 않는"것으로 정의합니다.


3

애자일은 팀과 마찬가지로 개인도 잘 작동합니다. 자신에게 적합한 프로세스를 찾고 프로젝트가 이미 시작된 후에 변화하는 환경에 적응할 수 있도록하는 것입니다. 또한 소프트웨어가 실제로 "완료"되었는지 여부에 관계없이 정기적으로 고객에게 가치를 제공하는 것입니다.

민첩한 프로세스는 매우 반복적입니다. 작업은 짧은 TimeBoxes / sprints / cycles / iterations에서 수행됩니다. 일부 설계 작업은 사전에 필요할 수 있지만 시스템이 수행해야하는 작업에 대해 자세히 알면 리팩터링 될 수 있습니다. 단위 테스트는 거의 모든 애자일 개발 방법의 중추이며, 소프트웨어가 작동하는지 여부를 나타내며 소프트웨어에 대한 추가 / 변경으로 인해 기존 코드 기반이 손상 될 수 있습니다.

BDD / TDD를 준수하는 경우 전체 시스템을 구축하고 모든 테스트를 자주 실행하고 각 스프린트 끝에서 작업 코드를 제공하는 경우 바람에 따라 요구 사항을 변경하고 기능 우선 순위를 조정할 수 있습니다 이미 민첩합니다.


0

와. 문제가 생겼을 때 전화를 걸 수있는 친구를 사귀고 코딩 문제에 대해 이야기하려고합니다. 당신은 내가 무슨 뜻인지 알지만 ... 문제를 크게 설명하는 행동은 90 %의 시간 동안 마음에 해결책을 가져옵니다 .


8
그것은 stackoverflow와 같은 곳에서 얻는 가치 중 대부분입니다. 입력 한 질문의 수와 제출에 대한 질문을 할 수 없습니다.
Dan Ray


2
고무 더킹은 훌륭한 개념 이지만 ( 관련 질문 에서 논의 됨 )이 질문에 어떻게 대답합니까? "어떻게 솔로 개발자로서 애자일 프로세스 개념을 구현할 것인가?"
gnat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.