Que passos compõem o seu processo de desenvolvimento web e quanto tempo faz cada take fase?

StackOverflow https://stackoverflow.com/questions/475854

Pergunta

Vamos dizer que você trabalha 100 dias em um projeto. Quantos dias cada fase de seu processo (análise de requisitos, especificação, etc.) levaria?

Estou interessado também na proporção de atividades específicas em cada fase, tais como testes de escrita, codificação de back-end, front-end de codificação, design visual, design de banco de dados etc.

Muito obrigado!

EDIT:

Apenas para tornar as coisas claras, eu não estou falando de web design do site - Estou interessado em obter mais "sério" desenvolvimento web, tais como aplicações web de visita personalizados. Eu sei, tudo depende das especificidades de cada projeto, no entanto Suponho que os índices poderiam ser mais ou menos o mesmo de projeto para projeto.

EDIT2:

Como Helen corretamente comentou, esta questão é realmente difícil de responder, já que os projetos podem ser tão diferentes e tão pode ser equipes. Para torná-lo mais específico, digamos que você tem uma equipe de quatro desenvolvedores - dois deles para o trabalho de back-end, uma para programação de front-end e um para design e html / css codificação (um membro da equipe atua como um projeto gerente) e você é suposto para desenvolver StackOverflow.com site.

Foi útil?

Solução

Estamos executando projetos scrum ágeis, por isso normalmente são executados todas essas atividades em paralelo. Então, enquanto eu não posso responder à sua pergunta exata, eu posso lhe dar algumas idéias das relações que temos encontrado para ser eficaz:

4-5 desenvolvedores pode ser servido por um cliente programador lado (html / css), um verificador on-time e um designer de interação (trabalha com o cliente para desenhar wireframes). A equipe como esta normalmente precisa de um designer gráfico de 50% para a maioria das aplicações, mas sua milhagem pode variar lá. Então há gerente de projeto, e há todos os tipos de outras partes interessadas que não fazem parte da equipe de desenvolvimento do núcleo.

Na equipe de desenvolvimento que normalmente têm um par de desenvolvedores que são nítidas no desenvolvimento do lado do cliente e quantidade similar no back-end. Estes staffings também tendem a refletir o uso de recursos;) O teste é uma parte integrante do desenvolvimento, bem como os esforços do tester on-time.

As suas condições locais pode, naturalmente, variam, mas estes números são apenas para lhe dar uma ideia.

Outras dicas

  • Passo 1: negação
  • Passo 2: raiva
  • Passo 3: aceitação

O tempo de cada etapa leva é diferente para todos os membros da equipe envolvidos.

Concordo com todos os que começaram ao longo das linhas de, "Depende do projeto".

Por outro lado, eu acho que há um processo consistente que pode ser seguido; única ajustando as percentagens de esforço para coincidir com o projeto:

Normalmente, eu seguir estes princípios básicos:

  1. Descoberta - determinar o recurso / funcionalidade do sistema. A coisa mais fácil (e pior) a fazer é aceitar o que está sendo solicitado e ir com ele.
    Por exemplo, "a construção stackoverflow.com" é um pedido bastante ampla - e é realmente o errado pedido. O projeto tem que começar com "eu preciso de um local online onde os programadores podem colaborar". Com base em que uma coisa que você está tentando resolver, você pode analisar todos os detalhes que deseja - como a forma como a pergunta será respondida, perguntou, avaliado, etc. Acho este é o passo crucial mais ! produção = requisitos / especificação; 20/100 dias pode seguramente ser gasto aqui
  2. Wireframing - este é o lugar onde eu gosto de usar páginas HTML básico, paint.NET, ou papel de construção uniforme e cola para zombar de todos os aspectos da funcionalidade do site final. Eu gosto de usar papel porque é fácil de mudanças make :) Passando por este processo força-lo a considerar quase todos os aspectos da experiência do usuário e dá-lhe a flexibilidade para adicionar / remover e características ajustar suas necessidades, conforme necessário. Seu cliente tem alguma entrada para mudanças antes que você tenha cometido um monte de tempo para escrever código. Uma vantagem adicional é que você começa a usar colar :) 10/100 dias
  3. / Testing Implementação - implementação grupo I e teste juntos, porque eu acho que é míope para desenvolver um site inteiro sem testar ao longo do caminho. (Ao mesmo tempo, você ainda precisa passo 4). Esta é a parte onde a borracha bate a estrada. Se você lidou com seu cliente adequadamente nas etapas 1 e 2, você vai ser agradavelmente escrever seu código sem quaisquer alterações de última hora no escopo (ou pelo menos muito poucos). Eu tento seguir um conjunto geral de medidas para a implementação:
    • develpment dados (projeto db, design consulta, a configuração de dados de exemplo)
    • quadro local (configurar o ambiente (s); produção, dev e QA)
    • estrutura dianteira (CSS, classes padrão, estruturas de HTML padrão)
    • começar a codificação! 55/100 dias
  4. SQA - espero que você pode obter alguns usuários partes não envolvidas / fim de testar o aplicativo para fora como você vai. planos de teste precisam ser desenvolvidos para garantir que ele está claro o que deve ser de teste e os resultados desejados. Eu gosto de usar pessoas reais para testar o front-end; ferramentas automatizadas são muito bem para código módulos / backend Este é um bom momento para deixar o cliente ver as coisas progredindo - eles devem ter capacidade muito limitada para fazer alterações a este ponto. 10/100 dias
  5. Entrega / Post Production lua de mel - você construiu, testou-o, e você está pronto para implantar. Obter o código lá fora e deixe o jogo cliente. Você não deve ter muito a emenda; mas estou certo de que haverá alguns ajustes. 5/100 dias

Alguns dos isto parece idealista; mas você ficaria surpreso quão rápido você pode enviar sua aplicação quando você tem um bem-revista, especificação bem-criado.

É impossível dar uma resposta significativa a esta pergunta. As proporções não será ainda aproximadamente o mesmo de projeto para projeto. Para alguns projetos do design visual pouco importa (contanto que mais ou menos obras), mas o banco de dados é crítica e complexa. Para outros, é tudo sobre o fornecimento de uma experiência de usuário suave com muitas guloseimas Ajax e outros doces para os olhos, mas os dados subjacentes é trivialmente simples de organizar e armazenar.

Parece que você está pensando principalmente de projetos de um homem só, mas para equipes maiores do tamanho e configuração da equipe também é importante, assim como o seu processo de desenvolvimento.

nós são uma loja de desenvolvimento incomum. toda a nossa existência (pelo menos durante o horário de trabalho) é levantamento de requisitos. Os desenvolvedores são obrigados a als trabalho em todos os outros departamentos. Seja atender o telefone no suporte pós-vendas (e lutando contra o Software CRM), dirigindo uma empilhadeira no depósito (e lutando contra os terminais móveis) ou embalagem grades na estação de transporte (e lutando confundindo notas de entrega).

Quando enfrentar um novo projeto "levantamento de requisitos", geralmente era uma tarde no quadro branco, geralmente com alguém do departamento que mais usou o novo software. Havia pouco projeto inicial e um monte de re-factoring e reescrita. Nós onde muito feliz com isso e gerou cerca de 100.000 linhas de código que são bem arquitetadas e estáveis.

Mas parece que estamos acertando uma barreira complexidade agora. Isso é muito frustrante porque se mudar para processos "mais pesado" do que corta e massacra codificação resulta em uma dramática perda de produtividade.

Apenas para ser claro - você está basicamente em tempo boxe seu trabalho - que é diretamente relacional a ter um orçamento fixo (4 desenvolvedores x $ x por dia x 100 dias - assumindo que é 100 duração dos dias e não esforço de trabalho de 100 dias ). Se for esse o caso, então, em média. você gastaria:

  • 25% até o planejamento da frente, que inclui escopo, desenvolvimento de especificações, a abordagem de tecnologia, logística (computadores, servidores, espaço de trabalho), coleta de recursos.
  • desenvolvimento 50% - caso de teste (TDD) desenvolvimento, design de esquema e implementação, front-end de codificação, backend codificação, implantação
  • 15% Teste - pausa básica / atividades de correção
  • 10% sobrecarga / gestão -. Projeto de gestão, comunicação e coordenação

est muito áspera -. Muitas 'zonas' para considerar a inclusão de habilidades de recursos / maturidade, tecnologia a ser utilizada, a localização de recursos (um quarto ou em todo o país), nível de requisitos, etc. O uso de 'habilidade específica' recursos faria o planejamento mais difícil desde que você pode precisar dos recursos para executar multi-funções - uma sugestão seria para obter 3 generalistas que podem ajudá-spec / projeto / plano e um assistente de tecnologia que iria garantir a plataforma e banco de dados são configurados corretamente (chave para sucesso uma vez que você tem bom como possíveis exigências)

Isso é verdadeiramente um perguntas difíceis. Para dar uma estimativa pouco exata da proporção de tempo que você precisa aplicar para cada etapa - se dermos uma abordagem clássica de design, implementar, testar e implementar - É preciso saber a especificação e os conhecimentos dos membros do projeto. Se você pegar o livro de McConnell "Software Estimativa" (que eu recomendo), você tem um capítulo em seus dados sobre históricos e como usar isso para projetos futuros. Eu não acho que você tem dados exatos históricos de projetos anteriores - bem - eu não tenho um - embora eu sempre me lembrar de gravá-las;) Desde as menores falhas ou incertezas na fase de design são os mais cruciais ter um monte de tempo para especificar o que você quer fazer . Certifique-se de que todos entendam isso da mesma maneira e anotá-la. Para cortar uma longa história curta - Eu colocaria 50% - 75% do tempo no projeto (se 75% isso incluiria um protótipo para limpar todas as incertezas) e partes iguais na implementação e teste. Se você estiver usando TDD você misturar projeto e testar um pouco assim que você tomaria um pouco da fase de design e adicioná-lo à fase de teste.

  1. Criar uma lista de cliente precisa de 1-2 dias
    Isso depende do cliente e que eles precisam e quão bem preparados eles estão.
  2. Designers fazer ups esboço inicial de 2-3 dias
    Um pouco de ramificação acontece aqui como 2 e 3 vai acontecer simultaneamente.
  3. Programers construir qualquer funcionalidade não já na nossa um dia sistema existente - 1 mês
    Isso depende do cliente, eo que eles precisam de mais, em seguida, mais que qualquer outra coisa.
    Isso também só irá produzir código funcional.
  4. Repita os passos 2 e 3 até que o cliente está satisfeito com o sentimento geral de que temos.
    Poderia ser uma iteração poderia ser 100 (não provável se por 10 não poderíamos fazê-los felizes nós enviá-los em outro lugar.
  5. Construir projeto final de 1-5 dias
    Este é o final, nenhum erro, válido CSS / HTML / JS, tudo é cross browser ect
  6. Desenvolver funcionalidade final de 2-3 dias
    Este código é "perfeito" funciona 100%, é bastante, não há nenhum conhecido bugs, e os desenvolvedores estão felizes em enviá-lo
    Este e Passo 5 acontecem simultaneamente.
  7. Deploy 10 segundos.

Em seguida, 2 semanas, 2 meses e 6 meses depois, fazer uma revisão para garantir que não houve problemas.

Então, se você pular a revisão deste usualy leva 8-20 dias, IDK como você vai trabalhar isso em 100 dias.


Se estamos apenas a construção de um aplicativo (ou estender um) para um cliente que iria gastar 2-3 definindo EXATAMENTE O que eles precisam, em seguida, o tempo que leva para construir -lo.

Apenas encontrada esta discussão , que responde "o que" parte da minha pergunta. Pelo menos em parte.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top