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:
- J'ai décomposé le produit en fonctionnalités; chaque «caractéristique» est, de facto , un produit distinct;
- Chaque fonctionnalité est intégrée à la précédente;
- 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.);
- 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.
Réponses:
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.)
la source
Soyez intelligent et faites avancer les choses.
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.
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.
Hors sujet :-)
la source
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.
la source