Nhà phát triển phần mềm là một cá nhân hay một tổ chức có liên quan đến các vấn đề trong quá trình phát triển phần mềm ở mức cao hơn việc chỉ thiết kế và viết mã, là khái niệm rộng hơn phạm vi lập trình máy tính hay quản lý dự án, bao gồm cả nhiều vấn đề quản lý sản phẩm phần mềm. Đối tượng này có thể tác động bao quát cả dự án ở mức ứng dụng thay vì mức thành phần hay những tác vụ lập trình riêng lẻ. Các nhà phát triển phần mềm thường được chỉ đạo bởi những lập trình viên lãnh đạo cũng như bao gồm cả những nhà phát triển phần mềm tự do.
Nhà phát triển phần mềm thường sử dụng ngôn ngữ máy tính (ví dụ:Assembly, C, C ++, C #, JavaScript, Lisp, Python, Java) để đặt trước thuật ngữ nhà phát triển phần mềm. Một số người làm việc với các ngôn ngữ lập trình web cũng đặt thêm tiền tố cho tiêu đề của họ bằng web.
Thuật ngữ
Trong những phạm vi cụ thể, thuật ngữ này có thể có những tên gọi khác là nhà phân tích phần mềm và kỹ sư phần mềm.
Trên thị trường hiện nay có thể bắt gặp sự phân biệt giữa lập trình viên và nhà phát triển, với một bên là người tác động thực sự khác với một bên là người thiết kế lớp cấu trúc và phân cấp. Hơn nữa, các nhà phát triển còn là những kiến trúc sư hệ thống, thiết kế kiến trúc đa cấp độ hay những thành phần tương tác của một hệ thống phần mềm lớn.
Lịch sử
phải|nhỏ|287x287px|[[Ada Lovelace được nhiều người coi là nhà phát triển phần mềm máy tính đầu tiên . Vì máy của Babbage chưa bao giờ được hoàn thiện như một tiêu chuẩn hoạt động vào thời Lovelace, nên bà không bao giờ có cơ hội để xem thuật toán hoạt động.
Người đầu tiên thực hiện một chương trình trên một máy tính điện tử hiện đại, đang hoạt động là nhà khoa học máy tính Konrad Zuse vào năm 1941.
Nhóm lập trình ENIAC, bao gồm Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff , Fran Bilas và Ruth Lichterman, đã được ghi nhận là những nhà phát triển phần mềm thông thường đầu tiên.
Tính chất công việc
Một 'lập trình viên' có thể chỉ làm công việc viết mã,
Các nhà phát triển phần mềm làm việc ở nhiều cơ sở, bao gồm các phòng ban công nghệ thông tin (CNTT) của công ty, công ty phần mềm lớn, các công ty dịch vụ nhỏ và các tổ chức chính phủ thuộc mọi quy mô. Nhiều nhà phát triển phần mềm chuyên nghiệp cũng làm việc cho các công ty tư vấn tại các trang web của khách hàng với tư cách là nhà thầu. Thường không bắt buộc giấy phép để làm việc như một nhà phát triển phần mềm, mặc dù chứng chỉ chuyên nghiệp thường được các nhà phát triển phần mềm nắm giữ. Phát triển phần mềm được nhiều người coi là một nghề (mặc dù một số cơ quan chức năng không đồng ý với lý do rằng chỉ những nghề có yêu cầu cấp phép hợp pháp mới được coi là một nghề).
Công việc của các nhà phát triển phần mềm rất khác nhau tùy thuộc vào loại hình kinh doanh mà họ đang viết chương trình. Ví dụ: các hướng dẫn liên quan đến việc cập nhật hồ sơ tài chính rất khác với các hướng dẫn bắt buộc để sao chép các điều kiện trên máy bay cho huấn luyện phi công trong trình mô phỏng bay. Các chương trình đơn giản có thể viết trong vài giờ. Những cái phức tạp hơn có thể yêu cầu hơn một năm làm việc, trong khi những cái khác không bao giờ được coi là 'hoàn thành' mà là liên tục cải tiến miễn là chúng vẫn được sử dụng. Trong hầu hết các trường hợp, một số nhà phát triển phần mềm làm việc cùng nhau như một nhóm dưới sự giám sát của nhà phát triển phần mềm cấp cao.
Các loại phần mềm
Trình chỉnh sửa lập trình, còn được gọi là trình biên tập mã nguồn, là trình soạn thảo văn bản được thiết kế đặc biệt cho các lập trình viên hoặc nhà phát triển để viết mã nguồn của một ứng dụng hoặc một chương trình. Hầu hết các trình chỉnh sửa này bao gồm các tính năng hữu ích cho người lập trình, có thể bao gồm màu tô sáng cú pháp, tự động thụt lề, tự động hoàn thành, đối sánh dấu ngoặc vuông, kiểm tra cú pháp và cho phép plug-in hoạt động. Các tính năng này hỗ trợ người dùng trong quá trình viết mã, gỡ lỗi và thử nghiệm.
👁️
1 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**Nhà phát triển phần mềm** là một cá nhân hay một tổ chức có liên quan đến các vấn đề trong quá trình phát triển phần mềm ở mức cao hơn việc chỉ thiết kế
**Phát triển phần mềm linh hoạt** hoặc **lập trình linh hoạt** (tiếng Anh: **_Agile software development_** hay **_Agile programming_**) là một phương thức thực hiện các dự án công nghệ phần mềm, phương thức này
**Bộ công cụ phát triển phần mềm** (tiếng Anh: **software development kit**, viết tắt là **SDK**) là một gói các công cụ phát triển phần mềm (software development) trong một gói có thể cài đặt.
**Quy trình phát triển phần mềm** _(software development methodology)_ là một cấu trúc bao gồm tập hợp các thao tác và các kết quả tương quan sử dụng trong việc phát triển để sản xuất
thumb|upright|Biểu đồ dòng thời gian cho thấy sự phát triển của các [[bản phân phối Linux, với mỗi nhánh rẽ trong sơ đồ được gọi là "một fork".]] Trong phát triển phần mềm, **fork** ()
[[Tập tin:Nexus 4.png|thumb| Nexus 4 là một trong những thiết bị "thân thiện với lập trình viên" thuộc dòng sản phẩm Google Nexus]] **Phát triển phần mềm Android** là quy trình tạo ra các ứng
thumb|Mô hình vòng đời phát hành phần mềm Một **vòng đời phát hành phần mềm** là một sự tổng hợp các pha phát triển phần mềm từ giai đoạn sơ khai cho đến giai đoạn
**Công ty phần mềm** là một công ty có các sản phẩm chính là các phần mềm, công nghệ phần mềm, phân phối và phát triển sản phẩm phần mềm. Công ty phần mềm là
Trong công nghệ phần mềm, một **mẫu thiết kế** (tiếng Anh: design pattern) là một giải pháp tổng thể cho các vấn đề chung trong thiết kế phần mềm. Một mẫu thiết kế không phải
**Kiểm thử phần mềm** (tiếng Anh: **Software testing**) là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ
thumb|alt=Màn hình máy tính của hệ điều hành, màn hình hiển thị các ứng dụng phần mềm tự do khác nhau.|Ví dụ về một hệ điều hành phần mềm tự do hiện đại chạy một
nhỏ| Một sơ đồ cho thấy cách người dùng tương tác với [[phần mềm ứng dụng trên một máy tính để bàn thông thường. Lớp phần mềm ứng dụng giao tiếp với hệ điều hành,
**Phần mềm xử lý bảng tính** hay **Bảng tính** (tiếng Anh**: Spreadsheet**) là một phần mềm ứng dụng dùng để tổ chức, phân tích và lưu trữ dữ liệu thông qua các bảng tính (gọi
nhỏ|Ảnh chụp màn hình trò chơi giáo dục Chinese Tap trên Android để dạy học tiếng Trung. **Phần mềm giáo dục** là phần mềm máy tính có nhiệm vụ chính là hỗ trợ dạy học
**Hãng phát triển trò chơi điện tử** là hãng chuyên phát triển phần mềm về trò chơi điện tử, cũng như quy trình và các nguyên tắc liên quan để tạo ra các trò chơi
Một **nhà xuất bản phần mềm** là một công ty xuất bản trong ngành công nghiệp phần mềm nằm giữa nhà phát triển và nhà phân phối. Trong một số công ty, hai hoặc cả
**Triển khai phần mềm** (tiếng Anh: **Software deployment**) là tât cả các hoạt động khiến một hệ thống phần mềm sẵn sàng cho việc sử dụng. Quá trình triển khai chung bao gồm một số
thumb|Mô hình của vòng đời phát triển hệ thống, làm nổi bật giai đoạn bảo trì. Trong kỹ thuật hệ thống, hệ thống thông tin và công nghệ phần mềm, **vòng đời phát triển hệ
**Delphi** là sản phẩm phần mềm sử dụng phương ngữ Delphi của ngôn ngữ lập trình Object Pascal và cung cấp môi trường phát triển tích hợp (IDE) để phát triển ứng dụng nhanh chóng
Microsoft **Build** (thường được cách điệu thành ****) là một sự kiện hội nghị thường niên được tổ chức bởi Microsoft, dành cho các nhà phát triển phẩn mềm và web sử dụng Windows, Windows
**Hóa đơn nguyên vật liệu phần mềm** (BOM phần mềm) là danh sách các thành phần trong một phần mềm. Các nhà cung cấp phần mềm thường tạo ra các sản phẩm bằng cách lắp
**Hội nghị các nhà phát triển toàn cầu WWDC** (**Apple Worldwide Developers Conference)** là một hội nghị được tổ chức hàng năm của Apple Inc. tại San Jose, California. Đây là một sự kiện để
**Wine** là một lớp tương thích tự do nguồn mở dùng để chạy các phần mềm viết cho Windows trên các hệ điều hành tương tự Unix (Linux, FreeBSD,...). Wine cũng cung cấp một thư
**Phần mềm tự do nguồn mở** (Tiếng Anh: _Free and open-source software_ (Viết tắt là F/OSS, FOSS) hoặc _Free/Libre/open-source software_ (Viết tắt là FLOSS)) là loại phần mềm được bao gồm Phần mềm tự do
**Phần mềm dạng dịch vụ** (**SaaS** ) là mô hình cấp phép và phân phối phần mềm trong đó phần mềm được cấp phép trên cơ sở đăng ký và được lưu trữ tập trung.
liên_kết=https://en.wikipedia.org/wiki/File:ClamTk_5.27.png|nhỏ|300x300px|[[ClamTk, một phần mềm diệt vi-rút mã nguồn mở dựa trên công cụ diệt virus ClamAV, ban đầu được Tomasz Kojm phát triển vào năm 2001.]] nhỏ|255x255px|Ảnh chụp giao diện phần mềm diệt virus có
Phần mềm là các lệnh được lập trình mà được lưu trữ trong bộ nhớ được lưu trữ của các máy tính kỹ thuật số để bộ xử lý thực hiện. Phần mềm là một
**Kiến trúc phần mềm** của một chương trình máy tính hay một hệ thống tính toán là cấu trúc của các thành phần trong hệ thống đó. _Kiến trúc phần mềm_ bao gồm các phần
**Unity** là một game engine đa nền tảng được phát triển bởi Unity Technologies, mà chủ yếu để phát triển video game cho máy tính, consoles và điện thoại. Lần đầu tiên nó được công
NetBeans IDE 5.0, một môi trường phát triển hợp nhất nguồn mở. **Môi trường phát triển tích hợp** (tiếng Anh: _integrated development environment_; viết tắt: _IDE_) còn được gọi là "_Môi trường thiết kế hợp
**Công nghệ phần mềm** () là sự áp dụng một cách tiếp cận có hệ thống, có kỷ luật, và định lượng được cho việc phát triển, sử dụng và bảo trì phần mềm. Ngành
**Phần mềm gián điệp**, còn được dùng nguyên dạng Anh ngữ là **spyware**, là loại phần mềm chuyên thu thập các thông tin từ các máy chủ (thông thường vì mục đích thương mại) qua
**Quỹ Phần mềm Tự do** hay **Tổ chức Phần mềm Tự do** (tiếng Anh: _Free Software Foundation_, viết tắt **FSF**) là một tổ chức phi lợi nhuận do Richard Stallman thành lập ngày 4 tháng
**Jenkins** là một phần mềm tự động hóa, mã nguồn mở và viết bằng Java. Dự án được tách ra từ dự án ban đầu là Hudson, sau khi xảy ra sự tranh chấp với
**Git** (, đọc là "Ghít") là phần mềm quản lý mã nguồn phân tán được phát triển bởi Linus Torvalds vào năm 2005, ban đầu dành cho việc phát triển nhân Linux. Hiện nay, Git
COVID-19 bùng phát và lây lan trên diện rộng khiến thế giới rơi vào cuộc khủng hoảng y tế công cộng chưa từng có tiền lệ. Để đương đầu với đại dịch, các nhà phát
**Eric Steven Raymond** (sinh ngày 4 tháng 12 năm 1957), thường được gọi là **ESR**, là một nhà phát triển phần mềm người Mỹ, tác giả của bài tiểu luận được trích dẫn rộng rãi
nhỏ|400x400px|Giấy phép phần mềm trong bối cảnh bản quyền theo Mark Webbink. Từ trái sang phải ít quyền cho người được cấp phép/user của một phần mềm và nhiều hơn nữa quyền giữ lại bởi
phải|nhỏ|267x267px| Menu Symbian S60v3 (3rd Edition - Phiên bản thứ 3) trên Nokia N73. |liên_kết=Special:FilePath/S60_3rd_Edition_from_N73.jpg **S60** (hay còn gọi là **nền tảng S60** - trước đây là **Giao diện người dùng Series 60**) là một
**Mir** là một máy chủ hiển thị máy tính và gần đây, bộ tổng hợp Wayland cho hệ điều hành Linux, được phát triển bởi Canonical Ltd. Nó đã được lên kế hoạch thay thế
Trong quản lý thời gian, lên **khung thời gian** nghĩa là phân bổ khoảng thời gian cố định gọi là **khung thời gian**, cho mỗi hoạt động được lên kế hoạch. Một số phương pháp
**Phân phối liên tục **(tiếng Anh: Continuous delivery - viết tắt: CD) là một cách tiếp cận của kỹ thuật phần mềm, trong đó các đội sẽ sản xuất phần mềm trong chu kỳ ngắn,
**Mono** là một dự án tự do nguồn mở nhằm tạo ra một để tạo software framework tương thích .NET Framework tương thích tiêu chuẩn Ecma, bao gồm một trình biên dịch C# và Common
Môi trường phát triển tích hợp Eclipse phiên bản 3.1.2 trên nền Windows XP. **Eclipse** là một môi trường phát triển tích hợp dùng cho lập trình máy tính., Nó chứa một không gian làm
**Atlassian Corporation Plc** () là một công ty phần mềm có trụ sở tại Vương quốc Anh, nhưng có nguồn gốc từ Úc và Hoa Kỳ. Nó chuyên phát triển sản phẩm cho các lập
thumb|[[:en:Zen garden|Vườn thiền ở Ryōan-ji. Công trình này được tạo dựng trong thời kì Higashiyama. Bức tường đất sét, ám màu theo thời gian với hai tông màu nâu và cam tinh tế, phản ánh
**Mastodon** là một dịch vụ mạng xã hội tự do nguồn mở hoạt động với hình thức tự lưu trữ (self-hosting). Nó cho phép bất cứ ai cũng có thể xây dựng một hệ thống
Để phục vụ cho nhu cầu kinh doanh bán hàng trong thời đại mới, các công nghệ thay phiên nhau lần lượt ra đời chỉ để đáp ứng nhu cầu đó. Ngày nay, trên thị
Để phục vụ cho nhu cầu kinh doanh bán hàng trong thời đại mới, các công nghệ thay phiên nhau lần lượt ra đời chỉ để đáp ứng nhu cầu đó. Ngày nay, trên thị
**Phần mềm quảng cáo** hay **nhu liệu quảng cáo** thường đính kèm với những mẩu quảng cáo nhỏ, chúng thường được phân phát dưới hình thức phần mềm miễn phí hay phiên bản dùng thử.