Como eu desenvolvo ?
Me intero das regras de negócio
Não consigo pensar em outro ponto de partida. Tenho que entender oque é, para só então resolver a questão da melhor forma possível.
Tento prever desdobramentos
Não, não estou treinando para adivinhar o futuro.
Não implemento estes desdobramentos logo de início. GET REAL.
Faço aos poucos, mas nem por isso deixo de planejar futuras expansões.
Pois é importante deixar a estrutura robusta e pronta para receber atualizações de novas features.
Coloco tudo no papel
Dessa forma, eu vejo o que pensei, e sou capaz de mudar antes de sair fazendo.
Estudo as tecnologias que serão empregadas
Se dentre as linguagens, técnicas, ou sei lá o que que eu tiver que usar para desenvolver este projeto, tiver alguma que eu não conheço, ou não sou “tão bom”, eu prefiro estudar ela aparte. Separado do projeto.
Não vou aprender tão bem, usando diretamente no projeto final, qnto eu aprenderia ao estudar separadamente.
“Se eu tivesse nove horas para cortar uma árvore, passaria seis horas afiando o meu machado”
– If I had nine hours to cut down a tree, I would spend six hours sharpening my axe –
Abraham Lincoln citado em “Communication in management”. Minha Fonte.
Uns três anos atrás, peguei o meu primeiro “grande projeto”. Pedi 45 dias para entregá-lo. Fiquei 30 dias estudando(sem escrever uma única linha de código), e então nos últimos 15 desenvolvi tudo. Sem pressa, sem problemas, sem dúvidas, e sem grandes dificuldades.
Resultado: está no ar até hoje, e funciona tudo muito bem, obrigado.
Entrego valor
Por menor que esse valor possa me parecer. Mais vale pouco, do que um plano gigantesco de ação, com coisas que nem eram requisitos inicialmente.
É um pouco do “não nos perdermos” no planejamento. Sim, planejar é importante, mas também é preciso fazer.
Seguindo os passos acima, chega a hora de fazer, e consequentemente, começar a entregar.
Deixar para mostrar apenas na versão final, fatalmente trará problemas que teriam sido evitados com entregas parciais.
Versão Alfa
Sim, por que não ?
Lembram-se do “entrego valor” ? O cliente quer ver. Ele quer acompanhar o desenvolvimento.
Tenho menos dor de cabeça, por conseguir ajustar as coisas no meio do caminho, do que esperar ficar tudo pronto para só então mudar complemente tudo.
Menos cobranças também. Quanto mais tempo ficarmos sem apresentar “nada”, mais ligações, emails, visitas e reuniões desnecessárias(mais enxeção de saco), o cliente fará.
Versão Beta
É o resumido. Poucas funcionalidades, mas as funcionalidades essenciais.
Se for um CMS, o básico é cadastrar páginas. Entrego isso, e envio para testes e homologação.
Se for uma Loja Virtual, o cliente não quer saber como cadastrar propriedades variáveis, mas sim colocar um produto com o preço(neste instante). E essa parte precisa funcionar bem.
Minha conclusão
Muitos pecam por não fazerem o simples, por não entregar um básico que esteja 100%.
De que adianta multicategorias, ou nuvem de tags se o cadastro inicial tem bugs ?
Você não precisa começar com MAIS que seu concorrente. Porém julgo ser um ótimo diferencial se necessário for MELHOR. Mais simples, mais rápido, que realmente funcione..
Eu sempre faço tudo oque está acima ?
Lógico que não. Alguns projetos são menores, às vezes é apenas um recorte de layout que já estou bem acostumado a fazer. Porém tenho certeza de que alguns dos passos eu cumpro.
E enquanto escrevia este texto, me dei conta de que os mesmos passos podem ser aplicados a praticamente tudo.
Desde o desenho do layout, passando pelo recorte html+css, modelagem do banco de dados, e construção do backend.
É isso. E você ? como vc desenvolve ?(seja lá oque for)