Planning development when academic research is involved

Posted by Another Anonymous User on Programmers See other posts from Programmers or by Another Anonymous User
Published on 2011-06-26T13:11:33Z Indexed on 2012/03/30 11:41 UTC
Read the original article Hit count: 256

Filed under:

Dear fellow programmers,

how do you do "software planning" when academic research is involved? And, on a side note, how do you convince your boss that writing software is not like building a house and it's more like writing a novel?

The gory details are below.

I am in charge of a small dev team working in a research lab. We started developing a software with the purpose of going public one day (i.e. sell and make money off that). Such software depends on, amongst other things, at least two independent research lines: that is, there are at least two Ph.D. candidates that will, hopefully, one day come out with a working implementation of what we need.

The main software depends also on other, more concrete resources that we as developers can take care of: graphics rendering, soft bodies deformation, etc.

My boss asked me to write the specifications, requirements AND a bloody GANTT chart of the entire project. Faced with the fact that I don't have a clue about the research part, and that such research is fundamental for the software, he said "make assumptions." For the clarity of the argument, he is a professor whose Ph.D. students should come up with the research we need. And he comes from a strictly engineering background: plan everything first, write down specifications and only then write down code that "it's the last part".

What I am doing now:

  1. I broke down the product in features; each 'feature' is, de facto, a separate product;
  2. Each feature is built on top of the previous one;
  3. Once a feature (A) has a working prototype the team can start working on the next feature (B), while QA for is being done for A (if money allows, more people can be brought in, etc.);
  4. Features that depend on research will come last: by then, hopefully, the research part will be completed (when is still a big question) ;

Also, I set the team to use SCRUM for the development of 'version 1.0', due in a few months. This deadline could be set based on reasonable assumptions: we listed all required features, we counted our availability, and we gave a reasonable estimate.

So my questions, again, are:

  • How do I make my boss happy while at the same time get something out the door?
  • How do I write specifications for something we -the developers- have no clue whether it's possible to do or not? (We still haven't decided which libraries to use for some tasks; we'll do so when we'll need to)
  • How do I get the requirements for that, given that there are yet no clients nor investors, just lots of interests and promises?
  • How do I get peace in the world?

I am sure at least one of my questions will be answered :)

ps: I am writing this anonymously since a potential investor might backfire if this is discovered. Hope you'll understand. However I must say I do not like this mentality of 'hiding the truth': this program will likely benefit many, and not being able to talk openly about this (with my name and my reputation attached) feels like censorship. But alas, I care more about your suggestions now.

© Programmers or respective owner

Related posts about planning