ti-enxame.com

5 coisas antes de iniciar um projeto?

Quais são as 5 primeiras coisas que você faz antes de iniciar um novo projeto?

Você sempre passa um dia pesquisando novos frameworks? Ou, usando produtos semelhantes ou concorrentes?

8
rjstelling

Isso depende muito do projeto. Este é um projeto que estou começando com a intenção de vender ou um projeto para um cliente específico? Além disso, o que constitui "começar"? Isso é antes ou depois da coleta de requisitos? Uma lista aproximada, porém:

  1. Obtenha um contexto para o projeto. Ou seja, descubra o que seu cliente ou usuário potencial está tentando realizar e por quê. Se você está construindo um sistema de registro de hotel, o que há de errado com as opções de OTS, por exemplo.

  2. Reúna os requisitos. Reúna-se com as partes interessadas. Reúna-se com os usuários. Reúna-se com qualquer pessoa que tenha uma palavra a dizer no projeto, se possível. Veja as soluções existentes que este projeto irá substituir, sejam as que o cliente está usando ou as existentes no mercado. A partir daí, escreva tudo em uma linguagem não técnica que você puder - um bom documento de solicitação deve descrever o que deve ser feito, mas não como fazê-lo. Em seguida, discuta esse documento com o cliente e repita até que ele concorde com ele. Esta etapa pode ser menos formal para projetos menores (possivelmente até mesmo totalmente verbal).

  3. Comece a tomar decisões técnicas. Escolha as linguagens, frameworks, ORMs, bancos de dados, etc. que melhor resolvam o problema, seja isso signifique se agarrar a algo que você conhece ou aprender algo novo.

  4. Analise os riscos para este projeto. Se este for um contrato do governo, você provavelmente deseja um relatório de risco com capa de couro de 100 páginas. Se for um projeto de 3 homens e 4 meses, você pode ficar bem com algumas notas em um arquivo de texto ou planilha. De qualquer maneira, você quer descobrir o que pode dar errado com o projeto, a probabilidade de acontecer, o quanto vai doer e o que você vai fazer para se preparar, lidar com isso e/ou mitigar efeitos após o fato. Um comum, por exemplo, é "Um dos desenvolvedores é atropelado por um ônibus, sai, fica doente, etc." Portanto, você pode atenuar isso programando em pares para compartilhar conhecimento, usando boas práticas de controle de origem para manter o código centralizado, etc. No geral, o processo de sentar e pensar sobre o que pode dar errado e estar preparado para as possibilidades é mais importante do que realmente escrever todos os planos de contingência.

  5. Configure a tecnologia. É o tipo de coisa que ninguém quer fazer quando você está no meio da codificação, então configure seu repo, seu servidor de compilação, seu sistema de compilação, seus wikis, seu rastreador de bug ou o que quer que você pretenda usar para seu projecto.

5
Fishtoaster

Vou apenas responder a esta parte da pergunta, porque é a única parte com a qual me identifico:

Você sempre passa um dia pesquisando novos frameworks?

Não. Tenho sérias dúvidas de que até funcione ... Como alguém poderia pesquisar novos frameworks em apenas um dia, antes de cada projeto, e aprender algo relevante? Simplesmente não acontece dessa forma. Em vez disso, passo partes do meu dia, todos os dias, pesquisando diferentes tecnologia (não apenas novos frameworks). Pesquisar não é algo que faço quando preciso. É algo que eu faço o tempo todo e que já está lá quando eu preciso. Programar é divertido, é por isso que estou neste negócio. Você não pode me impedir de experimentar coisas diferentes todos os dias.

Um escritor passa um dia coletando idéias antes de começar um novo livro?

3
val