Caros colegas programadores,
como você faz o "planejamento de software" quando a pesquisa acadêmica está envolvida? E, em uma nota lateral, como convencer seu chefe de que escrever software não é como construir uma casa e é mais como escrever um romance ?
Os detalhes sangrentos estão abaixo.
Sou responsável por uma pequena equipe de desenvolvedores trabalhando em um laboratório de pesquisa. Começamos a desenvolver um software com o objetivo de tornar público um dia (ou seja, vender e ganhar dinheiro com isso). Esse software depende, entre outras coisas, de pelo menos duas linhas de pesquisa independentes: ou seja, existem pelo menos dois doutorados. candidatos que, esperançosamente, um dia sairão com uma implementação de trabalho do que precisamos.
O software principal depende também de outros recursos mais concretos que nós, como desenvolvedores, podemos cuidar: renderização gráfica, deformação de corpos moles, etc.
Meu chefe me pediu para escrever as especificações, os requisitos E um sangrento gráfico de GANTT de todo o projeto. Diante do fato de eu não ter idéia da parte da pesquisa e de que essa pesquisa é fundamental para o software, ele disse "faça suposições". Para maior clareza do argumento, ele é um professor cujo doutorado os alunos devem apresentar a pesquisa de que precisamos. E ele vem de uma experiência estritamente de engenharia: planeje tudo primeiro, anote as especificações e só então anote o código que "é a última parte".
O que estou fazendo agora:
- Eu quebrei o produto em recursos; cada 'característica' é, de fato , um produto separado;
- Cada recurso é construído sobre o anterior;
- Depois que um recurso (A) possui um protótipo funcional, a equipe pode começar a trabalhar no próximo recurso (B), enquanto o controle de qualidade está sendo feito para A (se o dinheiro permitir, mais pessoas poderão ser trazidas, etc.);
- Os recursos que dependem da pesquisa virão por último: até lá, espero que a parte da pesquisa esteja concluída ( quando ainda é uma grande questão);
Além disso, configurei a equipe para usar o SCRUM para o desenvolvimento da 'versão 1.0 ', prevista para alguns meses. Esse prazo pode ser definido com base em suposições razoáveis: listamos todos os recursos necessários, contamos nossa disponibilidade e fizemos uma estimativa razoável.
Então, minhas perguntas são:
- Como faço para meu chefe feliz e ao mesmo tempo obter algo pela porta?
- Como escrevo especificações para algo que nós, os desenvolvedores, não temos idéia se é possível fazer ou não? (Ainda não decidimos quais bibliotecas usar para algumas tarefas; faremos isso quando precisarmos)
- Como obtenho os requisitos para isso, já que ainda não existem clientes nem investidores, apenas muitos interesses e promessas?
- Como obtenho paz no mundo?
Estou certo de que pelo menos uma das minhas perguntas será respondida :)
ps: estou escrevendo isso anonimamente, pois um possível investidor pode sair pela culatra se isso for descoberto. Espero que você entenda. No entanto, devo dizer que não gosto dessa mentalidade de 'ocultar a verdade': esse programa provavelmente beneficiará muitos, e não poder falar abertamente sobre isso (com meu nome e minha reputação anexados) parece censura. Mas, infelizmente, eu me preocupo mais com suas sugestões agora.
Respostas:
Estive nessa posição algumas vezes e, com a experiência, você não pode contar com o aluno de doutorado para realizar pesquisas relevantes, e certamente não pode confiar que isso aconteça em uma escala de tempo útil. Os estudantes de doutorado têm permissão específica para ir aonde seus interesses de pesquisa os levarem, e pode ser ultra-difícil estar a jusante quando, de repente, eles seguem uma trilha lateral que é relevante para eles, mas não para você. Esta é uma das principais fontes de risco para o seu projeto, portanto, você deve usar estratégias apropriadas de mitigação de riscos no seu plano de projeto.
Dado isso, calcule quando você precisa cumprir (consulte a bolsa de pesquisa; ela é determinada pelo seu financiamento e não por qualquer outra coisa) e quanto tempo levará para a entrega, assumindo que a pesquisa seja entregue . Isso exigirá algumas suposições onipotentes, mas isso não pode ser ajudado; torne essas suposições explícitas na estimativa de tempo . Posteriormente, gerencie o risco mantendo um contato razoavelmente próximo com os alunos de doutorado (por exemplo, participando de suas sessões tutoriais uma vez por mês) para que, se parecer que eles não vão entregar o que você precisa pontualmente, você pode pense nas estratégias de mitigação em detalhes. Se você tiver sorte, a aposta será recompensada e você obterá algo útil com a pesquisa. Coisas mais estranhas aconteceram.
Tudo o resto se seguirá, sabendo quem serão seus clientes e pensando em como você deseja que eles usem o produto eventual (e como eles realmente o usarão também). Se você não sabe disso, não venderá para ninguém. Mas você deve saber ou pelo menos descobrir em breve. (Se isso é determinado pela parte da pesquisa, você está com muitos problemas! Os projetos de pesquisa certamente podem produzir resultados negativos - ou parcialmente negativos -; isso acontece o tempo todo, mesmo que nem sempre seja tão amplamente divulgado.)
Como ponto final, acho que é uma pena que você esteja fazendo isso anonimamente, pois tudo o que você está fazendo é procurar conselhos sobre um tipo específico de gerenciamento de projetos. Você não está mencionando qual é o sujeito da pesquisa ou quem a está realizando ou quem são seus colaboradores, nem importaria para esta pergunta. A única maneira de isso ser um problema é se você estava buscando financiamento não relacionado à pesquisa e desenvolvimento antes da entrega da pesquisa, mas isso exigiria que você divulgasse o nível de risco envolvido (provavelmente destruindo o investimento!) Ou seja altamente desonesto; como você planeja ser honesto, ele não deve surgir, pois o projeto só deve buscar esse tipo de financiamento quando os riscos forem mais certos. (Se você - como um grupo - está sendo desonesto com os potenciais investidores, isso é um problema e termina em lágrimas. Ou ações judiciais.)
fonte
Seja esperto e faça as coisas.
Se você não sabe com o que irá interagir, isso é um problema. Que entradas você dá à caixa mágica? Que resultados você obtém da caixa mágica? Isso também ajudará os pesquisadores a definir qual é a mágica.
Se o seu acadêmico foi financiado por uma bolsa, ele provavelmente escreveu uma proposta de pesquisa. Se apossar disso. Se for como qualquer uma das propostas de bolsas de pesquisa que eu já vi (e escrevi), ela terá uma linha do tempo e uma "especificação" do que eles estão tentando fazer.
Os requisitos são o que os usuários finais do algoritmo / coisa-a-ma-jig. Veja se você pode entrevistá-los (ou possíveis clientes / clientes).
Caso contrário, coma sua própria comida de cachorro.
Fora do assunto :-)
fonte
Eu acho que no planejamento de desenvolvimento de pesquisas de uma só vez e o desenvolvimento de tgen realmente não funciona bem. Eu trabalho em um instituto de pesquisa e trabalhamos mais usando prototipagem rápida. Muitas vezes, o desenvolvimento de um protótipo gera a percepção exata do que é necessário. Ao criar rapidamente um protótipo, você pode obter feedback de seu chefe e dos pesquisadores e determinar se era o que eles esperavam e também ver se sua abordagem funciona. Depois, você pode refatorar e melhorar seu código. É o que vejo na prática nos institutos de pesquisa em que trabalhei.
fonte