Terminology Explained – Difference Between Development and R&D

researchterminology

I was asked by a colleague to explain clearly the difference between ordinary development and research and development (R&D) and was unable to do it. After reading Wikipedia, I still don't have the precise answer.

According to Wikipedia (slightly modified):

There are two primary models:

  • In one model, the primary function is to develop new products;

  • in the other model, the primary function is to discover and create new knowledge about scientific and technological topics for the purpose of uncovering and enabling development of valuable new products, processes, and services.

The first model is confusing. Does it mean that development (not R&D) consists exclusively in adding new features to a product, solving bugs and doing maintenance? What if something which was previously developed as a new feature becomes a separate product?

The second model is less confusing, but still, how to qualify whether something is new knowledge or existent knowledge which is just rediscovered?

Later, Wikipedia adds that ordinary development is different from R&D because of its:

nearly immediate profit or immediate improvement.

It's still not clear enough. How to qualify "nearly immediate profit"? What if a task has an immediate profit but requires heavy research? Or if it is basic but has uncertain profit, like the enforcement of a common style over the codebase?

For example, does it belong to development or R&D to:

  • Develop an engine which abstracts the access to the database, simplifying and shortening enormously the code of other applications (existent or ones which will be written in future) which should access to the database?

  • Establish a new service-oriented architecture for the entire organization of company resources, in order to move from a bunch of separate and autonomous applications to a set of well-organized, interconnected web services, like what is used by Amazon?

  • Design a new communication protocol to allow faster replication of data between two data centers of the company?

  • Conceive a new type of software testing while working on a specific product, knowing that this type of testing will improve/simplify the testing process?

  • Prove that Functional programming is more appropriate than OOP for a specific application, based on evidence, logic and previous experience?

  • Enhance the existent application by adding gestures on tactile screens, after doing studies and testing that shows that those gestures improve the productivity of the users by a ratio of at least 1.4 for a precise set of tasks?

  • Find a way to strongly enhance the Power usage effectiveness (PUE) of a data center?

  • Create a Domain-Specific Language (DSL)?

In short, how could I determine whether I'm doing R&D while working on something?

Best Answer

Great Question.

It is important to distinguish between 'Development' and 'R&D.'

  • Point 1

R&D = experimenting with ideas/technology that may never actually become a product.

Software Development = working on a product/service desired by a real customer.

  • Point 2

R&D is all about developing new solutions for a specific problem domain. The end result of this endeavor is something that I call "research toys".

To be a software product, the research toy has to be completely re-implemented. Failure to do so will result in a product that appeals to an increasingly elite and erudite user base. The problem here is that this elite and erudite user base typically has no money to spend.

To be a successful, the software product must be a faithful re-implementation of the research toy, accessible and loved by the commodity user. To be truely remarkable, the software product must simultaneously appeal to the elite and erudite user.

  • Point 3

Research implies scholarly or scientific inquiry and tends to be aimed at the greater good of an industry or society at large. Product development has different motivations and outcomes: it is driven by the potential for profit. The state of product development is healthy. The state of lighting research is not.

We need a collective commitment to the greater good to answer such questions. But this is not just philanthropy; the answer would address a practical goal. Light sources that are spectrally tuned to the visual system will be more sustainable. They will use less energy by generating their output in regions of the spectrum where the visual system responds most strongly, resulting in better seeing for building users. This example reinforces the difference between research and product development.

  • Point 4

All development of new products to be R&D. I think some of you are confusing pure, abstract science with R&D. They aren't the same. R&D can be very product oriented. Scientists may be looking for a vaccine to cure AIDs. That is a very specific task to create a product to sell and it is certainly R&D and not just guys sitting around messing about with whatever they feel like.

  • Point 5

R&D in the technical world = finding ways to do something interesting or important, using known techniques and technology as a starting point.

Software development = finding ways to do something interesting or important, using known techniques and technology as a starting point.

  • Point 6

Virtually all software development is the D part of R&D. Some times, there are very little R in Software 'R&D'. Some times, there are pretty large R in Software 'R&D'.

It depends on several measurement. For example,

Managing software development for various sized companies, R&D takes on different meanings depending on the size of the company, customer base, etc.

In a small software company, with only a hand full of employees, the line between R&D software and Production software is usually very small. What one day is a software R&D project, may the next day be shipping as production software to customers.

As software companies grow, and they have one or more production software lines, they tend to create greater separation between R&D software projects and Production software products (for obvious reasons). This R&D gap is typically created to create greater diversification in their software products for tomorrow, while allowing the production software development to continue to produce today.

This is not to say that the production software products won't get innovative new features. The production software developers are typically just as "sharp" as the R&D developers. In fact, at one company, we had an enrichment program that allowed production software developers to rotate in and out of R&D projects. This not only added fresh brain power to the R&D teams, but in many cases, the production developers came back with new ideas on producing better production level software.

  • Point 7

D = "knowing where you want to be at the end", and R is because "at the beginning of the project, you don't know what will be required to get there"

  • Point 8

R&D are the lucky folks who get to do anything they want without accountability.

Good research/resource on this topic :