Tôi được một đồng nghiệp yêu cầu giải thích rõ ràng về sự khác biệt giữa phát triển thông thường và nghiên cứu và phát triển (R & D) và không thể làm được. Sau khi đọc Wikipedia, tôi vẫn không có câu trả lời chính xác.
Theo Wikipedia (sửa đổi một chút):
Có hai mô hình chính:
Trong một mô hình, chức năng chính là phát triển sản phẩm mới ;
trong mô hình khác, chức năng chính là khám phá và tạo ra kiến thức mới về các chủ đề khoa học và công nghệ nhằm mục đích phát hiện và cho phép phát triển các sản phẩm, quy trình và dịch vụ mới có giá trị.
Mô hình đầu tiên là khó hiểu. Điều đó có nghĩa là sự phát triển (không phải R & D) chỉ bao gồm việc thêm các tính năng mới vào sản phẩm, giải quyết các lỗi và bảo trì? Điều gì nếu một cái gì đó trước đây được phát triển như một tính năng mới trở thành một sản phẩm riêng biệt?
Mô hình thứ hai ít gây nhầm lẫn, nhưng vẫn còn, làm thế nào để đủ điều kiện liệu một thứ gì đó là kiến thức mới hay kiến thức tồn tại mới được khám phá lại?
Sau đó, Wikipedia cho biết thêm rằng sự phát triển thông thường khác với R & D vì nó:
lợi nhuận gần như ngay lập tức hoặc cải thiện ngay lập tức.
Nó vẫn chưa đủ rõ ràng. Làm thế nào để đủ điều kiện "lợi nhuận gần như ngay lập tức"? Điều gì xảy ra nếu một nhiệm vụ có lợi nhuận ngay lập tức nhưng đòi hỏi nghiên cứu nặng nề? Hoặc nếu nó là cơ bản nhưng có lợi nhuận không chắc chắn, như việc thực thi một phong cách phổ biến trên cơ sở mã?
Ví dụ: nó thuộc về phát triển hay R & D để:
Phát triển một công cụ trừu tượng hóa quyền truy cập vào cơ sở dữ liệu, đơn giản hóa và rút ngắn rất nhiều mã của các ứng dụng khác (tồn tại hoặc những ứng dụng sẽ được viết trong tương lai) nên truy cập vào cơ sở dữ liệu?
Thiết lập một kiến trúc hướng dịch vụ mới cho toàn bộ tổ chức tài nguyên của công ty, để chuyển từ một loạt các ứng dụng riêng biệt và tự trị sang một tập hợp các dịch vụ web được kết nối, tổ chức tốt, như những gì được Amazon sử dụng?
Thiết kế một giao thức truyền thông mới để cho phép sao chép dữ liệu nhanh hơn giữa hai trung tâm dữ liệu của công ty?
Nhận thức một loại thử nghiệm phần mềm mới trong khi làm việc trên một sản phẩm cụ thể, biết rằng loại thử nghiệm này sẽ cải thiện / đơn giản hóa quá trình thử nghiệm?
Chứng minh rằng lập trình hàm phù hợp hơn OOP cho một ứng dụng cụ thể, dựa trên bằng chứng, logic và kinh nghiệm trước đó?
Tăng cường ứng dụng hiện có bằng cách thêm các cử chỉ trên màn hình xúc giác, sau khi thực hiện các nghiên cứu và thử nghiệm cho thấy những cử chỉ đó cải thiện năng suất của người dùng theo tỷ lệ ít nhất 1,4 cho một nhóm tác vụ chính xác?
Tìm cách tăng cường hiệu quả sử dụng năng lượng (PUE) của trung tâm dữ liệu?
Tạo một ngôn ngữ cụ thể miền (DSL)?
Nói tóm lại, làm thế nào tôi có thể xác định liệu tôi có đang thực hiện R & D trong khi làm việc gì không?