Um colega me pediu para explicar claramente a diferença entre desenvolvimento comum e pesquisa e desenvolvimento (P&D) e não consegui fazê-lo. Depois de ler a Wikipedia, ainda não tenho a resposta precisa.
Segundo a Wikipedia (ligeiramente modificado):
Existem dois modelos principais:
Em um modelo, a função principal é desenvolver novos produtos ;
no outro modelo, a função principal é descobrir e criar novos conhecimentos sobre tópicos científicos e tecnológicos com o objetivo de descobrir e permitir o desenvolvimento de novos produtos, processos e serviços valiosos.
O primeiro modelo é confuso. Isso significa que o desenvolvimento (não P&D) consiste exclusivamente em adicionar novos recursos a um produto, solucionar bugs e fazer manutenção? E se algo que foi desenvolvido anteriormente como um novo recurso se tornar um produto separado?
O segundo modelo é menos confuso, mas ainda assim, como qualificar se algo é conhecimento novo ou conhecimento existente que é apenas redescoberto?
Mais tarde, a Wikipedia acrescenta que o desenvolvimento comum é diferente de P&D, devido a:
lucro quase imediato ou melhoria imediata.
Ainda não está claro o suficiente. Como qualificar "lucro quase imediato"? E se uma tarefa tiver lucro imediato, mas exigir pesquisas pesadas? Ou se é básico, mas tem lucro incerto, como a imposição de um estilo comum sobre a base de código?
Por exemplo, ele pertence ao desenvolvimento ou P&D para:
Desenvolver um mecanismo que abstraia o acesso ao banco de dados, simplificando e encurtando enormemente o código de outros aplicativos (existentes ou que serão escritos no futuro) que devem acessar o banco de dados?
Estabeleça uma nova arquitetura orientada a serviços para toda a organização dos recursos da empresa, a fim de passar de um monte de aplicativos separados e autônomos para um conjunto de serviços Web interconectados e bem organizados, como o que é usado pela Amazon?
Projetar um novo protocolo de comunicação para permitir a replicação mais rápida de dados entre dois data centers da empresa?
Conceba um novo tipo de teste de software enquanto trabalha em um produto específico, sabendo que esse tipo de teste melhorará / simplificará o processo de teste?
Prove que a programação funcional é mais apropriada que o OOP para um aplicativo específico, com base em evidências, lógica e experiência anterior?
Aprimore o aplicativo existente adicionando gestos em telas táteis, depois de fazer estudos e testes que mostram que esses gestos melhoram a produtividade dos usuários em uma proporção de pelo menos 1,4 para um conjunto preciso de tarefas?
Encontrou uma maneira de aprimorar fortemente a eficácia do uso de energia (PUE) de um data center?
Criar uma linguagem específica de domínio (DSL)?
Em resumo, como posso determinar se estou fazendo P&D enquanto estou trabalhando em alguma coisa?
fonte
Respostas:
Ótima pergunta.
É importante distinguir entre 'Desenvolvimento' e 'P&D'.
Boa pesquisa / recurso sobre este tópico:
fonte
A diferença está nas expectativas.
Quando trabalho em pesquisa e desenvolvimento, esperava-se que eu fornecesse resultados de pesquisa .
Quando eu estava trabalhando em desenvolvimento, esperava-se que eu fornecesse software funcional .
Elas não são totalmente separadas e podem haver áreas cinzentas bastante substanciais. No desenvolvimento, às vezes acontecia que eu esperava realizar alguma pesquisa . Da mesma forma, em um dos projetos de pesquisa, fui designado para desenvolver um programa específico.
fonte
Como outros já disseram, P&D envolve pesquisa. Para mim, a pesquisa está trabalhando em algo que ninguém sabe fazer no momento. Se isso foi feito, não é uma pesquisa, embora possa exigir investimentos significativos em tempo para estudar as soluções existentes e a literatura.
Sobre sua lista:
Existem muitos ORM. A menos que o seu faça algo verdadeiramente diferente, eu não consideraria isso como pesquisa e desenvolvimento.
Não.
Se isso melhorar os protocolos conhecidos, eu consideraria essas pesquisas e desenvolvimento.
Conceba um novo tipo de teste de software enquanto trabalha em um produto específico, sabendo que esse tipo de teste melhorará / simplificará o processo de teste?
Prove que a programação funcional é mais apropriada que o OOP para um aplicativo específico, com base em evidências, lógica e experiência anterior?
Aprimore o aplicativo existente adicionando gestos em telas táteis, depois de fazer estudos e testes que mostram que esses gestos melhoram a produtividade dos usuários em uma proporção de pelo menos 1,4 para um conjunto preciso de tarefas?
Encontrou uma maneira de aprimorar fortemente a eficácia do uso de energia (PUE) de um data center?
Criar uma linguagem específica de domínio (DSL)?
Nenhuma dessas coisas parece incluir pesquisa. Para dar outros exemplos de coisas que eu consideraria P&D:
Melhore a inferência de tipo no Scala, permitindo uma melhor unificação
Inventar um novo tipo de otimização de compilador
Crie um novo banco de dados que tenha diferenças significativas em relação aos existentes - digamos, como o CouchDB era quando foi concebido
Desenvolver uma biblioteca útil e útil para programação reativa funcional
Encontre uma nova exploração em softwares ou protocolos existentes
Inventar um novo algoritmo de compactação
fonte
Informalmente, a maneira como eu o definiria (e como eu geralmente o vi usado na prática) é algo como:
A frase P&D é usada para indicar que você não tem certeza sobre a abordagem exata para alcançar algo, e / ou se isso pode ser feito, e quão bem ele funcionará.
(EDIT: reformulado ligeiramente)
Basicamente, é uma maneira rápida e comum de dizer que há um desconhecido significativo pela frente. Tentando responder sua pergunta real, depende realmente de quem está fazendo a classificação; muitos desses itens parecem incluir um componente significativo de pesquisa, mas acho que existem algumas pessoas que seriam capazes de alcançá-los sem nenhuma pesquisa. Depende da tarefa e do indivíduo.
Olhando para a lista real, eu pessoalmente os classificaria com base no fato de eu ter feito algo semelhante o suficiente no passado e, portanto, seria altamente confiante no que estou prestes a fazer (ou pelo menos, ser capaz de dar uma boa estimativa) estimativas).
fonte
$ 40.000 por ano aumento no salário?
Em P&D, o R às vezes usa pesquisas para descrever algo que também é descrito como desenvolvimento de tecnologia, onde descobrimos como fazer algo que não sabíamos fazer. Talvez bem descrito como pesquisa aplicada, podemos projetar algo a ser especificado e, em seguida, geralmente tentamos patentear ou proteger ou explorar para obter vantagem competitiva.
OR também pode se referir ao risco, porque os projetos de pesquisa e desenvolvimento geralmente tentam combinar a descoberta e a exploração de novas tecnologias e a exploração de tecnologias conhecidas. Entre outros riscos dessa abordagem, estão dividindo seu foco, criando protótipos que NÃO devem ser descartados e a probabilidade de que o marketing esteja envolvido e tratará as estimativas como contratos.
P&D é um termo que pode vestir um departamento que está principalmente envolvido no desenvolvimento. A maioria dos projetos de tecnologia deve combinar pesquisa com algum tipo de protótipo, mas fazer uma ou uma dúzia de algo não me parece desenvolvimento, a menos que possa ser entregue à manufatura.
A pesquisa geralmente inclui uma noção de rigor, como examinar a literatura ou as patentes que procuram arte anterior, afirmar reivindicações de novas inovações e demonstrar seu valor e singularidade de alguma forma. Às vezes, a pesquisa acadêmica sintetiza idéias da literatura acadêmica, modela matematicamente algum fenômeno ou relata um estudo de caso com análise, conclusões e uma proposta para estudos futuros.
Talvez a P&D esteja interessada em coisas que não foram feitas antes, mas a curto prazo serão disponibilizadas como um produto.
fonte
P&D está experimentando idéias que podem nunca se tornar um produto. Onde, o Desenvolvimento de Software está trabalhando em um produto / serviço desejado para se tornar um produto.
fonte