Vamos começar contratando uma boa equipe dos profissionais certos para o seu projeto. Em um aplicativo comercial típico, você precisa contratar um desenvolvedor de banco de dados e um dba, um responsável pelo controle de qualidade, um administrador de sistemas, analistas de negócios, desenvolvedores de aplicativos, um especialista em interface do usuário e líderes de equipe no mínimo. DBA, administrador do sistema, analistas de negócios e controle de qualidade devem estar em uma cadeia de relatórios separada da equipe de desenvolvimento. O especialista em banco de dados de desenvolvimento deve reportar-se ao mesmo líder técnico que os desenvolvedores de aplicativos e o especialista em UI.
Configure o espaço do escritório. Os escritórios particulares são ótimos se você puder obtê-los (desejo-lhe muita sorte com isso), mas no mínimo você precisa de mesas, telefones, computadores, quadros brancos e duas salas de conferência dedicadas. Verifique se há um local para almoços, uma geladeira, refrigerantes, lanches e café disponíveis. Refrigerantes e café gratuitos ainda melhores.
Configure os servidores dev / qa / staging e prod para o aplicativo e os bancos de dados. Os bancos de dados nunca devem estar no mesmo servidor que os aplicativos. Dependendo do tamanho e do escopo do projeto, você pode precisar de vários servidores ou SANs, etc, para cada ambiente.
Assim que os servidores forem configurados, agende backups do sistema de arquivos, do banco de dados e dos logs de transações do banco de dados. Faça isso no primeiro dia em que tudo estiver configurado. Contrate uma empresa como a Iron Mountain para fazer backups fora do local semanalmente.
Configure um sistema de controle de origem e crie um documento descrevendo como será usado. Não se esqueça de insistir para que TODAS as alterações estruturais do banco de dados e as inserções de dados para tabelas do tipo de pesquisa estejam em scripts no controle de origem. Isso facilitará a implantação.
Compre software comercial ou faça o download de software de código aberto para o conjunto de ferramentas que você decidiu usar com licenças para todos os usuários pertinentes.
Compre máquinas para desenvolvedores que estão gritando rápido e têm dois monitores. Compre pelo menos uma máquina de usuário de teste que geme lentamente e é típica do que os usuários terão em seus desktops.
Treine seus novos desenvolvedores em como você deseja que as coisas sejam feitas. Se você tem uma equipe grande o suficiente para ter alguns desenvolvedores juniores, programe treinamento extra para eles e inclua o tempo no planejamento do projeto. Monitore os juniores de muito perto por pelo menos três meses. Monitore de perto todos os novos funcionários durante o primeiro mês. Livre-se dos desenvolvedores de madeira morta e desonestos o mais rápido possível.
Determine o que precisa ser feito em que ordem (o caminho crítico). Não atribua tarefas no final do caminho crítico até que as tarefas das quais dependem estejam concluídas.
Crie planos e requisitos de teste.
Organize regularmente reuniões de progresso agendadas com os clientes. Eles merecem saber o que você está fazendo e quais são os obstáculos. Não deixe de dizer quando as coisas vão se atrasar. Se você estiver a três semanas de um prazo e já sabe que vai perdê-lo, esse déficit não desaparecerá magicamente antes que você precise informar o cliente. Certifique-se de que o cliente saiba que requisitos adicionais significam custos e tempo adicionais e que todos os requisitos adicionados terão que ter outras tarefas descartadas ou o prazo mudará de acordo com a quantidade de horas nas novas tarefas. Deixar isso claro desde o início economizará muita dor e horas extras e excederá os custos absorvidos pelo seu grupo e não pelo cliente.
Configure um ambiente para teste de desempenho, não apenas a velocidade de um usuário, mas onde você possa testar o número esperado de usuários simultâneos. Não espere para fazer esse teste até o dia anterior ao lançamento.
No planejamento do projeto, suponha que o controle de qualidade encontre bugs e que eles levem tempo para serem corrigidos. Não programe o controle de qualidade por apenas um dia no final.
Crie dados de teste aproximadamente do tamanho que você acha que o banco de dados terá. Faça com que todos os desenvolvedores testem seu código no banco de dados desse tamanho. Não permita que os desenvolvedores desenvolvam apenas um pequeno banco de dados em suas máquinas pessoais. Essa é uma causa frequente de código que funciona bem até atingir a produção.
Planeje recompensas no orçamento. Desmotiva as pessoas quando trabalham duro por meses e apenas os gerentes recebem bônus. Diga também obrigado com frequência e por escrito.
Pode ser necessário um sistema de gerenciamento de projetos ou, pelo menos, configurar planilhas para rastrear o que você precisa rastrear. Ao fazer o planejamento do projeto, assuma no máximo seis horas por dia em seu plano. Isso ajuda a contabilizar o tempo que não será gasto no projeto, como férias, ausência por doença, feriados, reuniões de RH, análises de desempenho etc. Se você souber que o projeto está em um período de alta indisponibilidade (por exemplo, um projeto que é executado de 1 de novembro a 1 de janeiro nos EUA), pode ser necessário conceder subsídios extras para mais férias e férias. Não é justo esperar que os desenvolvedores desistam de suas férias e ninguém pode prever quando coisas como tempo de doença, dever do júri, tempo de luto etc. acontecerão. Suponha que eles acontecerão com sua equipe neste projeto.