Planificación del desarrollo cuando la investigación académica está involucrada

11

Estimados compañeros programadores,

¿Cómo se hace "planificación de software" cuando se trata de investigación académica? Y, en una nota al margen, ¿cómo convence a su jefe de que escribir software no es como construir una casa y es más como escribir una novela ?

Los detalles sangrientos están a continuación.

Estoy a cargo de un pequeño equipo de desarrollo que trabaja en un laboratorio de investigación. Comenzamos a desarrollar un software con el propósito de hacer público un día (es decir, vender y ganar dinero con eso). Dicho software depende, entre otras cosas, de al menos dos líneas de investigación independientes: es decir, hay al menos dos Ph.D. candidatos que, con suerte, algún día saldrán con una implementación funcional de lo que necesitamos.

El software principal depende también de otros recursos más concretos de los que nosotros, como desarrolladores, podemos ocuparnos: representación gráfica, deformación de cuerpos blandos, etc.

Mi jefe me pidió que escribiera las especificaciones, los requisitos Y un diagrama sangriento de GANTT de todo el proyecto. Ante el hecho de que no tengo ni idea sobre la parte de investigación, y que dicha investigación es fundamental para el software, dijo "hacer suposiciones". Para la claridad del argumento, es un profesor cuyo Ph.D. los estudiantes deben presentar la investigación que necesitamos. Y proviene de un entorno estrictamente de ingeniería: planifique todo primero, escriba las especificaciones y solo luego escriba el código que "es la última parte".

Lo que estoy haciendo ahora:

  1. Desglosé el producto en características; cada "característica" es, de facto , un producto separado;
  2. Cada característica está construida sobre la anterior;
  3. Una vez que una característica (A) tiene un prototipo funcional, el equipo puede comenzar a trabajar en la siguiente característica (B), mientras que el control de calidad se realiza para A (si el dinero lo permite, se puede traer más personas, etc.);
  4. Las características que dependen de la investigación serán las últimas: para entonces, con suerte, la parte de investigación se completará ( cuando todavía es una gran pregunta);

Además, configuré al equipo para que use SCRUM para el desarrollo de la 'versión 1.0 ', que vence en unos meses. Este plazo podría establecerse en base a suposiciones razonables: enumeramos todas las características requeridas, contamos nuestra disponibilidad y proporcionamos una estimación razonable.

Entonces, mis preguntas, nuevamente, son:

  • ¿Cómo hago feliz a mi jefe y al mismo tiempo saco algo por la puerta?
  • ¿Cómo escribo especificaciones para algo que nosotros, los desarrolladores, no tenemos idea de si es posible hacer o no? (Todavía no hemos decidido qué bibliotecas usar para algunas tareas; lo haremos cuando sea necesario)
  • ¿Cómo obtengo los requisitos para eso, dado que todavía no hay clientes ni inversores, solo muchos intereses y promesas?
  • ¿Cómo consigo la paz en el mundo?

Estoy seguro de que al menos una de mis preguntas será respondida :)

PD: estoy escribiendo esto de forma anónima ya que un inversor potencial podría ser contraproducente si se descubre esto. Espero que lo entiendas. Sin embargo, debo decir que no me gusta esta mentalidad de 'ocultar la verdad': este programa probablemente beneficiará a muchos, y no poder hablar abiertamente sobre esto (con mi nombre y mi reputación adjuntos) se siente como censura. Pero, por desgracia, ahora me importan más tus sugerencias.

Otro usuario anónimo
fuente
Hablando como un ex estudiante de doctorado que trabajó durante años en lo que parecía un pozo negro de estancamiento y oscuridad, me habría emocionado (y también aterrorizado) saber que los profesionales esperaban para hacer algo útil con mi trabajo. Hubiera sido tremendamente motivador. Veo que esta pregunta se hizo hace casi un año, pero si la situación sigue siendo la misma, me interesaría saber cuánto contacto tiene con los estudiantes. ¡Puede ser útil informarles que los está apoyando!
octern

Respuestas:

6

He estado en esa posición un par de veces, y con experiencia, no puede contar con el estudiante de doctorado para realizar investigaciones que sean relevantes, y ciertamente no puede confiar en que suceda en un plazo que sea útil. A los estudiantes de doctorado se les permite ir específicamente a donde sus intereses de investigación los lleven, y puede ser extremadamente difícil estar río abajo cuando de repente se están desviando por un camino lateral que es relevante para ellos, pero no para usted. Esta es una fuente importante de riesgo para su proyecto, por lo que debe usar estrategias apropiadas de mitigación de riesgos en su plan de proyecto.

Teniendo en cuenta eso, trabaje cuando tenga que entregar (vea la subvención de investigación; está determinado por su financiamiento en lugar de cualquier otra cosa) y cuánto tiempo llevará entregar asumiendo que la investigación se entregue . Esto tomará algunas conjeturas todopoderosas, pero eso no se puede evitar; hacer esas conjeturas explícitas en la estimación del tiempo . Más adelante, gestione el riesgo manteniéndose en contacto razonablemente cercano con los estudiantes de doctorado (por ejemplo, sentado en sus sesiones de tutoría una vez al mes) para que si parece que no van a entregar lo que necesita a tiempo, puede pensar en estrategias de mitigación en detalle. Si tiene suerte, la apuesta dará sus frutos y obtendrá algo útil de la investigación. Cosas extrañas han sucedido.

Todo lo demás se derivará de saber quiénes serán sus clientes y pensar en cómo quiere que usen el producto final (y cómo lo usarán también). Si no lo sabes, no le venderás a nadie. Pero deberías saberlo, o al menos descubrirlo pronto. (Si está determinado por la parte de investigación, ¡estás en serios problemas! Los proyectos de investigación ciertamente pueden producir resultados negativos, o parcialmente negativos; sucede todo el tiempo, incluso si no siempre es tan ampliamente informado).

Como punto final, creo que es una lástima que hagas esto de forma anónima, ya que todo lo que estás haciendo es buscar asesoramiento sobre un tipo particular de gestión de proyectos. No está mencionando cuál es el tema de la investigación o quién lo está llevando a cabo o quiénes son sus colaboradores, ni sería importante para esta pregunta. La única forma en que podría ser un problema es si estaba buscando fondos que no sean de I + D antes de la investigación realizada, pero eso requeriría que revele el nivel de riesgo involucrado (¡probablemente arruinando la inversión!) O que sea muy deshonesto; Dado que planea ser honesto, no debería surgir ya que el proyecto solo debe buscar ese tipo de financiamiento una vez que los riesgos sean más seguros. (Si usted, como grupo, está siendo deshonesto con los posibles inversores, ese es un problema allí mismo y terminará en lágrimas. O demandas).

Compañeros de Donal
fuente
Donal, gracias por tu respuesta. Subes algunos buenos puntos; especialmente en gestión de riesgos. En investigación, sí, se supone que deben encontrar resultados negativos: ¡así es como se hace la investigación! Si ya sabías lo que vas a obtener, no es investigación, es publicidad. Sobre la necesidad de permanecer en el anonimato: es porque desde mi cuenta de stackexchange puedes ver en mi perfil de carrera quién soy y dónde estoy trabajando. Eso podría poner en peligro el salario futuro de mi equipo (sí, estamos buscando fondos que no sean de I + D). Si fuera solo yo, sería sincero. Pero no es mi dinero lo que les está pagando ahora, así que debo tener cuidado.
Otro usuario anónimo
1
Excelente respuesta Incluso en los tipos de desarrollo de software comercial que he realizado, hay incógnitas en las que solo tienes que hacer una suposición educada sobre las especificaciones y los horarios. Mientras todos sepan que son suposiciones y están sujetas a cambios, está bien. Una cosa que puede hacer con los artículos de investigación es que por cada número que tenga que proporcionar (fechas, dinero, etc.), adivine y proporcione un buen caso (10% de probabilidad de que vaya tan bien), esperado (50%) y valores de mayúsculas y minúsculas (90%). Además, para mitigar las incógnitas, intente tener el "Plan B" (e idealmente los planes C y D) en su bolsillo virtual.
Bob Murphy
El problema de depender de la investigación es que existe una gran posibilidad de que termines con una respuesta "negativa definitiva": que lo que quieres para el producto no solo requiere algo desconocido, sino algo que no se puede crear. O que la investigación nunca ofrece nada relevante (un riesgo real con los doctorados). El punto para obtener la gran inversión es después de que tenga una pequeña prueba de concepto en marcha, para que sepa que al menos se puede hacer y que todo lo que tiene que hacer es resolver cómo hacerlo utilizable y comercializable.
Donal Fellows
2

¿Cómo hago feliz a mi jefe y al mismo tiempo saco algo por la puerta?

Sé inteligente y haz las cosas.

¿Cómo escribo especificaciones para algo que nosotros, los desarrolladores, no tenemos idea de si es posible hacer o no? (Todavía no hemos decidido qué bibliotecas usar para algunas tareas; lo haremos cuando sea necesario)

Si no sabe con qué va a interactuar, eso es un problema. ¿Qué aportes le das a la caja mágica? ¿Qué resultados obtienes de la caja mágica? Eso también ayudará a los investigadores a definir qué es la magia.

Si su académico ha sido financiado por una subvención, entonces probablemente escribió una propuesta de investigación. Hazte con eso. Si es como cualquiera de las propuestas de subvención de investigación que he visto (y escrito), tendrá una línea de tiempo y una "especificación" de lo que están tratando de hacer.

¿Cómo obtengo los requisitos para eso, dado que todavía no hay clientes ni inversores, solo muchos intereses y promesas?

Los requisitos son los usuarios finales del algoritmo / thing-a-ma-jig. Vea si puede entrevistarlos (o clientes / clientes potenciales).

De lo contrario, come tu propia comida para perros.

¿Cómo consigo la paz en el mundo?

Fuera de contexto :-)

Peter K.
fuente
2

Creo que en la planificación del desarrollo de la investigación todo de una vez y el desarrollo de tgen realmente no funciona bien. Trabajo en un instituto de investigación, y trabajamos más usando prototipos rápidos. A menudo, el desarrollo de un prototipo arroja una idea de lo que se necesita exactamente. Al crear rápidamente un prototipo, puede obtener comentarios de su jefe y los investigadores y determinar si esto era lo que esperaban, y también ver si su enfoque funciona. Luego puede refactorizar y mejorar su código. Esto es lo que veo en la práctica en los institutos de investigación donde trabajé.

Paul Hiemstra
fuente