Kolega poprosił mnie o jasne wyjaśnienie różnicy między zwykłym rozwojem a badaniami i rozwojem (R&D) i nie byłem w stanie tego zrobić. Po przeczytaniu Wikipedii wciąż nie mam dokładnej odpowiedzi.
Według Wikipedii (nieznacznie zmodyfikowana):
Istnieją dwa podstawowe modele:
W jednym modelu podstawową funkcją jest opracowywanie nowych produktów ;
w drugim modelu podstawową funkcją jest odkrywanie i tworzenie nowej wiedzy na tematy naukowe i technologiczne w celu odkrycia i umożliwienia rozwoju cennych nowych produktów, procesów i usług.
Pierwszy model jest mylący. Czy to oznacza, że rozwój (nie badania i rozwój) polega wyłącznie na dodawaniu nowych funkcji do produktu, rozwiązywaniu błędów i przeprowadzaniu konserwacji? Co jeśli coś, co zostało wcześniej opracowane jako nowa funkcja, stanie się oddzielnym produktem?
Drugi model jest mniej mylący, ale w jaki sposób można określić, czy coś jest nową wiedzą, czy wiedzą istniejącą, która została dopiero odkryta?
Później Wikipedia dodaje, że zwykły rozwój różni się od badań i rozwoju ze względu na:
prawie natychmiastowy zysk lub natychmiastowa poprawa.
To wciąż nie jest wystarczająco jasne. Jak zakwalifikować „prawie natychmiastowy zysk”? Co jeśli zadanie ma natychmiastowy zysk, ale wymaga intensywnych badań? A jeśli jest to podstawowy, ale ma niepewny zysk, na przykład egzekwowanie wspólnego stylu nad bazą kodów?
Na przykład, czy należy do działu rozwoju lub badań i rozwoju w celu:
Opracować silnik, który wyodrębnia dostęp do bazy danych, znacznie upraszczając i znacznie skracając kod innych aplikacji (istniejących lub takich, które zostaną napisane w przyszłości), które powinny mieć dostęp do bazy danych?
Ustanowić nową architekturę zorientowaną na usługi dla całej organizacji zasobów firmy, aby przejść z szeregu osobnych i autonomicznych aplikacji do zestawu dobrze zorganizowanych, połączonych ze sobą usług internetowych, takich jak to, z czego korzysta Amazon?
Czy zaprojektować nowy protokół komunikacyjny, aby umożliwić szybszą replikację danych między dwoma centrami danych firmy?
Pomyśl o nowym typie testowania oprogramowania podczas pracy nad konkretnym produktem, wiedząc, że ten rodzaj testowania usprawni / uprości proces testowania?
Udowodnić, że programowanie funkcjonalne jest bardziej odpowiednie niż OOP dla konkretnej aplikacji, na podstawie dowodów, logiki i wcześniejszych doświadczeń?
Udoskonalić istniejącą aplikację, dodając gesty na ekranach dotykowych, po przeprowadzeniu badań i testów, które pokazują, że gesty te poprawiają wydajność użytkowników o współczynnik co najmniej 1,4 dla precyzyjnego zestawu zadań?
Znaleźć sposób na znaczne zwiększenie efektywności zużycia energii (PUE) w centrum danych?
Utworzyć język specyficzny dla domeny (DSL)?
Krótko mówiąc, jak mogę ustalić, czy pracuję nad badaniami i rozwojem, pracując nad czymś?