기능 추가를 중지 할시기를 어떻게 알 수 있습니까?


16

얼마 전에 나는 새로운 항목에 대한 xml 피드를 주기적으로 확인하고 새로운 항목이있을 때 사용자에게 경고하는 매우 작은 파이썬 스크립트를 작성했습니다. 나는 이것을 직접 작성 했으므로 기본적으로 콘솔 인터페이스에 익숙한 사람이라면 누구나 사용할 수있는 콘솔 기반 프로그램이었습니다.

잠시 후 나는 그것이 다른 사람들에게 더 유용 할 수 있다고 결정하고 그것을 정리하고 입력을 소독하고 버그를 제거하기 시작했습니다. 스크립트를 작성했기 때문에 스크립트를 효율적이고 정확하게 사용하는 방법을 알았습니다. 다른 사람들은 그렇지 않을 수 있으므로 GUI를 추가하기 시작했습니다. 이것은 간단한 메뉴로 시작한 다음 인터페이스와 옵션 메뉴를 모두 갖춘 더 완전한 GUI로 확장되었습니다. 그런 다음 저장된 사용자 환경 설정과 이전에 검색 한 xml 피드를위한 스토리지를 추가하여 반복 검색 속도를 높였습니다.

문제가 발생하는 경우 응용 프로그램을 디버깅하는 데 도움이되는 로깅을 추가하고 응용 프로그램을 선택한 플랫폼에 대해 사용 가능한 최신 안정적인 Python 코드베이스로 가져 왔으며 대화 상자 기능이 향상되었습니다.

코드를 수정하고 명확하게 주석을 달았지만 알파 테스터가 앱을 사용하기 전에 앱을 개선하기 위해 할 수있는 일이 여전히 남아 있습니다. 내 원래 20-30 줄 스크립트와는 거리가 멀다. 개념 증명에서 수용 가능한 사용 프로그램으로 이동하는 데 1 ~ 2 시간이 소요될 것으로 예상되는 데는 10-20 배가 걸렸습니다. (나는 여전히 멍청한 데 물건이 오래 걸리지 만 여전히 ....)

물건을 추가 / 비틀기 / 고정하는 것을 멈추고 아기가 열린 곳에서 기어 다닐 때를 어떻게 알 수 있습니까?

답변:


8

마감 시간을 맞출 때

마감일이 없으면 이것이 문제입니다 ...

내가 일하는 방법은 다음과 같습니다.

  1. 제품 백 로그에 새로운 기능 / 버그를 추가합니다.
  2. 비즈니스 가치에 대한 전체 제품 백 로그의 우선 순위를 정하고 추정합니다 (개인 프로젝트의 경우 마지막 옵션은 선택 사항 임).
  3. 나는 자신에게 작업 시간을 할당합니다. 출시일은 그 시간의 끝입니다.
  4. 나는 목록에서 가장 먼저 시작합니다. 기능을 한 번에 작업합니다. 완료하려면 문서를 포함하여 기능이 완전히 완성되어야합니다 (기능이 끝나면 제품을 배송 할 수 있음).
  5. 나는 할당 된 시간이 소비 될 때까지 다음을 가져갑니다.
  6. 지형지 물을 제작할 때 시간이 걸리면 일시적으로 버립니다.
  7. 할당 된 시간이 소비되면 최신 빌드를 사용하여 릴리스합니다.
  8. 포인트 1부터 프로세스를 반복합니다.

흠 나는 워크 플로우를 많이 좋아한다. 이 프로젝트는 취미 프로젝트입니다. 수익을 창출하려고할지 모르겠습니다. 무료로 제공되거나 오픈 소스로 제공 될 가능성이 큽니다.
fearoffours

4
위의 제안 워크 플로에서 가치가 돈을 의미하는 것은 아닙니다. 당신은 가치가 무엇인지 결정합니다.

알았어. 대단해. 오늘 초에 게시물을 본 후 이것을 적용했습니다. 마감일은 수요일 오후 3시입니다. 나는 물건이 어디로 가고 있는지와 Im이 무엇을하고 있는지에 대해 더 확신합니다. 이 릴리스 이전에 수행 할 작업 (스크립트 상단에 주석으로)과 나중에 남길 수있는 작업의 우선 순위를 정했습니다. 그리고 한 번에 작업에 계속 집중할 수 있도록 현재 작업중인 기능을 작성하고 있습니다. 감사!
fearoffours

3. I allocate work time to myself. The release date is the end of that time.@Pierre 303, time당신은 몇 시간 즉, 야간 빌드를 의미 했습니까? 또는 전체 스프린트처럼 시간?
Kenan D

@LordCover : 예를 들어 제품 작업을 위해 3 주 (5 주 7 일)를 할당합니다. 3 주가 지나면 배송합니다.

3

화장 SRS를 요구 사항에 따라 코드를 다음. SRS에 언급 된 모든 목표를 달성하면 제품을 중지하고 테스트해야합니다.


흠 좋은 지적이다. 나는 현재 그 목적에 대해 적어 놓은 것이 없습니다.
fearoffours

SRS는 좋지만 개인 프로젝트의 단일 남자 팀에게는 약간 과잉입니다. 문서화는 좋지만이 유형의 프로젝트에는 아직 모든 SRS가 필요하다고 생각하지 않습니다.
Chris

@Chris-SRS는 항상 좋은 것입니다. 개인 프로젝트이며 오늘 무료로 공개되는 것은 여전히 ​​무료 소프트웨어이며 수십 명의 사람들이 작성했습니다. 문서가 Facebook에 중요한 이유에 대한 훌륭한 예를 들어, 초기 단계에서 문서를 작성하고 해당 문서를 업데이트하면 오늘날 문서를 작성하는 것이 더 쉬웠습니다. 디자인을 기록 할 수없는 경우 디자인, 기능 설명 및 문서 작성 방법을 문서화하십시오.
Ramhound

2

단기적으로는 안정적으로 작동하고 충돌하지 않는 것이 있습니다. 그것을하지 않는 경우에도 모든 그것은 무기한 그것을 일 경우 수행. 말하는대로 배송 기능 입니다. 신뢰성과 제한된 기능 세트를 통해 실제 세계의 실제 사람들이 핵심 기능을 테스트 할 수 있습니다. 이 시점에서 기능이 적을수록 초기 문제를 해결하기가 쉬워집니다. 핵심 기능이보다 안정적으로 작동함에 따라 가장 중요하고 중심적인 코드가 여전히 잘 작동한다는 지식으로 다른 "좋은"기능을 구현할 수 있습니다.

장기적으로 : 사용자 (및 물론)가 필요할 때 새 기능을 빠르고 쉽게 구현할 수있게하는 플러그인 시스템을 완성하고 문서화 할 때. 이것이 마지막으로 추가해야 할 기능이어야합니다. 그 후에는 모든 플러그인입니다.


1

보류중인 기능이있을 수 있지만 소프트웨어의 안정성이 확실하면 릴리스로 이동하십시오. 기능보다 안정성이 더 중요합니다. 피드백을 받고 기존 기능과 통합하고 다음에 언제 제공해야하는지 결정하십시오!


1

언제 어디서나 프로젝트를 간호 할 수 있습니다.

매우 좋은 규칙은 승인 된 사용 사례에없는 것을 추가해서는 안된다는 것입니다. 이것은 당신이 가지고 있으면 좋을 것이지만 아무도 사용하지 않는 많은 것들로 끝나지 않도록합니다. 승인하면 프로젝트에 이것이 필요하다는 것에 동의하는 것 이외의 다른 사람이 있습니다.


1

기능을 추가하는 이유에 따라 다릅니다. 프로젝트 소유자가 요청합니까? 사용자? QA? 프로그래머?

  • 필요한 기능을 추가하십시오.
  • 중요한 기능을 확인하십시오.
  • 좋은 기능은 무시하십시오.

프로그램의 목적에 중점을두고 그 목적에 중점을 둡니다. 스위스 군용 칼이되기 전에 그 목적을 확장하는 기능 요청에 대해 철저히 질문해야합니다.


나는 제품에 집중하는 아이디어를 좋아한다. 나는 그것을하려고 노력하고 있으며, 여전히 나 자신을 차지할 방법을 찾습니다!
fearoffours

2
@fearoffours, 항상 자신의 작업을 개선하는 방법을 찾을 수 있습니다. 요점은 사용자들에게 더 잘 작동하는 방법을 사용자들로부터 찾아내는 것입니다. 실제 장애물을 해결하십시오 . 실제 거친 지점을 부드럽게 만듭니다.
Huperniketes

그 의견에 좋은 조언, (+1) 감사합니다!
fearoffours

0

더 이상 기능 추가를 중단하지 않습니다. 나는 최대한 빨리 앱을 꺼내고 필요한 경우 txt 파일을 작성하려고합니다. 그런 다음 언제 멈추고 다른 일을 할 것인지 결정할 수 있습니다.

또한 해킹에 의존하지 않고 무언가를 할 수있는 최소한의 일을하는 것을 좋아합니다.


0

나는 당신에게 타임 박스를 제안합니다. 자신에게 말하기 주를 제공하십시오. 해당 주 동안 완료 할 작업 목록을 작성하고 완료 할 수없는 기능이 있는지 확인한 후 취소하십시오.

일주일에 그것을 릴리스하십시오. 일찍 릴리스하고 자주 릴리스하십시오.


그러나 일부 기능이 서로 의존 할 경우 어떻게해야합니까?
Kenan D

0

신뢰할 수 있고 유용한 것이 있으면 릴리스하십시오. 기능 추가를 중단 할 필요는 없지만 누군가 내가 가지고있는 것을 사용하는 경우 원하는 기능에 대해 훨씬 더 잘 이해할 수 있습니다. 현재, 당신은 추측하고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.