Frage

For Research and Development (R&D) project, what type of software development method / model more applicable/suitable?

For example, my recent R&D project has several parameters:

  • Requirement changes based on output of research.
  • Need to maintain High Level Documentation, Detail Level Documentation and others.
  • Need to develop prototype to show visible output to investors.
War es hilfreich?

Lösung

Getting the original investment

According to my experience, the most difficult part is to get the original investment, because investors may be reluctant to give you money with no commitment from your side. What if your research leads to a dead end? What if it requires much more money than they can give you? Ordinary business projects, even Agile ones, are somehow more certain, for two reasons:

  • While the customer can't know in advance if it will cost $40 000 or $50 000, he probably knows that it will not cost $800 000 nor $1 000. In research-oriented projects, we often have no idea whatsoever how much would it cost.

  • In business projects, if a twelve-months project is canceled after four months, there should be a “working something” which may not meet the needs of the customer, but which can still be deployed in production and bring some money in.

    In research-oriented projects, if after several months or years the project is canceled, there often will be nothing the investors will be able to use to get part of their money back.

    This is very similar to Waterfall projects: unless the project is completed, time and money is simply wasted.

Note that this is a generalization. Some R&D projects can be very specific and predictable. Another example: I'm currently working on a project which is unrelated to research, but which didn't have a precise scope at the beginning, but rather a “we'll do whatever appears to be actually valuable and will release it whenever we'll finish it” spirit. Totally acceptable for me—I'm acting as both the investor and the implementer here, but not doable when you need to attract external investors.

Tracking project progress

Once you've convinced the investors to give you money, the next thing is to track project progress in order to manage risks and give precise feedback to your investors.

Here, R&D project is not much different from business projects with no up-front requirements, so any Agile methodology should work. With short iterations, you can track your progress while not knowing exactly your final destination. The difference compared to ordinary non-research projects is that the uncertainty doesn't come from customers who are not sure what they needs are, but the research aspect of the project.

You may also want to read about evolutionary prototyping (including the comments). The difference between evolutionary prototyping and ordinary Agile is that you don't have to deliver a fully working product at each iteration. Instead, every prototype you deliver can also contain some more or less broken features.

This makes it more attractive for R&D projects where you can be stuck for long periods of time on a particular aspect of your product, and not being able to deliver anything fully functional during several iterations. Given the uncertainty of the project, you'd rather show some progress, even inconclusive, than remain silent for several months.

Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top