Là kỹ thuật phát triển phần mềm? Nếu không, những thứ mà nó thiếu để có đủ điều kiện như vậy là gì?
Vâng, kỹ thuật phần mềm là một ngành kỹ thuật.
Wikipedia định nghĩa kỹ thuật là "ứng dụng toán học, cũng như kiến thức khoa học, kinh tế, xã hội và thực tiễn để phát minh, đổi mới, thiết kế, xây dựng, bảo trì, nghiên cứu và cải tiến cấu trúc, máy móc, công cụ, hệ thống, thành phần, vật liệu , quy trình, giải pháp và tổ chức. " Kết quả của công nghệ phần mềm là một hệ thống phần mềm có thể cải thiện cuộc sống của con người và nó có thể bao gồm một số sự kết hợp của kiến thức khoa học, toán học, kinh tế, xã hội hoặc thực tế.
Xét về cách nó được xem, về mặt học thuật và chuyên nghiệp, nó khác nhau. Các chương trình kỹ thuật phần mềm có thể được ABET công nhận là chương trình kỹ thuật. Các kỹ sư phần mềm có thể là thành viên của IEEE. Một số công ty coi công nghệ phần mềm là một chuyên ngành kỹ thuật, trong khi những công ty khác thì không - thực sự là một vấn đề.
Cuốn sách hay nhất về chủ đề này là Phát triển phần mềm chuyên nghiệp của Steve McConnell: Lịch trình ngắn hơn, Sản phẩm chất lượng cao hơn, Dự án thành công hơn, Nghề nghiệp nâng cao . Nó nhìn vào công nghệ phần mềm là một nghề, quá trình tiến hóa từ một nghề để một nghề, các khoa học về phát triển phần mềm, sự khác biệt giữa phần mềm kỹ thuật và phần mềm kỹ thuật (áp dụng thực hành kỹ thuật để phần mềm so với các kỹ sư người xảy ra để xây dựng các phần mềm, với một nghiên cứu trường hợp đó bao gồm trường cũ của tôi ), chứng nhận và cấp phép, và đạo đức.
Glenn Vanderburg có một loạt các cuộc nói chuyện gọi là "Kỹ thuật phần mềm thực sự" đã được đưa ra từ năm 2010 đến 2015 tại một số hội nghị, cùng với hai cuộc hội đàm liên quan, "Thủ công, Kỹ thuật và Tinh hoa lập trình" (được đưa ra vào năm 2011 như một bài phát biểu tại RailsConf) và "Kỹ thuật thủ công và phần mềm" (được đưa ra vào năm 2011 tại QCon London). Tôi nghĩ những cuộc nói chuyện này là một lập luận khá toàn diện cho lý do tại sao công nghệ phần mềm là một ngành kỹ thuật.
Một cuộc tranh luận, mà Vanderburg đưa ra một cách ngắn gọn trong các cuộc nói chuyện của mình, là cuộc tranh luận của Jack W. Reeves năm 1992 (và xem xét lại vào năm 2005) về thiết kế phần mềm là gì và cách mã hóa là đầu ra của các hoạt động thiết kế kỹ thuật phần mềm ( đây cũng là thảo luận về wiki C2). Một khi bạn thoát khỏi các trường phái tư tưởng cũ, nơi đặc tả và mô hình hóa là thiết kế phần mềm và thành mã là thiết kế phần mềm, một số mối quan hệ giữa công nghệ phần mềm và các ngành kỹ thuật khác trở nên dễ thấy hơn. Một số khác biệt và lý do cho những khác biệt đó càng trở nên rõ ràng hơn sau khi bạn thấy rằng kinh tế phát triển phần mềm khác biệt rất nhiều so với nhiều ngành khác - xây dựng là rẻ (trong hầu hết các trường hợp), trong khi thiết kế là phần đắt đỏ.
Đó có phải là [CMMI] thứ gì đó sẽ biến sự phát triển thành kỹ thuật không?
CMMI là một khung cải tiến quy trình cung cấp hướng dẫn cho các tổ chức về loại hoạt động nào hữu ích khi xây dựng phần mềm. Các ngành kỹ thuật thường có một quy trình kỹ thuật. Có một quá trình như vậy là rất quan trọng để hoàn thành thành công các dự án chất lượng cao. Điều đó nói rằng, CMMI (hoặc bất kỳ khung quy trình hoặc phương pháp luận nào khác) chỉ là một công cụ duy nhất - sử dụng nó sẽ không giúp bạn tiến bộ một cách kỳ diệu từ nhà phát triển sang kỹ sư. Tuy nhiên, không tuân theo một số loại quy trình, theo tôi, là một dấu hiệu của một dự án không phải là một dự án kỹ thuật.
Ngoài ra, ý kiến của bạn về các khóa học / chứng chỉ kỹ thuật phần mềm là gì?
Nó chỉ có giá trị như những người khác đặt vào nó. Có những khóa học hữu ích và có những khóa học vô dụng. Có những chứng chỉ có giá trị và những chứng chỉ không xứng đáng với giấy mà chúng được in trên đó. Có rất nhiều yếu tố, từ người chứng thực hoặc công nhận khóa học hoặc người đang cấp chứng chỉ cho ngành công nghiệp hiện tại của bạn cho công việc hiện tại và nơi bạn muốn đi.