Como você sabe quando parar de adicionar recursos?

16

Há algum tempo, escrevi um script python muito pequeno que verificava periodicamente um feed xml em busca de novas entradas e alertava o usuário sobre novas entradas quando presentes. Eu escrevi isso para mim mesmo, por isso era essencialmente um programa baseado em console que qualquer pessoa confortável com uma interface de console poderia ter usado.

Depois de um tempo, decidi que poderia ser mais útil para outras pessoas e comecei a arrumar, higienizar insumos e remover bugs. Ocorreu-me que, por ter escrito o script, sabia como usá-lo com eficiência, precisão etc. Outros podem não, então comecei a adicionar uma GUI. Isso começou como um menu simples e depois expandiu-se para uma GUI mais completa, com um menu de interface e opções. Em seguida, adicionei preferências de usuário armazenadas e também armazenamento para feeds XML pesquisados ​​anteriormente para acelerar pesquisas repetidas.

Eu adicionei o log para ajudar a depurar o aplicativo, caso algo dê errado, levei o aplicativo até a mais recente base de código python estável disponível para a minha plataforma escolhida e aprimorei os recursos de diálogo.

Corrigi o bug e comentei meu código com clareza, e ainda tenho coisas que acho que podem ser feitas para melhorar o aplicativo antes de disponibilizá-lo aos testadores alfa. É muito distante do meu script original de 20 a 30 linhas. O que eu previa que levaria apenas uma ou duas horas para passar da prova de conceito para um programa de uso aceitável levou de 10 a 20 vezes isso. (Eu ainda sou um noob, e as coisas me levam muito tempo, mas ainda ....)

Como você sabe quando parar de adicionar / ajustar / consertar coisas e deixar seu bebê rastejar ao ar livre?

medo
fonte

Respostas:

8

Quando você atinge o prazo.

Se você não tem prazo, este é o seu problema ...

Aqui está como eu trabalho:

  1. Eu adiciono novos recursos / bugs no backlog do meu produto.
  2. Priorizo ​​toda a lista de pendências de produtos em valor comercial e estimada (a última é opcional em caso de projeto pessoal).
  3. Eu aloco tempo de trabalho para mim. A data de lançamento é o fim desse período.
  4. Começo com o primeiro da lista. Eu trabalho em um recurso por vez. Para ser concluído, um recurso deve estar realmente completo, incluindo documentação (no final de um recurso, posso enviar o produto potencialmente).
  5. Eu pego o próximo até que meu tempo alocado seja consumido.
  6. Se o tempo for consumido quando estou criando um recurso, eu o descarto temporalmente.
  7. Quando o tempo alocado é consumido, pego a versão mais recente e faço um lançamento com ela.
  8. Repito o processo a partir do ponto 1.

fonte
Hmm, eu gosto muito do fluxo de trabalho aqui. Este é um projeto de hobby, não tenho certeza se vou tentar monetizá-lo, é mais provável que seja oferecido gratuitamente ou disponibilizado em código aberto.
Fearoffours 18/10/10
4
Valor não significa dinheiro no fluxo de trabalho sugerido acima. Você decide qual é o valor.
OK, isso é incrível. Venho aplicando isso desde que vi o post hoje mais cedo. Meu prazo é quarta-feira, às 15h, e as coisas estão indo bem! Eu me sinto mais confiante sobre onde as coisas estão indo e no que estou trabalhando. Priorizei (nos comentários na parte superior do script) as coisas a serem feitas antes desta versão e as que podem ser deixadas para mais tarde. E estou anotando o recurso no qual estou trabalhando atualmente para garantir que permaneço focado em uma tarefa de cada vez. Obrigado!
Fearoffours 18/10/10
3. I allocate work time to myself. The release date is the end of that time.@ Pierre 303, Quando você disse que timequeria dizer horas, ou seja, construções noturnas? ou o tempo como um sprint completo?
Kenan D
@ LordCover: por exemplo, eu me designo 3 semanas (5 dias por semana, 8 horas por dia) para trabalhar no produto. Eu envio no final das 3 semanas.
3

Faça um SRS e codifique de acordo com os requisitos. Quando você atingir todos os objetivos mencionados no SRS, é hora de parar e testar seu produto.

Chankey Pathak
fonte
Hum bom argumento. Não tenho nada escrito sobre seu objetivo no momento.
Fearoffours 18/10/10
As SRS são boas, mas para uma equipe individual em um projeto pessoal um pouco exagero. A documentação é boa, mas para esse tipo de projeto, não acho que todo o SRS seja necessário ainda.
18710 Chris
@ Chris - Um SRS é sempre uma coisa boa. O que é um projeto pessoal e lançado de graça hoje, ainda é um pedaço gratuito de software e escrito por dezenas de pessoas. Um ótimo exemplo de por que a documentação é importante no Facebook, foi bastante mais fácil escrever a documentação nos estágios iniciais e atualizá-la; então, seria hoje. Se você não pode anotar seu design, explique-o, documentação e como o recurso funciona, como você pode codificá-lo?
Ramhound 25/02
2

A curto prazo, quando você tem algo que funciona de maneira confiável e não falha. Mesmo que não faça tudo o que poderia , se você trabalhasse indefinidamente. Envio como diz o ditado é um recurso . Confiabilidade e conjunto de recursos restritos oferecem a oportunidade de a funcionalidade principal ser testada por pessoas reais no mundo real, que encontrarão coisas que você nunca pensou em quebrar o código de maneiras que nunca passariam pela sua cabeça. Quanto menos recursos você tiver, neste momento, mais fácil será corrigir esses problemas iniciais. Como a funcionalidade principal funciona de maneira mais confiável, você pode começar a implementar as outras coisas "legais de ter" com o conhecimento de que seu código mais importante e central ainda funciona bem.

A longo prazo: Quando você concluir e documentar o sistema de plug-in que permitirá que seus usuários (e claro que você) implementem novos recursos de maneira rápida e fácil, se você precisar deles. Esse deve ser o último recurso que você precisa adicionar; depois, são todos os plug-ins.

glenatron
fonte
1

Quando tiver certeza da estabilidade do seu software, vá para uma versão, embora possa haver recursos pendentes. A estabilidade é mais importante que os recursos. Obtenha o feedback, incorpore-o aos recursos existentes e decida o que deve ser entregue a seguir e quando!

Gopi
fonte
1

Você sempre pode cuidar de um projeto para todo o sempre.

Uma regra muito boa é que você nunca deve adicionar itens que não estejam em um caso de uso aprovado. Isso garante que você não acabe com muitas coisas que seria bom ter, mas que ninguém usa. A aprovação garante que outras pessoas, além das que você concorda, sejam necessárias no seu projeto.


fonte
1

Depende do motivo pelo qual você está adicionando recursos. Os proprietários do projeto estão pedindo por isso? Comercial? QA? Programadores?

  • Adicione os recursos que você precisa.
  • Analise os recursos que são importantes.
  • Ignore os recursos que é bom ter.

Concentre-se no objetivo do programa e faça com que ele seja focado. Solicitações de recursos que estendem seu objetivo devem ser cuidadosamente questionadas antes de se tornar um canivete suíço.

Huperniketes
fonte
Eu gosto da ideia de manter um produto focado. Estou tentando fazer isso e ainda encontro maneiras de me ocupar!
Fearoffours 18/10/10
2
@fearoffours, Você sempre pode encontrar maneiras de melhorar seu próprio trabalho. O objetivo é descobrir pelos usuários como fazê-lo funcionar melhor para eles. Resolver obstáculos reais . Suaves manchas ásperas reais .
Huperniketes
bons conselhos nesse comentário, (+1) obrigado!
Fearoffours 18/10/10
0

Não paro mais de adicionar recursos. Eu apenas tento disponibilizar o aplicativo o mais rápido possível e gravar arquivos txt, se necessário. Então eu posso decidir quando parar e quando trabalhar em algo diferente

Também ajuda que eu gosto de fazer o mínimo possível para fazer algo (sem recorrer a hackers).


fonte
0

Eu sugiro que você timebox. Dê uma semana para você dizer. Crie uma lista de trabalhos a serem concluídos durante essa semana e, se você tiver um recurso que não pode concluir, poderá recuperá-lo.

No final da semana, libere-o. Solte cedo, solte frequentemente.

mlk
fonte
mas o que fazer quando alguns recursos dependem um do outro?
Kenan D
0

Quando você tiver algo confiável e útil, solte. Você não precisa parar de adicionar recursos, mas se alguém estiver usando o que você tem por aí, terá uma idéia muito melhor de quais recursos são desejados. Atualmente, você está supondo.

David Thornley
fonte