소프트웨어 개발 방식을 개선하고 싶습니다. 더 빠르고 훌륭한 코드를 개발하고 싶습니다! 오늘 저는 워터 폴 방법을 프리랜서로 사용하고 웹 자료 (사이트, 시스템 등)를 작성합니다. 이런 방식으로 민첩한 개발 (XP, SCRUM 등)을 사용하는 방법이 있습니까? 민첩한 개발에 대해 전혀 모른다. 어디서부터 시작해야합니까? 대단히 감사합니다.
소프트웨어 개발 방식을 개선하고 싶습니다. 더 빠르고 훌륭한 코드를 개발하고 싶습니다! 오늘 저는 워터 폴 방법을 프리랜서로 사용하고 웹 자료 (사이트, 시스템 등)를 작성합니다. 이런 방식으로 민첩한 개발 (XP, SCRUM 등)을 사용하는 방법이 있습니까? 민첩한 개발에 대해 전혀 모른다. 어디서부터 시작해야합니까? 대단히 감사합니다.
답변:
... 페어 프로그래밍 이외. ;-)
진심으로, 저는 프리랜서이기도하며 가능한 한 민첩한 기술을 사용합니다. 그것은 나를 위해 아주 잘 작동합니다. TDD를 많이 사용합니다.
XP 나 스크럼을 100 % 사용하는 사람은 없지만, 모든 사람이 자신의 작품을 최대한 활용하려고 노력합니다. 내 의견으로는, 당신이 채택하는 것이 많을수록 더 좋습니다.
내가 가장 놓친 것은 페어 프로그래밍입니다. 당신이 그것을 극복하는 방법은
내가 사용하는 몇 가지 리소스는 다음과 같습니다.
따라서 Agile을 프리랜서로 사용하는 데는 세 가지 주요 "굉장한 점"이 있습니다.
대규모 클라이언트의 경우 반복 작업 / 빌 요금. 반복이 끝나면 고객은 프로젝트 작업을 계속하거나 프로젝트를 종료 할 수 있습니다 (예 : 목표 달성). 나는 (경험에서) 몇 주 이상을 예상 할 수 없으며, 반복 지불은 현금 흐름을 계속 유지한다는 것을 알고 있습니다. 당신이 빌릴 수 있도록 프로젝트를 완료하기 위해 ...
민첩한 변화가 일어난다는 것을 의미합니다. 나는주기 중간에 고객 요청으로 인해 돈을 잃어 버린 고정 입찰 프로젝트 (폭포로 할 수 있다고 생각 함)를 많이 수행했습니다. 변경이 발생합니다. 고객이 다른 작업을 더 빨리 수행하기 위해 티켓의 우선 순위를 정할 수 있습니다.
훌륭한 고객 협업 도구. 내 표준 견적 (반복 작업보다 작은 것)은 실제로 고객의 기대에서 파생 된 일련의 행동 중심 개발 단계입니다. 이것을 고객에게 보내고 "이것이 맞습니까?"라고 말합니다. 모든 사람이 같은 페이지에 있는지 확인합니다.
가능한 가장 간단한 것. 작업하면서 염두에 두어야 할 점이 있습니다. 고객에게 돌아가서 이렇게 말합니다. "이렇게하면 훨씬 간단 해 지거나 더 강력 해집니다. "
스크럼이 중요합니다. 나는 그들의 프로젝트에서 일하는 매일 고객에게 이메일을 보내는 것을 좋아합니다. "내가 오늘 일한 것", "다음에 어떤 일을 할 것인가?", "내 방식에 어떤 것이 있습니까?", "전체적으로 진행 상황은 무엇입니까?" ? "
테스트 주도 개발은 단일 프로그래머 로서도 매우 유용합니다. 나의 "BDD 스토리가있는 견적"은이 과정에 도움이됩니다.
애자일 여정을 시작하는 가장 좋은 방법은 KANBAN 시스템을 사용하여 워크 플로우를 설정하는 것입니다.
우리는 단순히 3 개의 스 lane 레인이 있습니다 :
이 간단한 애자일 워크 플로는 시작하기에 좋은 방법입니다.
코딩 측면에서 테스트 중심 개발 (TDD)을 사용하는 것이 좋습니다 . 우리는 기사에 TDD를 설명하는 많은 훌륭한 링크를 포함 시켰지만 여기에서 다시 복사 할 것입니다.
자세한 내용은 다음 리소스를 확인하십시오.
귀하의 개인 있기 때문에, 당신은 당신이 grok 수 아웃에 가장 적합한 것을이 도움이 무언가로 민첩 방법론 접근하는 최선의 방법 을 . 그들은 "스푼이 없습니다"고원에 도달하는 데 도움을주기 위해 거기에 있지만, 어떻게 될 것인지는 전적으로 당신에게 달려 있으며, 결국 당신이 생각해내는 것은 여러 수준에서 일부 방법론과 크게 겹칠 것입니다. 그것은 당신의 것이 될 것입니다.
전반적인 효과를 향상시키기 위해 자신의 방법을 찾으려고 노력한 이후로, 내가 한 것과 같은 실수를 저 지르지 않도록 도와주는 몇 가지 지침이 있습니다.
가능한 한 민첩한 방법론만을 대상으로하는 모든 소프트웨어 솔루션을 포기하십시오.
이들이 팀 협업을 촉진하는 데 더 적합하다는 사실은 요점입니다. 유혹에 저항하십시오. 당신은 일 을하는 방식으로 자신을 상자에 넣지 않고 그것을 채택 하는 것이 최선을 다하기를 희망합니다. 그것은 단지 당신을 실망시키지 않습니다. 먼저 작업 방식을 찾은 다음 적절한 소프트웨어 솔루션을 찾으십시오. / 개발 이야기와 추적을 위해 내가 화이트 보드 사용하여 결국 한 (하나의 시작,하지만 지금은 내 방에 두이) 포모 도로 기법 | 내 개발 작업을 추적 하기위한 To To Today 목록과 2011 년은 어려울 것입니다. Iron Man 2의 인터페이스 나 비행 차량과 같은 인터페이스가 나타날 때까지 기본 사항을 고수하십시오.
반사, 반사, 반사
이것이 제가 개인을위한 방법론 중 가장 중요한 부분이라는 것을 이해하게되었습니다. 이 워크 플로를 개발하여 프로젝트를 전체적으로 볼 수 있으므로 수행해야 할 작업과 쉽게 관리 할 수있는 방식, 나쁜 결정이 거의없고 눈에 띄는 위치를 신속하게 수정할 수 있도록 추적 할 수 있습니다. 그들이 손상을 입히기 전에 ...하지만 선반에서 그것을 뽑을 수는 없습니다. 어디에서나 시작할 수 있습니다. 작동하는 한 계속 사용하십시오. 선과 악을 추적하는 데 투자하십시오. 가정을 개선 한 다음 그에 따라 일하는 방식을 조정하십시오. 그것이 당신의 발전을 향한 유일한 방법입니다.
마감일에 대해보고, 업무 수행 속도에 중점을 둡니다.
나는 데이트를 쫓아 시작했을 때 아마도 다음 사람과 같았을 것입니다. 번 아웃 차트? 나는 그것들을 마감일에 대비 한 개발 트랙을 시각화하는 방법으로 생각했습니다. 추정 모델이 아닌 성능입니다. 마감 시간을 방해하기 전의 거리를 나타내는 벙어리 한 값 뿐만 아니라 특정 시간 내에 수행 한 작업을 반영하여 효과를 측정 할 시간이 있습니다 . 실제로는 작업이 완료되면 작업이 완료되고 방법론에서이를 처리해야합니다.
그에 따라 편차
결국, 누가 당신이 사용자 스토리 또는 그 문제에 대해 알고있는 것을 사용해야한다고 말합니까? 그렇게 생각하지 마십시오. 기능에 대해 생각하는 것이 더 편하다면, 세계 개발 커뮤니티를 무시하고 그것을 끝내십시오. 일을 끝내는 것이 하루 종일 중요하기 때문입니다. 당신이 무언가 잘못하고있는 것 같은 기분이 든다면 축하합니다. 이제 다른 무언가로 도약 할 때라고 결론을 내 렸습니다. 방법이 아니라 내용에 관한 것입니다.
물론 Waterfall 이외의 디자인 방법을 채택하면 비즈니스 요구 사항에 따라 프로젝트 수명주기를 효과적으로 관리 할 수 있습니다. 민첩한 개발을 위해 온라인에는 수많은 리소스가 있습니다. TDD (Test Driven Development)를 통합 한 AUP (Agile Unified Process)를 살펴 보겠습니다 . 이는 확장 가능한 대규모 시스템을 구축 / 관리 할 때 매우 유용합니다.
'모두에 맞는'한 가지 방법론이 없으며 이것이 수많은 다른 접근 방식의 주된 이유입니다. 현재 개발 과정에서 병목 현상이 발생하는 위치를 생각한 다음이를 극복하기 위해 새로운 방법론을 채택하려고합니다.
예를 들어 마감일을 지키지 못하는 경우가 종종 있습니까? 새로운 기능으로 많은 버그가 발생합니까? 새로운 요구 사항이 주요 재개발을 유발합니까? 비즈니스에 정기적 인 작업 시스템을 제시해야합니까? Check a : Agile , Iterative and Agile Intro .