Коллега попросил меня четко объяснить разницу между обычной разработкой и исследованиями и разработками (R & D), и я не смог этого сделать. После прочтения Википедии у меня все еще нет точного ответа.
Согласно Википедии (слегка изменено):
Есть две основные модели:
В одной модели основная функция заключается в разработке новых продуктов ;
в другой модели основная функция заключается в обнаружении и создании новых знаний по научным и технологическим темам с целью раскрытия и обеспечения возможности разработки ценных новых продуктов, процессов и услуг.
Первая модель сбивает с толку. Означает ли это, что разработка (а не НИОКР) состоит исключительно в добавлении новых функций в продукт, устранении ошибок и обслуживании? Что если что-то, что ранее было разработано как новая функция, станет отдельным продуктом?
Вторая модель менее запутанная, но все же, как определить, является ли что-то новым знанием или существующим знанием, которое только что открыли заново?
Позже Википедия добавляет, что обычная разработка отличается от НИОКР из-за ее:
почти немедленная прибыль или немедленное улучшение.
Это все еще недостаточно ясно. Как квалифицировать «почти немедленную прибыль»? Что если задача имеет немедленную прибыль, но требует тщательного исследования? Или, если он базовый, но с неопределенной прибылью, как применение общего стиля в кодовой базе?
Например, относится ли это к разработке или НИОКР для:
Разработать механизм, который абстрагирует доступ к базе данных, значительно упрощая и сокращая код других приложений (существующих или тех, которые будут написаны в будущем), которые должны иметь доступ к базе данных?
Создать новую сервис-ориентированную архитектуру для всей организации ресурсов компании, чтобы перейти от группы отдельных и автономных приложений к набору хорошо организованных, взаимосвязанных веб-сервисов, например, что используется Amazon?
Разработать новый протокол связи, чтобы позволить более быструю репликацию данных между двумя дата-центрами компании?
Задумываете ли вы новый тип тестирования программного обеспечения при работе с конкретным продуктом, зная, что этот тип тестирования улучшит / упростит процесс тестирования?
Докажите, что функциональное программирование более подходит, чем ООП, для конкретного приложения, основываясь на фактах, логике и предыдущем опыте?
Усовершенствовать существующее приложение, добавив жесты на тактильные экраны, после проведения исследований и тестирования, которые показывают, что эти жесты повышают производительность пользователей не менее чем в 1,4 раза для точного набора задач?
Найдите способ значительно повысить эффективность использования энергии (PUE) центра обработки данных?
Создать домен-специфический язык (DSL)?
Короче говоря, как я могу определить, занимаюсь ли я исследованиями и разработками, работая над чем-то?
источник
Ответы:
Отличный вопрос
Важно различать «развитие» и «исследования и разработки».
Хорошее исследование / ресурс по этой теме:
источник
Разница в ожиданиях.
Когда я работал в отделе исследований и разработок, от меня ожидали в первую очередь результатов исследований .
Когда я работал над разработкой, я в первую очередь ожидал предоставить работающее программное обеспечение .
Они не полностью разделены, и между ними могут быть довольно существенные серые области. В процессе разработки иногда случалось, что я должен был провести какое-то исследование . Кроме того, в одном из исследовательских проектов мне было поручено разработать конкретную программу.
источник
Как уже говорили другие, исследования и разработки включают исследования. Для меня исследования - это то, что в настоящее время никто не знает, как делать. Если это было сделано, это не исследование, хотя это может потребовать значительных временных затрат на изучение существующих решений и литературы.
О вашем списке:
Многие ORM существуют. Если бы вы не сделали что-то действительно другое, я бы не считал это НИОКР.
Нет.
Если это улучшится на известных протоколах, то я бы рассмотрел этот R & D.
Задумываете ли вы новый тип тестирования программного обеспечения при работе с конкретным продуктом, зная, что этот тип тестирования улучшит / упростит процесс тестирования?
Докажите, что функциональное программирование более подходит, чем ООП, для конкретного приложения, основываясь на фактах, логике и предыдущем опыте?
Усовершенствовать существующее приложение, добавив жесты на тактильные экраны, после проведения исследований и тестирования, которые показывают, что эти жесты повышают производительность пользователей не менее чем в 1,4 раза для точного набора задач?
Найдите способ значительно повысить эффективность использования энергии (PUE) центра обработки данных?
Создать домен-специфический язык (DSL)?
Ни одна из этих вещей, кажется, не включает исследования. Чтобы привести другие примеры вещей, которые я бы рассмотрел R & D:
Улучшение вывода типов в Scala, что позволяет улучшить унификацию
Придумайте новый вид оптимизации компилятора
Создайте новую базу данных, которая имеет существенные отличия от существующих - скажем, как CouchDB, когда она была задумана
Разработка работающей, полезной библиотеки для функционально-реактивного программирования
Найти новый эксплойт в существующем программном обеспечении или протоколах
Изобретите новый алгоритм сжатия
источник
Неформально, то, как я бы это определил (и как я обычно это видел на практике), выглядит примерно так:
Фраза «НИОКР» используется для обозначения того, что вы не уверены в точном подходе к достижению чего-либо и / или даже в том случае, если это возможно, и в том, насколько хорошо это будет работать.
(РЕДАКТИРОВАТЬ: перефразировано немного)
По сути, это быстрый, общий способ сказать, что впереди значительное неизвестное. Попытка ответить на ваш фактический вопрос тогда действительно зависит от того, кто выполняет классификацию; кажется, что многие из этих предметов включают в себя значительный исследовательский компонент, но я думаю, что есть люди, которые смогут достичь многих из них без каких-либо исследований. Это зависит как от задачи, так и от личности.
Глядя на фактический список, я лично классифицировал бы те, которые основывались на том, делал ли я что-то достаточно похожее в прошлом, и поэтому был бы очень уверен в том, что я собираюсь сделать (или, по крайней мере, смогу дать хороший пример По оценкам).
источник
40 000 долларов в год на зарплату?
В исследованиях и разработках исследователь иногда использует исследования, чтобы описать то, что также называют технологическим развитием, когда мы обнаруживаем, как делать то, что мы не знали, как делать. Возможно, хорошо описанный как прикладное исследование, мы могли бы спроектировать что-то для спецификации, затем обычно пытаться запатентовать это или иным образом защитить или использовать это для конкурентного преимущества.
R также может относиться к риску, потому что проекты исследований и разработок часто пытаются совместить как открытие, так и использование новых технологий и использование известных технологий вместе. Среди других рисков для этого подхода - разделение вашего фокуса, создание прототипа, который НЕ предназначен для отбрасывания, и вероятность того, что маркетинг будет вовлечен и будет рассматривать оценки как контракты.
R & D - это термин, который может наряжать отдел, который в основном занимается разработкой. Большинство технологических проектов должны сочетать исследования с каким-то прототипом, но создание одного или дюжины чего-либо не кажется мне разработкой, если оно не может быть передано в производство.
Исследования обычно включают в себя такое понятие, как изучение литературы или патентов в поисках известного уровня техники, утверждение заявлений о новых инновациях и демонстрация их ценности и уникальности в некотором роде. Академические исследования иногда синтезируют идеи из академической литературы, математически моделируют какое-то явление или сообщают о тематическом исследовании с анализом, выводами и предложениями для дальнейшего изучения.
Возможно, НИОКР заинтересован в том, что еще не было сделано ранее, но в краткосрочной перспективе будет доступно как продукт.
источник
R & D экспериментирует с идеями, которые никогда не станут продуктом. Где Software Development работает над продуктом / услугой, желаемой стать продуктом.
источник