Mi è stato chiesto da un collega di spiegare chiaramente la differenza tra sviluppo ordinario e ricerca e sviluppo (R & D) e non sono stato in grado di farlo. Dopo aver letto Wikipedia, non ho ancora la risposta precisa.
Secondo Wikipedia (leggermente modificato):
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.
Il primo modello è confuso. Significa che lo sviluppo (non R & D) consiste esclusivamente nell'aggiunta di nuove funzionalità a un prodotto, nella risoluzione di bug e nella manutenzione? Cosa succede se qualcosa che è stato precedentemente sviluppato come una nuova funzionalità diventa un prodotto separato?
Il secondo modello è meno confuso, ma ancora, come qualificare se qualcosa è nuova conoscenza o conoscenza esistente che viene appena riscoperta?
Successivamente, Wikipedia aggiunge che lo sviluppo ordinario è diverso da R & D a causa del suo:
nearly immediate profit or immediate improvement.
Non è ancora abbastanza chiaro. Come qualificare il "profitto quasi immediato"? Cosa succede se un'attività ha un profitto immediato ma richiede una ricerca intensa? O se è di base ma ha un profitto incerto, come l'applicazione di uno stile comune sulla base di codice?
Ad esempio, appartiene allo sviluppo o R & D a:
-
Sviluppa un motore che astrae l'accesso al database, semplificando e abbreviando enormemente il codice di altre applicazioni (esistenti o future che saranno scritte) che dovrebbero accedere al database?
-
Stabilire una nuova architettura orientata ai servizi per l'intera organizzazione delle risorse aziendali, al fine di passare da un gruppo di applicazioni separate e autonome a un insieme di servizi web ben organizzati e interconnessi, come quello usato da Amazon?
-
Progettare un nuovo protocollo di comunicazione per consentire una più rapida replica dei dati tra due data center dell'azienda?
-
Concepire un nuovo tipo di test del software mentre si lavora su un prodotto specifico, sapendo che questo tipo di test migliorerà / semplificherà il processo di test?
-
Dimostra che la programmazione funzionale è più appropriata di OOP per un'applicazione specifica, basata su prove, logica ed esperienza precedente?
-
Migliorare l'applicazione esistente aggiungendo gesti su schermi tattili, dopo aver fatto studi e test che dimostrano che quei gesti migliorano la produttività degli utenti di un rapporto di almeno 1,4 per un insieme preciso di compiti?
-
Trova un modo per migliorare strongmente l'efficacia dell'uso dell'energia (PUE) di un data center?
-
Crea una lingua specifica per il dominio (DSL)?
In breve, come potrei determinare se sto facendo R & D mentre lavoro su qualcosa?