Nhà phát triển phần mềm

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ử ==
Một số nguồn cho rằng nhà toán học và tiểu luận người Anh Ada Lovelace là nhà phát triển phần mềm máy tính đầu tiên, vì bà là người đầu tiên xuất bản một phần của chương trình (cụ thể là thuật toán) dự định triển khai trên máy phân tích của Charles Babbage vào tháng 10 năm 1842. Thuật toán được sử dụng để tính toán số Bernoulli. Tuy nhiên, dựa trên các tài liệu lưu trữ, các nhà sử học xác định thông tin này là không đúng, bởi chính Charles Babbage đã viết các chương trình cho cỗ máy của mình từ trước đó. Tất cả các chương trình được trích dẫn trong ghi chú của Ada, ngoại trừ một chương trình, đều do Babbage soạn thảo từ 3-7 năm trước, có nghĩa rằng Charles Babbage mới thực sự là nhà phát triển phần mềm máy tính đầu tiên 

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ã, nhưng một 'nhà phát triển' có thể làm những việc liên quan nhiều hơn tới quá trình phát triển phần mềm như viết, kiểm tra, gỡ lỗi và duy trì các hướng dẫn chi tiết, được gọi là chương trình máy tính, mà máy tính phải tuân theo để thực hiện các chức năng của chúng. Các nhà phát triển phần mềm cũng hình thành, thiết kế và kiểm tra các cấu trúc logic để giải quyết vấn đề bằng máy tính. Nhiều cải tiến kỹ thuật trong lập trình - công nghệ tính toán tiên tiến và các ngôn ngữ và công cụ lập trình mới tinh vi, đã xác định lại vai trò của một nhà phát triển phần mềm và nâng cao phần lớn công việc lập trình được thực hiện ngày nay. Chức danh và mô tả công việc có thể khác nhau, tùy thuộc vào tổ chức.

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.

== Xem thêm ==
- Phát triển phần mềm
- Công nghệ phần mềm
- Quy trình phát triển phần mềm
- Nhà lập trình trò chơi điện tử
- Danh sách các ngôn ngữ lập trình