Planejando o desenvolvimento quando houver pesquisa acadêmica


11

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:

  1. Eu quebrei o produto em recursos; cada 'característica' é, de fato , um produto separado;
  2. Cada recurso é construído sobre o anterior;
  3. 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.);
  4. 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.


Falando como um ex-aluno de doutorado que trabalhou por anos no que parecia um poço negro de estagnação e obscuridade, eu ficaria muito animado (e também aterrorizado) ao saber que os profissionais estavam esperando esperando para fazer algo útil com o meu trabalho. Teria sido tremendamente motivador. Vejo que essa pergunta foi feita há quase um ano, mas se a situação continuar a mesma, eu estaria interessado em saber quanto contato você tem com os alunos. Pode ser útil que eles saibam que você está torcendo por eles!
Oct

Respostas:


6

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.)


Donal, obrigado pela sua resposta. Você levanta alguns bons pontos; especialmente em gerenciamento de riscos. Na pesquisa, sim, eles devem encontrar resultados negativos: é assim que a pesquisa é feita! Se você já sabia o que obterá, não é pesquisa, é publicidade. Sobre a necessidade de permanecer anônimo: é porque, na minha conta stackexchange, você pode ver no meu perfil de carreira quem sou e onde estou trabalhando. Isso pode comprometer o salário futuro da minha equipe (sim, estamos buscando financiamento não relacionado à pesquisa e desenvolvimento). Se fosse apenas eu, eu seria honesto. Mas não é o meu dinheiro que está pagando agora, então devo ter cuidado.
Outro usuário anônimo

1
Excelente resposta. Mesmo nos tipos de desenvolvimento de software comercial que desenvolvi, há incógnitas em que você apenas precisa adivinhar as especificações e os cronogramas. Desde que todos saibam que essas são suposições e estão sujeitas a alterações, tudo bem. Uma coisa que você pode fazer com os itens de pesquisa é que, para cada número que você precisa fornecer (datas, dinheiro, etc.), adivinhe e forneça um bom argumento (10% de chance de que tudo corra bem), esperado (50%) e valores incorretos (90%). Além disso, para atenuar o desconhecido, tente ter o "Plano B" (e, idealmente, planeje C e D) no seu bolso virtual.
Bob Murphy

O problema de depender da pesquisa é que há uma grande chance de você ter uma resposta "definitiva negativa": que o que você deseja para o produto não exige apenas algo desconhecido, mas algo que não pode ser criado. Ou que a pesquisa nunca oferece nada relevante (risco real para os doutores). O ponto para obter o grande investimento é depois de ter uma pequena prova de conceito, para que você saiba pelo menos que isso pode ser feito e que tudo o que você precisa fazer é resolver como torná-lo utilizável e comercializável.
Donal Fellows

2

Como faço para meu chefe feliz e ao mesmo tempo obter algo pela porta?

Seja esperto e faça as coisas.

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)

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.

Como obtenho os requisitos para isso, já que ainda não existem clientes nem investidores, apenas muitos interesses e promessas?

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.

Como obtenho paz no mundo?

Fora do assunto :-)


2

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.