Planification du développement lorsque la recherche universitaire est impliquée


11

Chers collègues programmeurs,

comment faites-vous la "planification de logiciels" lorsque la recherche universitaire est impliquée? Et, en passant, comment pouvez-vous convaincre votre patron qu'écrire un logiciel n'est pas comme construire une maison et que c'est plus comme écrire un roman ?

Les détails sanglants sont ci-dessous.

Je suis en charge d'une petite équipe de développement travaillant dans un laboratoire de recherche. Nous avons commencé à développer un logiciel dans le but de rendre public un jour (c'est-à-dire vendre et gagner de l'argent). Un tel logiciel dépend, entre autres, d'au moins deux lignes de recherche indépendantes: c'est-à-dire qu'il y a au moins deux doctorats. des candidats qui, espérons-le, sortiront un jour avec une mise en œuvre fonctionnelle de nos besoins.

Le logiciel principal dépend également d'autres ressources plus concrètes dont nous, développeurs, pouvons nous occuper: rendu graphique, déformation des corps mous, etc.

Mon patron m'a demandé d'écrire les spécifications, les exigences ET un diagramme de GANTT sanglant de l'ensemble du projet. Face au fait que je n'ai pas la moindre idée de la partie recherche, et que cette recherche est fondamentale pour le logiciel, il a dit "faites des hypothèses". Pour la clarté de l'argument, il est un professeur dont le doctorat les étudiants devraient trouver la recherche dont nous avons besoin. Et il vient d'un milieu strictement technique: planifier tout d'abord, écrire les spécifications et ensuite seulement écrire le code "c'est la dernière partie".

Ce que je fais maintenant:

  1. J'ai décomposé le produit en fonctionnalités; chaque «caractéristique» est, de facto , un produit distinct;
  2. Chaque fonctionnalité est intégrée à la précédente;
  3. Une fois qu'une fonctionnalité (A) a un prototype fonctionnel, l'équipe peut commencer à travailler sur la fonctionnalité suivante (B), tandis que le contrôle qualité est effectué pour A (si l'argent le permet, plus de personnes peuvent être amenées, etc.);
  4. Les fonctionnalités qui dépendent de la recherche viendront en dernier: d'ici là, espérons-le, la partie recherche sera terminée ( quand c'est toujours une grande question);

De plus, j'ai configuré l'équipe pour utiliser SCRUM pour le développement de la 'version 1.0 ', prévue dans quelques mois. Ce délai pourrait être fixé sur la base d'hypothèses raisonnables: nous avons énuméré toutes les fonctionnalités requises, nous avons compté notre disponibilité et nous avons donné une estimation raisonnable.

Donc, mes questions, encore une fois, sont:

  • Comment puis-je faire plaisir à mon patron tout en sortant quelque chose par la porte?
  • Comment puis-je écrire des spécifications pour quelque chose que nous, les développeurs, n'avons aucune idée s'il est possible de le faire ou non? (Nous n'avons toujours pas décidé quelles bibliothèques utiliser pour certaines tâches; nous le ferons lorsque nous en aurons besoin)
  • Comment puis-je obtenir les exigences pour cela, étant donné qu'il n'y a pas encore de clients ni d'investisseurs, juste beaucoup d'intérêts et de promesses?
  • Comment obtenir la paix dans le monde?

Je suis sûr qu'au moins une de mes questions recevra une réponse :)

ps: J'écris ceci de manière anonyme car un investisseur potentiel pourrait se retourner contre lui si cela était découvert. J'espère que vous comprendrez. Cependant, je dois dire que je n'aime pas cette mentalité de `` cacher la vérité '': ce programme profitera probablement à beaucoup, et ne pas pouvoir en parler ouvertement (avec mon nom et ma réputation attachés) ressemble à de la censure. Mais hélas, je me soucie plus de vos suggestions maintenant.


S'exprimant en tant qu'ancien doctorant qui a travaillé pendant des années dans ce qui ressemblait à un puits noir de stagnation et d'obscurité, j'aurais été assez excité (et aussi terrifié) de savoir que les professionnels attendaient de faire quelque chose d'utile avec mon travail. Cela aurait été extrêmement motivant. Je vois que cette question a été posée il y a presque un an, mais si la situation reste la même, alors je serais intéressé de savoir combien de contacts vous avez avec les étudiants. Il pourrait être utile de leur faire savoir que vous enracinez pour eux!
octern

Réponses:


6

J'ai occupé ce poste à quelques reprises et, avec l'expérience, vous ne pouvez pas compter sur le doctorant pour effectuer des recherches pertinentes, et vous ne pouvez certainement pas compter sur le fait qu'il se déroule sur une échelle de temps utile. Les doctorants sont spécifiquement autorisés à aller là où leurs intérêts de recherche les mènent, et il peut être extrêmement difficile d'être en aval lorsqu'ils se retrouvent soudainement sur une voie secondaire qui les concerne, mais pas vous. Ceci est une source majeure de risques pour votre projet, vous devez donc utiliser des stratégies d'atténuation des risques appropriées dans votre plan de projet.

Compte tenu de cela, déterminez quand vous devez livrer (voir la subvention de recherche; elle est déterminée par votre financement plutôt que toute autre chose) et combien de temps il faudra pour livrer en supposant que la recherche est livrée . Cela prendra des suppositions tout-puissant, mais cela ne peut pas être aidé; rendre ces suppositions explicites dans l'estimation du temps . Plus tard, gérez le risque en restant en contact raisonnablement étroit avec les doctorants (par exemple, en assistant à leurs sessions de tutorat une fois par mois) afin que, si vous ne parvenez pas à fournir ce dont vous avez besoin à temps, vous pouvez pensez aux stratégies d'atténuation en détail. Si vous êtes chanceux, le pari sera payant et vous obtiendrez quelque chose d'utile de la recherche. Des choses étranges se sont produites.

Tout le reste découlera de la connaissance de vos clients et de la façon dont vous souhaitez qu'ils utilisent le produit final (et comment ils l'utiliseront également). Si vous ne le savez pas, vous ne vendrez à personne. Mais vous devez le savoir, ou du moins le découvrir bientôt. (Si cela est déterminé par la partie recherche, vous êtes en grande difficulté! Les projets de recherche peuvent très certainement produire des résultats négatifs - ou partiellement négatifs; cela arrive tout le temps, même si ce n'est pas toujours si largement rapporté.)

Enfin, je pense que c'est une honte terrible que vous le fassiez de manière anonyme, car tout ce que vous faites est de demander des conseils sur un type particulier de gestion de projet. Vous ne mentionnez pas quel est le sujet de la recherche, qui entreprend ou qui sont vos collaborateurs, et cela n'aurait aucune importance pour cette question. La seule façon dont cela pourrait être un problème est que vous recherchiez un financement non lié à la recherche et au développement avant la recherche, mais cela nécessiterait soit que vous divulguiez le niveau de risque impliqué (probablement un coup de frein à l'investissement!) Soit que vous soyez très malhonnête; puisque vous prévoyez d'être honnête, cela ne devrait pas se produire car le projet ne devrait rechercher ce type de financement que lorsque les risques sont plus certains. (Si vous - en tant que groupe - êtes malhonnête avec les investisseurs potentiels, c'est un problème ici et cela se terminera en larmes. Ou des poursuites judiciaires.)


Donal, merci pour ta réponse. Vous soulevez quelques bons points; en particulier sur la gestion des risques. En recherche, oui, ils sont censés trouver des résultats négatifs: c'est comme ça qu'on fait la recherche! Si vous saviez déjà ce que vous allez obtenir, ce n'est pas de la recherche, c'est de la publicité. Sur la nécessité de rester anonyme: c'est parce que depuis mon compte stackexchange vous pouvez voir sur mon profil de carrière qui je suis et où je travaille. Cela pourrait compromettre le futur salaire de mon équipe (oui, nous recherchons des financements non liés à la R&D). Si c'était juste moi, je serais honnête. Mais ce n'est pas mon argent qui les paie maintenant, alors je dois faire attention.
Un autre utilisateur anonyme

1
Excellente réponse. Même dans les types de développement de logiciels commerciaux que j'ai faits, il y a des inconnues où il suffit de faire une supposition éclairée des spécifications et des calendriers. Tant que tout le monde sait que ce sont des suppositions et susceptibles de changer, ça va. Une chose que vous pouvez faire avec les éléments de recherche est que, pour chaque numéro que vous devez fournir (dates, argent, etc.), devinez et fournissez un bon cas (10% de chance que ça se passe aussi bien), attendu (50%) et les valeurs de mauvais cas (90%). Aussi, pour atténuer les inconnues, essayez d'avoir "Plan B" (et idéalement plans C et D) dans votre poche arrière virtuelle.
Bob Murphy

Le problème lié à la recherche est qu'il y a de fortes chances que vous vous retrouviez avec une réponse «définitivement négative»: que ce que vous voulez pour le produit ne nécessite pas seulement quelque chose d'inconnu, mais quelque chose qui ne peut pas être créé. Ou que la recherche n'apporte jamais rien de pertinent du tout (un vrai risque avec les docteurs). Le point pour obtenir le gros investissement est après avoir obtenu une petite preuve de concept, afin que vous sachiez au moins que cela peut être fait et que tout ce que vous avez à faire est de déterminer comment le rendre utilisable et commercialisable.
Donal Fellows

2

Comment puis-je faire plaisir à mon patron tout en sortant quelque chose par la porte?

Soyez intelligent et faites avancer les choses.

Comment puis-je écrire des spécifications pour quelque chose que nous, les développeurs, n'avons aucune idée s'il est possible de le faire ou non? (Nous n'avons toujours pas décidé quelles bibliothèques utiliser pour certaines tâches; nous le ferons lorsque nous en aurons besoin)

Si vous ne savez pas avec quoi vous allez vous connecter, c'est un problème. Quelles entrées donnez-vous à la boîte magique? Quelles sorties obtenez-vous de la boîte magique? Cela aidera également les chercheurs à définir ce qu'est la magie.

Si votre universitaire a été financé par une subvention, il a probablement rédigé une proposition de recherche. Attrapez ça. Si c'est comme n'importe quelle proposition de subvention de recherche que j'ai vue (et écrite), elle aura un calendrier et une "spécification" de ce qu'ils essaient de faire.

Comment puis-je obtenir les exigences pour cela, étant donné qu'il n'y a pas encore de clients ni d'investisseurs, juste beaucoup d'intérêts et de promesses?

Les exigences sont ce que les utilisateurs finaux de l'algorithme / chose-a-ma-jig. Voyez si vous pouvez les interviewer (ou des clients / clients potentiels).

Sinon, mangez votre propre nourriture pour chien.

Comment obtenir la paix dans le monde?

Hors sujet :-)


2

Je pense que dans la planification du développement de la recherche, les choses en une seule fois et le développement tgen ne fonctionnent pas vraiment bien. Je travaille dans un institut de recherche et nous travaillons davantage en utilisant le prototypage rapide. Souvent, le développement d'un prototype donne un aperçu de ce qui est nécessaire exactement. En créant rapidement un prototype, vous pouvez obtenir des commentaires de votre patron et des chercheurs et déterminer si c'était ce qu'ils attendaient, et également voir si votre approche fonctionne. Ensuite, vous pouvez refactoriser et améliorer votre code. C'est ce que je vois en pratique dans les instituts de recherche où je travaillais.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.