Jaka jest różnica między rozwojem a badaniami i rozwojem?

39

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ś?

Arseni Mourzenko
źródło
21
Erm ... R&D obejmuje badania?
Robert Harvey,

Odpowiedzi:

37

Świetne pytanie.

Ważne jest, aby odróżnić „rozwój” od „badań i rozwoju”.

  • Punkt 1

R&D = eksperymentowanie z pomysłami / technologią, która może nigdy nie stać się produktem.

Rozwój oprogramowania = praca nad produktem / usługą pożądaną przez prawdziwego klienta.

  • Punkt 2

Prace badawczo-rozwojowe polegają na opracowywaniu nowych rozwiązań dla określonej dziedziny problemowej. Efektem końcowym tego przedsięwzięcia jest coś, co nazywam „zabawkami badawczymi”.

Aby być produktem programowym, zabawka badawcza musi zostać całkowicie ponownie wdrożona. Nieprzestrzeganie tego spowoduje, że produkt spodoba się coraz bardziej elitarnej i erudycyjnej bazie użytkowników. Problem polega na tym, że ta elitarna i erudycyjna baza użytkowników zazwyczaj nie ma pieniędzy do wydania.

Aby odnieść sukces, oprogramowanie musi być wiernym ponownym wdrożeniem zabawki badawczej, dostępnym i kochanym przez użytkownika towaru. Aby być naprawdę godnym uwagi, oprogramowanie musi jednocześnie spodobać się elitarnemu i erudycyjnemu użytkownikowi.

  • Punkt 3

Badania implikują badania naukowe lub naukowe i zwykle mają na celu dobro przemysłu lub całego społeczeństwa. Rozwój produktu ma różne motywacje i wyniki: jest napędzany potencjałem zysku. Stan rozwoju produktu jest zdrowy. Stan badań nad oświetleniem nie jest.

Potrzebujemy zbiorowego zaangażowania na rzecz większego dobra, aby odpowiedzieć na takie pytania. Ale to nie jest tylko filantropia; odpowiedź dotyczyłaby praktycznego celu. Źródła światła, które są spektralnie dostrojone do systemu wizualnego, będą bardziej zrównoważone. Zużyją mniej energii, generując swoją moc wyjściową w regionach widma, w których system wizualny reaguje najsilniej, dzięki czemu użytkownicy budynków lepiej widzą. Ten przykład podkreśla różnicę między badaniami a rozwojem produktu.

  • Punkt 4

Cały rozwój nowych produktów do badań i rozwoju. Myślę, że niektórzy z was mylą czystą, abstrakcyjną naukę z badaniami i rozwojem. Nie są takie same. Badania i rozwój mogą być bardzo zorientowane na produkt. Naukowcy mogą szukać szczepionki do leczenia AID. Jest to bardzo specyficzne zadanie, aby stworzyć produkt do sprzedaży, a na pewno są to prace badawczo-rozwojowe, a nie tylko faceci siedzący i bawiący się czymkolwiek, na co mają ochotę.

  • Pkt 5

Badania i rozwój w świecie techniki = znalezienie sposobu na zrobienie czegoś interesującego lub ważnego, wykorzystując znane techniki i technologie jako punkt wyjścia.

Rozwój oprogramowania = znalezienie sposobu na zrobienie czegoś interesującego lub ważnego, wykorzystując znane techniki i technologie jako punkt wyjścia.

  • Punkt 6

Praktycznie całe oprogramowanie jest częścią D R&D. Czasami jest bardzo mało R w „R&D” oprogramowania. Czasami istnieją dość duże R w dziale „R&D” oprogramowania.

To zależy od kilku pomiarów. Na przykład,

Zarządzanie rozwojem oprogramowania dla firm różnej wielkości, R&D nabiera różnych znaczeń w zależności od wielkości firmy, bazy klientów itp.

W małej firmie programistycznej, która zatrudnia jedynie pracowników, granica między oprogramowaniem badawczo-rozwojowym a oprogramowaniem produkcyjnym jest zwykle bardzo mała. To, co jednego dnia jest projektem badawczo-rozwojowym, może następnego dnia być dostarczane jako oprogramowanie produkcyjne do klientów.

Gdy firmy produkujące oprogramowanie rozwijają się i mają jedną lub więcej linii oprogramowania produkcyjnego, mają tendencję do tworzenia większej separacji między projektami badawczo-rozwojowymi a produktami oprogramowania produkcyjnego (z oczywistych powodów). Luka badawczo-rozwojowa powstaje zazwyczaj w celu zwiększenia dywersyfikacji oprogramowania na jutro, jednocześnie umożliwiając rozwój oprogramowania produkcyjnego do dziś.

Nie oznacza to, że oprogramowanie produkcyjne nie otrzyma nowych innowacyjnych funkcji. Twórcy oprogramowania produkcyjnego są zazwyczaj tak samo „ostrzy” jak deweloperzy R&D. W rzeczywistości w jednej firmie mieliśmy program wzbogacający, który pozwalał twórcom oprogramowania produkcyjnego włączać i wyłączać projekty badawczo-rozwojowe. To nie tylko dodało nowej mocy mózgowi zespołom badawczo-rozwojowym, ale w wielu przypadkach programiści produkcji wrócili z nowymi pomysłami na tworzenie oprogramowania na wyższym poziomie produkcji.

  • Punkt 7

D = „wiedząc, gdzie chcesz być na końcu”, a R jest, ponieważ „na początku projektu nie wiesz, co będzie wymagane, aby się tam dostać”

  • Pkt 8

Dział badań i rozwoju to szczęściarze, którzy robią wszystko, co chcą, bez odpowiedzialności.

Dobre badania / zasoby na ten temat:

Md Mahbubur Rahman
źródło
1
Myślę, że jedyną rzeczą, której nie wypisałeś wyraźnie - Praktycznie całe tworzenie oprogramowania jest częścią D R&D. W większości „badań i rozwoju” w zakresie oprogramowania jest bardzo mało R - wszystkie przykłady w PO dotyczą rozwoju.
mattnz,
@mattnz, zgadzam się z tobą. teraz dołączyłem twój punkt do mojej odpowiedzi. Dziękuję za sugestie. :)
Md Mahbubur Rahman,
9

Różnica polega na oczekiwaniach.

  • Kiedy pracowałem w dziale badań i rozwoju, przede wszystkim oczekiwano ode mnie wyników badań .

  • Kiedy pracowałem nad programowaniem, przede wszystkim oczekiwano ode mnie działającego oprogramowania .

Nie są one całkowicie oddzielone, a pomiędzy nimi mogą znajdować się dość znaczne szare obszary. W fazie rozwoju czasami zdarzało się, że miałem przeprowadzić badania . Podobnie w jednym z projektów badawczych przydzielono mi opracowanie określonego programu.

komar
źródło
8

Jak powiedzieli inni, badania i rozwój obejmują badania. Dla mnie badania pracują nad czymś, czego nikt obecnie nie wie, jak to zrobić. Jeśli zostało to zrobione, nie są to badania, chociaż może to wymagać znacznych nakładów czasu na zbadanie istniejących rozwiązań i literatury.

O twojej liście:

  • 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?

Istnieje wiele ORM. Jeśli twój nie zrobi czegoś naprawdę innego, nie liczyłbym tego jako R & D.

  • 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?

Nie.

  • Czy zaprojektować nowy protokół komunikacyjny, aby umożliwić szybszą replikację danych między dwoma centrami danych firmy?

Jeśli poprawi się to w stosunku do znanych protokołów, rozważę te R & D.

  • 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)?

Żadna z tych rzeczy nie wydaje się obejmować badań. Aby podać inne przykłady rzeczy, które uważałbym za badania i rozwój:

  • Popraw wnioskowanie o typach w Scali, umożliwiając lepszą unifikację

  • Wymyśl nowy rodzaj optymalizacji kompilatora

  • Utwórz nową bazę danych, która różni się znacznie od istniejących - powiedzmy, że CouchDB była w momencie jej powstania

  • Opracuj działającą, użyteczną bibliotekę dla funkcjonalnego programowania reaktywnego

  • Znajdź nowy exploit w istniejącym oprogramowaniu lub protokołach

  • Wymyśl nowy algorytm kompresji

Andrea
źródło
3

Nieformalnie sposób, w jaki to zdefiniowałbym (i jak ogólnie widziałem, że jest stosowany w praktyce), przypomina:

Sformułowanie R&D jest używane do oznaczenia, że ​​nie masz pewności co do dokładnego podejścia do osiągnięcia czegoś i / lub czy można to w ogóle zrobić i jak dobrze to zadziała.

(EDYCJA: nieco zmieniona)

Zasadniczo jest to szybki, powszechny sposób stwierdzenia, że ​​przed nami znacząca niewiadoma. Próba odpowiedzi na twoje rzeczywiste pytanie zależy od tego, kto dokonuje klasyfikacji; wydaje się, że wiele z tych przedmiotów zawiera znaczący element badawczy, ale sądzę, że są osoby, które byłyby w stanie osiągnąć wiele z nich bez żadnych badań. To zależy zarówno od zadania, jak i od osoby.

Patrząc na rzeczywistą listę, osobiście klasyfikowałbym te na podstawie tego, czy zrobiłem coś podobnego w przeszłości i dlatego byłbym bardzo pewny tego, co zamierzam zrobić (a przynajmniej byłbym w stanie dać dobry ballpark szacunki).

Daniel B.
źródło
0

40 000 $ rocznie podwyżki wynagrodzenia?

W badaniach i rozwoju R czasami wykorzystuje badania do opisania rzeczy, która jest również opisywana jako rozwój technologii, w której odkrywamy, jak zrobić coś, czego nie umiemy. Być może dobrze opisane jako badania stosowane, możemy zaprojektować coś do specyfikacji, a następnie zazwyczaj próbujemy opatentować go lub w inny sposób zabezpieczyć lub wykorzystać do uzyskania przewagi konkurencyjnej.

R może również odnosić się do ryzyka, ponieważ projekty badawczo-rozwojowe często próbują połączyć zarówno odkrycie i wykorzystanie nowej technologii, jak i wykorzystanie znanych technologii. Do innych zagrożeń związanych z tym podejściem należy dzielenie uwagi, budowanie prototypów, które NIE są przeznaczone do wyrzucenia, oraz prawdopodobieństwo, że marketing zaangażuje się i potraktuje dane szacunkowe jako umowy.

R&D to termin, który może przebrać dział zajmujący się głównie rozwojem. Większość projektów technologicznych powinna łączyć badania z jakimś prototypem, ale zrobienie jednego lub kilkunastu czegoś nie wydaje mi się rozwojem, chyba że można je przekazać do produkcji.

Badania zwykle obejmują pojęcie rygorystyczne, takie jak badanie literatury lub patentów w poszukiwaniu stanu techniki, potwierdzanie twierdzeń o nowych innowacjach i wykazanie w jakiś sposób ich wartości i wyjątkowości. Badania akademickie czasami syntetyzują pomysły z literatury akademickiej, modelują niektóre zjawiska matematycznie lub opisują studium przypadku z analizą, wnioskami i propozycją do przyszłych badań.

Być może badania i rozwój są zainteresowane rzeczami, które nie zostały wcześniej zrobione, ale w krótkim okresie zostaną udostępnione jako produkt.

DeveloperDon
źródło
-4

R&D eksperymentuje z pomysłami, które mogą nigdy nie stać się produktem. W przypadku, gdy Software Development pracuje nad produktem / usługą, która ma zostać produktem.

CoolProgrammer
źródło