Preparação para desenvolvimento da Web e fluxo de trabalho completo do projeto

9

Trabalho como programador solitário em projetos de desenvolvimento web (front e back-end) - concluí alguns projetos; portanto, sou bastante novo nisso; li e tentei algumas abordagens e cheguei a um caminho a seguir. sobre eles. A pergunta e minha descrição são razoavelmente longas, portanto, seja paciente.

O que estou procurando é:
1. Preparação / planejamento que normalmente seria feito antes de você começar o desenvolvimento, depois de saber exatamente o que precisa ser construído.
2. Com base na sua experiência, envie-me comentários / sugestões sobre o processo que sigo atualmente.

Os clientes com quem trabalho são geralmente startups e têm orçamentos limitados, portanto não posso cobrá-los por hora / hora (acho que é assim que as grandes empresas costumam cobrar seus clientes [por homem / hora] em projetos de desenvolvimento) e precisam trabalhe com um orçamento fixo.

Este é o processo que sigo atualmente:
1. Avalie o escopo do projeto e tente entender o que eles estão tentando realizar em algumas reuniões.
2. Dê a eles uma estimativa aproximada com uma cotação que descreva, em geral, o que eles esperam obter do projeto. Eu tento ser específico sobre os recursos, mas não dedico muito tempo a isso porque conheço o o cliente pode estar apenas pedindo cotações e não converter.
3. Sigo a sugestão de Jeff Atwood para pagamento e trabalho:

Pagamento de 15% - antecipadamente antes de iniciar qualquer trabalho
Durante esta fase, é feita uma maquete em HTML do site final, um fluxograma (com yEd ) descrevendo o site com o máximo de detalhes possível e um documento que menciona outros recursos que não estão no fluxograma . Isso é feito analisando todos os detalhes do projeto e finalizando os bits que se encaixam e outras coisas que são muito trabalhosas para implementar pelo preço acordado. Como os detalhes não são discutidos anteriormente, partes deles também são mais ou menos uma negociação sobre o que eles realmente receberão. Como este é um projeto de orçamento fixo, é necessário que haja requisitos fixos; caso contrário, meu preço continuará caindo à medida que mais recursos forem adicionados.
Um esquema de cores, estrutura de arame de design e design de PSD também é finalizado.

Pagamento de 35% - Iniciar o desenvolvimento
O projeto é fixo, começa o desenvolvimento. Eu hospedo o site no meu servidor, onde o cliente pode acessar o front-end, mas não tem acesso a nenhum código.

Pagamento de 30% - mude o código para o servidor do cliente / forneça ao cliente os detalhes de acesso ao servidor
Torne o site ativo.

Pagamento de 20% - Algumas semanas após o site ser lançado, uma vez que todos os bugs foram corrigidos.


Perguntas:
1. Depois de saber exatamente o que você vai criar, que tipo de planejamento você faria antes de começar a codificar?

2. Com base na sua experiência, que partes de todo o processo você faria de diferente?

DMin
fonte
Infelizmente, muitos clientes nunca chegam ao ponto de saber exatamente o que querem que você construa. A melhor abordagem que encontrei é fazer modelos de algumas das páginas importantes e, em seguida, sentar e começar a contar histórias de usuários. Eu deliberadamente cometi algumas das histórias obviamente erradas ao forçar o cliente a dizer: "Não, quero que funcione dessa maneira ..." Isso acaba nos levando a algo que se aproxima de uma especificação de projeto, mas invariavelmente é alterado posteriormente. Suspiro.
Peter Rowell
@ Peter, a introdução propositada de histórias de usuário falsas às vezes pode sair pela culatra e fazer com que o cliente perca a confiança em você. Essa técnica deve ser usada com cuidado.
Maple_shaft
@ maple_shaft: eu percebo isso. Quando digo "obviamente errado", quero dizer tão descaradamente Bogus® que normalmente recebo mais do que algumas risadas. Conseguir que um cliente seja totalmente investido em seu site (visão / tempo / dinheiro) é fundamental para um projeto bem-sucedido. É chocante (pelo menos para mim) quantas pessoas pensam que um novo site é algo que pode ser manuseado com ondas e ele aparecerá magicamente.
Peter Rowell
Também concordo com as maquetes, nenhuma quantidade de texto escrito fará o cliente entender o que obterá (a maioria não consegue entender ou não quer entender) - uma maquete deixará as coisas claras para o cliente, além de alguma documentação (especificação) + um contrato ou algo que diz: "Você receberá tudo isso, e exatamente isso, nada mais" ajuda. Durante o desenvolvimento, acho que pode haver alguma flexibilidade para mudar as coisas, mas se surgir algo que mostre mais trabalho do que você considerou, acho que as zombarias e os documentos de especificação precisam ser retirados e trabalho adicional significa custos adicionais também.
DMin

Respostas:

10

Ótimos pontos para discussão!

Para me qualificar - trabalho em grandes projetos de desenvolvimento web na indústria de defesa. Geralmente, temos uma equipe de 10 a 40 pessoas apoiando um único cliente, projetos nos últimos anos, e o cliente tem dinheiro e alta demanda. Portanto, a milhagem pode variar - você não deseja planejar demais!

1 Depois de saber exatamente o que você vai criar, que tipo de planejamento você faria antes de começar a codificar?

Isso ocorre depois da seção de 15%, no início dos 35%, certo?

  • Decida no servidor e idioma da web de destino
  • Decida sobre armazenamento de dados - XML, banco de dados, qual banco de dados?
  • Decida sobre as principais APIs - persistência de dados, GUI, log, injeção de dependência, etc.
  • Decida sobre os mecanismos de login - de olho nos riscos e nas informações que você está tentando proteger. Pode incluir mecanismos de pagamento.
  • Planejar uma arquitetura de alto nível e convenções de nomenclatura
  • Escolha uma ordem de lançamento de recursos, para conhecer um bom lugar para começar
  • Decida sobre uma estratégia de teste e prepare uma estrutura de teste automatizada, se aplicável
  • Configurar o sistema CM

2 Pela sua experiência, que partes de todo o processo você faria de diferente?

Eu não planejaria demais. Eu focaria meu trabalho de planejamento em fazer as coisas - como ambiente de construção, servidor, banco de testes, CM - e gastaria apenas uma pequena quantidade de tempo planejando uma arquitetura, escolhendo ferramentas e decidindo por onde começar. Sinto que, não importa o quê, a fase de planejamento amorfo sempre envolve muito mais tempo vagando em um deserto sem noção do que realmente deveria.

Se você estiver lidando com taxas fixas e clientes que não fazem exigências técnicas (como o idioma ou APIs que você usa), planejaria um item que é sempre um empurrão para você, tecnicamente. Apenas 1 e mantenha o resto igual. Penso que em todo projeto, você deseja ampliar suas habilidades, mas não quer ir tão mal que não está trabalhando em algo que conhece ou entende bem.

bethlakshmi
fonte
2

Meu maior conselho para você é ter muito cuidado com um trabalho de desenvolvimento de preço fixo. Se você não entender bem os requisitos antes do início do trabalho, uma das duas coisas poderá acontecer.

  1. As estimativas no escopo acabaram sendo inferiores e você perde a camisa.
  2. O cliente não conhece ou não pode conhecer todo o escopo antes de começar a resultar na insatisfação com o resultado final.

Para você, o número 2 é uma situação melhor, porque se eles assinarem o escopo e mudarem de ideia mais tarde, você poderá renegociar por mais dinheiro. Apenas certifique-se de entender o escopo antes de estimar e de entender o escopo e o que você entregará.

Certifique-se de que eles assinem o escopo! As empresas que insistem em um preço fixo e se recusam a assinar o escopo são CLIENTES RUINS e você não quer perder tempo com isso. Você sempre vai perder.

maple_shaft
fonte