Chapter 11: Chuyên nghiệp trong kỹ nghệ phần
1. Yếu tố chuyên nghiệp
Một kỹ sư phần mềm thể hiện tính chuyên nghiệp thông qua việc tuân thủ các quy tắc đạo đức, ứng xử nghề nghiệp tới các chuẩn và thủ tục được thiết lập bởi cộng đồng chuyên môn. Cộng đồng chuyên môn thường được đại diện bởi một hoặc nhiều tổ chức chuyên môn (hội, nhóm nghề nghiệp). Các tổ chức này công bố các chuẩn về đạo đức và quy tắc ứng xử nghề nghiệp được biết như là các tiêu chuẩn gia nhập cộng đồng. Các tiêu chí này là cơ sở cho việc các hoạt động công nhận, cấp giấy phép và được sử dụng như một thước đo năng lực kỹ thuật.
Một kỹ sư phần mềm thể hiện tính chuyên nghiệp thông qua việc tuân thủ các quy tắc đạo đức, ứng xử nghề nghiệp tới các chuẩn và thủ tục được thiết lập bởi cộng đồng chuyên môn. Cộng đồng chuyên môn thường được đại diện bởi một hoặc nhiều tổ chức chuyên môn (hội, nhóm nghề nghiệp). Các tổ chức này công bố các chuẩn về đạo đức và quy tắc ứng xử nghề nghiệp được biết như là các tiêu chuẩn ra nhập cộng đồng. Các tiêu chí này là cơ sở cho việc các hoạt động công nhận, cấp giấy phép và được sử dụng như một thước đo năng lực kỹ thuật.
1.1. Kiểm định, chứng nhận và giấy phép
1.1.1. Kiểm định
Kiểm định là quá trình chứng nhận năng lực, thẩm quyền hoặc sự tin cậy của một tổ chức. Các chương trình kiểm định được đảm bảo tuân thủ các tiêu chuẩn cụ thể và duy trì chất lượng nhất định. Ở nhiều nước, các kỹ sư tiếp nhận kiến thức thông qua việc hoàn thành một khoá đào tạo kiểm định. Kiểm định kỹ thuật thường được thực hiện bởi các tổ chức chính phủ như bộ giáo dục, ví dụ Trung Quốc, Pháp, Đức, Isarel, Ý và Nga. Ở Việt Nam, để hoàn thành chương trình kiểm định, các kỹ sư phải hoàn thành các khoá học tại các đơn vị đào tạo thuộc bộ giáo dục. Tuy nhiên, ở một số quốc gia khác, quá trình kiểm định tách rời khỏi chính phủ và được thực hiện bởi các hiệp hội tư nhân. Một ví dụ điển hình như ở Hoa Kỳ, kiểm định kỹ thuật được thực hiện bởi tổ chức ABET. Là một thành viên của ABET, CSAB là một tổ chức tiến hành kiểm định và công nhận các chương trình đào tạo. Tuy quá trình kiểm định có thể khác nhau, nhưng ý nghĩa chung là như nhau ở các nước.
1.1.2. Chứng nhận
Chứng nhận dùng để xác nhận các đặc tính đặc biệt của một người. Một loại chứng nhận phổ biến là chứng nhận chuyên môn, chứng nhận xác nhận một người có khả năng nhất định trong việc hoàn thành một hoạt động ở một lĩnh vực cụ thể. Chứng nhận chuyên môn cũng được dùng để xác minh khả năng của chủ sở hữu có thể đáp ứng các tiêu chuẩn chuyên môn và áp dụng các kỹ năng chuyên môn trong việc giải quyết vấn đề. Ngoài ra, các chứng chỉ chuyên môn còn được dùng để xác minh các kiến thức được theo quy định, kinh nghiệm và mức độ thành thạo các kỹ năng trong nghề nghiệp. Một kỹ sư thường có được chứng nhận chuyên môn bằng cách vượt qua một kỳ thi kết hợp với các tiêu chí dựa trên các kinh nghiệm khác. Những kỳ thi thường được quản lý bởi các tổ chức phi chính phủ, chẳng hạn như các tổ chức chuyên nghiệp. Trong kỹ nghệ phần mềm, các chứng nhận dùng để kiểm tra trình độ chuyên môn của một kỹ sư phần mềm. Ví dụ, IEEE đã ban hành 2 chương trình chứng nhận (CSDA và CSDP) được thiết kế để xác nhận kiến thức của một kỹ sư phần mềm thông qua các chuẩn kỹ năng trong kỹ nghệ phần mềm. Từ tháng 10 năm 2000, chính phủ Nhật Bản đề xuất sáng kiến chuẩn hoá kỹ năng CNTT châu Á. Theo đó, có hai loại hình chứng chỉ là kỹ sư công nghệ thông tin cơ bản (FE) và kỹ sư thiết kế và phát triển phần mềm (SW). Để có được các chứng chỉ này các kỹ sư phải vượt qua một kỳ thi đánh giá chuẩn kỹ năng. Cho đến nay đã có 11 nước công nhận hai chuẩn trên bao gồm Nhật Bản, Ấn Độ, Trung Quốc, Việt Nam, Malaysia, Hàn Quốc, Singapore, Philipin, Thái Lan, Đài Loan và Myanmar.
1.1.3. Giấy phép
Cấp giấy phép là hành động cấp phép cho một người được thực hiện một số loại hoạt động và chịu trách nhiệm về kết quả thực hiện. Giấy phép thể hiện thông qua việc cấp phép và tài liệu ghi nhận sự cấp phép. Để có được giấy phép sử dụng đòi hỏi không chỉ đáp ứng được một số tiêu chuẩn nhất định mà còn đáp ứng các tiêu chuẩn khi thực hiện. Nói chung việc cấp giấy phép nhằm đảm bảo quyền lợi cho các kỹ sư (so với các cá nhân không đủ tiêu chuẩn). Ở một số nước, các kỹ sư không thể thực hiện công việc như một chuyên gia nếu không được cấp giấy phép. Khắt khe hơn, với các doanh nghiệp, các công ty không được phép cung cấp “dịch vụ kỹ thuật” nếu không có ít nhất một kỹ sư được cấp phép.
1.2. Quy tắc đạo đức và ứng xử nghề nghiệp
Quy tắc đạo đức và ứng xử nghề nghiệp bao gồm các giá trị và hành vi thực hiện chuyên môn và các quyết định của một kỹ sư chuyên nghiệp phải thể hiện. Các quy tắc ứng xử nghề nghiệp được các tổ chức, hội nghề nghiệp. Các quy tắc này tồn tại trong một bối cảnh nhất định và được điều chỉnh để được số đông cộng đồng chấp nhận, phù hợp với với chuẩn mực đạo đức xã hội và luật pháp của chính quyền sở tại. Khi được thiết lập, quy tắc đạo đức và ứng xử nghề nghiệp được thực thi bởi các tổ chức chuyên môn hoặc các tổ chức theo luật định. Các hành vi vi phạm đạo đức và quy tắc ứng xửử nghề nghiệp có thể kể đến như tiết lộ thông tin bí mật, làm sai lệch thông tin, hoặc xuyên tạc khả năng của một người. Một số hành vi khác như sự thiếu sót trong việc thông báo những rủi ro hoặc không cung cấp thông tin quan trọng, không miêu tả đầy đủ quyền lợi của khách hàng. Vi phạm các quy tắc đạo đức và ứng xử nghề nghiệp có thể dẫn đến hình phạt (theo quy định) và có thể bị tước bỏ việc công nhận sự chuyên nghiệp. Một quy tắc đạo đức và ứng xử nghề nghiệp cho phần mềm kỹ thuật đã được phê duyệt bởi Hội đồng ACM và IEEE CS vào năm 1999. Theo đó: “Kỹ sư phần mềm sẽ cam kết thực hiện các quá trình trong phát triển phần mềm gồm: phân tích, đặc tả, thiết kế, phát triển, thử nghiệm và bảo trì phần mềm là một nghề mang lại lợi ích và và được tôn trọng. Phù hợp với các cam kết của họ đối với sức khỏe, an toàn và phúc lợi của công chúng, kỹ sư phần mềm phải tuân thủ các nguyên tắc liên quan đến tám nguyên tắc bao gồm sự công khai, khách hàng và sử dụng lao động, sản phẩm, phán quyết, quản lý, nghề nghiệp, đồng nghiệp và bản thân.” Sau khi các quy tắc, tiêu chuẩn được đề xuất có thể được giới thiêu, sửa đổi hoặc thay thế, các kỹ sư có trách nhiệm cập nhật và tiếp tục học tập để phù hợp với các quy tắc nghề nghiệp mới.
1.3. Tính chất và vai trò của các hội nghề nghiệp
Các tổ chức nghề nghiệp bao gồm sự kết hợp của người trong nghề và các chuyên gia, các nhà nghiên cứu. Các tổ chức này thực hiện việc xác định, đề xuất và điều tiết các ngành nghề tương ứng của tổ chưc, hội. Các hội, tổ chức nghề nghiệp giúp cộng đồng trong nghề thiết lập các tiêu chuẩn chuyên môn cũng như các quy tắc ứng xử và đạo đức nghề nghiệp. Vì lý do này, họ cũng tham gia vào các hoạt động có liên quan, bao gồm:
- Xây dựng và ban hành nội dung kiến thức chung về chuyên môn
- Kiểm định, chứng nhận và cấp giấy phép;
- Ban hành các quy tắc chung cho cộng đồng nghề
- Thúc đẩy mở rộng cộng đồng thông qua qua các hội nghị, đào tạo, và các ấn phẩm.
Tham gia vào các hội nghề nghiệp, hỗ trợ các kỹ sư trong việc duy trì và phát triển kiến thức phù hợp với chuyên môn, đồng thời mở rộng và duy trì mạng lưới nghề nghiệp của mình.
1.4. Tính chất và vai trò của các tiêu chuẩn kỹ nghệ phần mềm
Các tiêu chuẩn trong kỹ nghệ phần mềm bao gồm nhiều chủ đề nổi bật. Các tiêu chuẩn cung cấp các hướng dẫn cho việc thực hiện các pha trong quy trình phát triển phần mềm. Bằng việc thông qua các nội dung thông qua sự đồng thuận của cộng đồng về các kiến thức và kinh nghiệm trong kỹ nghệ phần mềm, các tiêu chuẩn thiết lập các hướng dẫn cơ bản cho kỹ nghệ phần mềm. Các tiêu chuẩn này có thể được tiếp tục phát triển và hoàn thiện phù hợp với các điều kiện cụ thể. Những lợi ích của việc áp dụng các tiêu chuẩn mang lại rất nhiều cải thiện chất lượng phần mềm, giúp tránh sai sót, bảo vệ cả phía nhà phát triển và người sử dụng phần mềm, gia tăng tính chuyên nghiệp và thuận lợi trong việc chuyển đổi công nghệ.
1.5. Sự tác động của phần mềm đến nền kinh tế
Phần mềm ít nhiều có các tác động đến kinh tế của từng cá nhân, doanh nghiệp và xã hội. Một phần mềm "thành công" có thể được xác định bởi sự phù hợp của một phần mềm và việc được công nhận cũng như hiệu quả của nó khi áp dụng giải quyết một vấn đề nhất định. Ở cấp độ cá nhân, việc làm của một kỹ sư có thể tuỳ thuộc vào khả năng và sự sẵn sàng của họ trong việc hiểu và thực hiện nhiệm vụ trong đáp ứng nhu cầu và mong đợi của khách hàng hoặc người sử dụng lao động. Khách hàng hoặc tình hình tài chính của chủ sử dụng lao động có thể ảnh hưởng tích cực hay tiêu cực tới việc tiêu thụ phần mềm. Ở mức độ doanh nghiệp, phần mềm được áp dụng một cách hợp lý có thể giảm thiểu thời gian làm việc và gia tăng lợi nhuận khi làm việc. Hơn nữa, với các tổ chức sử dụng hoặc cung cấp phần mềm một cách hiệu quả cũng mang lại lợi ích cho xã hội bằng việc tạo công ăn việc làm và góp phần cải thiện chất lượng dịch vụ. Tuy nhiên, các chi phí phát triển và mua phần mềm cũng có thể tương đương đương với lợi nhuận kinh doanh của doanh nghiệp. Ở cấp độ xã hội, phần mềm sử dụng việc dự đoán tai nạn, cung cấp các loại dịch vụ xã hội. Sự tác động gián tiếp của phần mềm thông qua việc hiệu quả hoặc không hiệu quả của các đơn vị cung cấp hoặc mua phần mềm dẫn đến tăng hoặc giảm năng xuất lao động xã hội. Đồng thời, phần mềm còn ảnh hưởng đến một số lĩnh vực khác của cuộc sống như trật tự xã hội, thậm trí là cả các vấn đề tài chính...
1.6. Hợp đồng lao động
Dịch vụ kỹ thuật phần mềm có thể được cung cấp theo một loạt các mối quan hệ khách hàng-kỹ sư. Các công việc trong kỹ thuật phần mềm có thể được thực hiện thông qua các nhà cung cấp dịch vụ, tư vấn kỹ thuật, thuê hoặc thậm trí thông qua các tình nguyện viên. Trong tất cả các tình huống, khác hàng và nhà cung cấp đạt được sự đồng thuận về một sản phẩm phần mềm hoặc dịch vụ được cung cấp phải thỏa mãn một số tiêu chí nhất định. Trong kỹ nghệ phần mềm, mối lo ngại chung trong hợp đồng lao động là tính bảo mật. Người sử dụng lao thu được lợi nhuận từ lợi thế thương mại của sở hữu trí tuệ, vì vậy họ buộc phải bảo vệ quyền lợi của mình bằng việc đưa ra những quy định về tính bảo mật trong hợp đồng. Vì vậy, các kỹ sư phần mềm thường được yêu cầu ký không tiết lộ hoặc đồng ý với các quy định về sở hữu trí tuệ trong công việc. Một mối quan tâm khác của quyền sở hữu trí tuệ, các tài sản liên quan tới phần mềm bao gồm sản phần, sáng chế, phát minh và các ý tưởng có thể được cất giữ bởi người sử dụng lao động, khách hàng hoặc tuân thủ theo các điều khoản đã được quy định trong hợp đồng, nếu những tài sản thu được trong thời hạn của mối quan hệ các kỹ sư phần mềm với người sử dụng lao động hoặc khách hàng. Cuối cùng, hợp đồng cũng có thể chỉ định trong số các yếu tố khác vị trí mà tại đó công việc sẽ được thực hiện; tiêu chuẩn mà công việc đó sẽ được tổ chức; cấu hình hệ thống được sử dụng để phát triển; hạn chế của các kỹ sư phần mềm và sử dụng lao động trách nhiệm; một ma trận giao tiếp và / hoặc kế hoạch từng bước; và các chi tiết hành chính như lãi suất, bồi thường, giờ làm việc, và điều kiện làm việc.
1.7. Các vấn đề về luật pháp
Các vấn đề pháp lý đáng chú ý liên quan tới kỹ nghệ phần mềm bao gồm các vấn đề liên quan đến tiêu chuẩn, thương hiệu, bằng sáng chế, bản quyền, bí mật kinh doanh, trách nhiệm pháp lý, yêu cầu pháp lý, tuân thủ luật thương mại, và tội phạm công nghệ.
1.7.1. Các chuẩn
Như đã nhắc ở phần 1.4, các tiêu chuẩn trong kỹ nghệ phần mềm cung cấp các hướng dẫn cho việc thực hiện các pha trong quy trình phát triển phần mềm. Tiêu chuẩn có chức năng định ra các yêu cầu và hỗ trợ thực hiện các yêu cầu đó trong việc thực hiện các hoạt động thường xuyên trong kỹ nghệ phần mềm. Các tiêu chuẩn được đưa ra bằng cách liệt kê các đặc tính tối thiểu của các sản phẩm và quá trình thực hiện. Vì vậy, các doanh nghiệp, tổ chức phần mềm thường áp dụng các tiêu chuẩn như là một phần của chính sách tổ chức của họ. Hơn nữa, việc tuân thủ các tiêu chuẩn là một biện pháp đề phòng các rủi ro liên quan đến pháp lý và tránh khỏi những cáo buộc phi pháp.
1.7.2. Thương hiệu
Một thương hiệu liên quan đến bất kỳ từ, tên, biểu tượng, hoặc thiết bị được sử dụng trong các giao dịch. Thương hiệu được sử dụng "để chỉ ra nguồn gốc, xuất xứ của hàng hóa". Bảo vệ thương hiệu bảo vệ tên, logo, hình ảnh, và bao bì của doanh nghiệp. Tuy nhiên, nếu tên, hình ảnh, hay tài sản thương hiệu khác sẽ trở thành một thuật ngữ chung, sau đó bảo vệ thương hiệu là vô hiệu. Tổ chức Sở hữu trí tuệ thế giới (WIPO) là cơ quan đặt ra các quy tắc và quy định về thương hiệu, nhãn hiệu hàng hoá. WIPO là cơ quan của Liên Hợp Quốc dành riêng cho việc sử dụng tài sản trí tuệ như một phương pháp thúc đẩy sự đổi mới và sáng tạo.
1.7.3. Bằng sáng chế
Bằng sáng chế bảo vệ các quyền của một nhà nhà sáng chế trong việc tạo ra và bán các ý tưởng của mình. Một bằng sáng chế bao gồm một tập hợp các đặc quyền được cấp bởi một chính phủ có chủ quyền cho một cá nhân, nhóm cá nhân, tổ chức trong một khoảng thời gian nhất định. Tài liệu để được cấp bằng sáng chế đòi hỏi phải được ghi chép một cách cẩn thận trong quá trình dẫn đến các sáng chế. Các nhà sáng chế có thể sử dụng các đại diện sáng chế (luật sư đại diện) để bảo vệ các quyền lợi hợp pháp của mình về các quy định trong luật bản quyền. Lưu ý rằng, nếu sáng chế được thực hiện trong quá trình của một hợp đồng công nghệ phần mềm, chủ sở hữu có thể thuộc về chủ nhân hay khách hàng hoặc được phối hợp tổ chức, chứ không phải thuộc về các kỹ sư phần mềm.
1.7.4. Bản quyền
Bản quyền là thuật ngữ pháp lý mô tả quyền của người sáng tạo đối với các sản phẩm, tác phẩm văn học và nghệ thuật của họ. Bảo vệ bản quyền là tự động cho dù sản phẩm này có được đăng ký hay không. Ngay khi sản phẩm được viết ra, nó đã được bảo vệ.
1.7.6. Trách nhiệm pháp lý
Các kỹ sư phần mềm phải quan tâm với các vấn đề về trách nhiệm trong chuyên môn. Với một cá nhân cung cấp dịch vụ cho khách hàng hoặc nhà tuyển dụng, điều này có vai trò quan trọng việc tuân thủ các tiêu chuẩn và các quy định chung trong chuyên môn. Do đó, trách nhiệm pháp lý giúp phía người lao động và ngừoi sử dụng lao động tránh khỏi những cáo buộc hoặc thủ tục tố tụng hoặc liên quan đến sơ suất, bất cẩn, hoặc thiếu năng lực. Đối với kỹ sư, bao gồm kỹ sư phần mềm, trách nhiệm pháp lý có liên quan đến trách nhiệm sản phẩm.
1.7.7. Yêu cầu pháp lý
Kỹ sư phần mềm phải hoạt động trong phạm vi của các khuôn khổ pháp lý địa phương, quốc gia và quốc tế. Vì vậy, các kỹ sư phần mềm phải lưu ý các yêu cầu pháp lý:
Đăng ký và cấp giấy phép bao gồm cả kiểm tra, học vấn, kinh nghiệm, và các yêu cầu đào tạo;
Thoả thuận trong hợp đồng;
Các vấn đề pháp lý ngoài hợp đồng;
Các thông tin cơ bản về khuôn khổ luật pháp quốc tế được quy định bởi tổ chức Thương mại quốc tế (WTO)
1.7.8. Tuân thủ luật thương mại
Tất cả kỹ sư phải được nhận thức hạn chế của pháp luật về nhập, xuất, tái xuất sản phẩm dịch vụ và công nghệ trong các phán quyết của mình. Các cân nhắc bao gồm kiểm soát xuất và phân loại, thu hồi giấy phép cần thiết dành cho việc sử dụng phần cứng và phần mềm, dịch vụ và công nghệ. Các kỹ sư cần được tư vấn để được hướng dẫn chi tiết các việc cần tuân thủ.
1.7.9. Tội phạm công nghệ
Một số loại tôi phạm công nghệ có thể kể đến như gian lận, truy cập trái phép, spam, nội dung khiêu dâm, xúc phạm, đe dọa, quấy rối, trộm cắp dữ liệu cá nhân nhạy cảm hoặc bí mật thương mại, và sử dụng một máy tính để gây thiệt hại hay xâm nhập vào các máy tính khác trong mạng và hệ thống điều khiển tự động. Theo luật Việt Nam có một số quy định theo các điều 224, 225, 226 Bộ luật Hình sự.Phạm tội thuộc một trong các trường hợp sau đây, thì bị phạt tù từ ba năm đến bảy năm:
* Có tổ chức;
* Lợi dụng chức vụ, quyền hạn;
* Thu lợi bất chính lớn;
* Gây hậu quả nghiêm trọng;
* Tái phạm nguy hiểm.
Phạm tội thuộc một trong các trường hợp sau đây, thì bị phạt tù từ năm năm đến mười hai năm:
* Đối với hệ thống dữ liệu thuộc bí mật nhà nước; hệ thống thông tin phục vụ an ninh, quốc phòng;
* Đối với cơ sở hạ tầng thông tin quốc gia; hệ thống thông tin điều hành lưới điện quốc gia; hệ thống thông tin tài chính, ngân hàng; hệ thống thông tin điều khiển giao thông;
* Thu lợi bất chính rất lớn hoặc đặc biệt lớn;
* Gây hậu quả rất nghiêm trọng hoặc đặc biệt nghiêm trọng.
1.8. Tài liệu
Cung cấp tài liệu hướng dẫn rõ ràng, kỹ lưỡng, và chính xác là trách nhiệm của mỗi kỹ sư phần mềm. Sự đầy đủ của các tài liệu được đánh giá theo các tiêu chí khác nhau dựa trên nhu cầu của các bên yêu cầu liên quan khác nhau. Tài liệu tốt phải đạt được các tiêu chuẩn và hướng dẫn. Đặc biệt, các kỹ sư phần mềm nên làm tài liệu tài liệu:
- Có sự liên kết
- Rủi ro trọng yếu và sự cân bằng, và
- Cảnh báo về những hậu quả không mong muốn hoặc nguy hiểm từ việc sử dụng hoặc sử dụng sai của phần mềm.
2. Tương tác nhóm
2.1. Lợi thế làm việc theo nhóm
Kĩ sư phần mềm sẽ làm việc với đội phát triển dự án, cũng như với các bên liên quan khác để đảm bảo dự án đi đúng hướng và đúng tiến độ. Các bên liên quan gồm:
- Người dùng: Gồm những người sử dụng cuối của hệ thống
- Khách hàng: Gồm những người đặt hàng sản phẩm phần mềm. Họ có quyền đưa sản phẩm của họ lên các cửa hàng phần mềm
- Nhà phân tích thị trường: Gồm những người phân tích nhu cầu thị trường.
- Bên pháp lý: Tùy theo tính chất của sản phẩm phần mềm, sản phẩm cần thỏa mãn các yêu cầu pháp lý cụ thể.
- Nhóm xây dựng phần mềm: Những cá nhân xây dựng sản phẩm phần mêm dựa theo yêu cầu phía khách hàng.
Các thành viên trong nhóm sẽ chia sẻ gánh nặng công việc với nhau, cũng như chia sẻ kiến thức dựa trên phẩm chất tôn trọng và trung thực. Quá trình giao tiếp giữa các thành viên có thể tiến hành qua giao tiếp trực tiếp (họp nhóm, trao đổi cá nhân), qua tài liệu (Ví dụ: mã nguồn). Khi các thành viên trong nhóm phối hợp chặt chẽ với nhau dưới sự điều phối của người quản lý, sản phẩm phần mềm sẽ giảm đáng kể các lỗi phát sinh. Đồng thời, thời gian xây dựng sản phẩm sẽ được đẩy nhanh lên.
2.2. Nhận thức cá nhân
Một điều hiển nhiên đối với kĩ sư phần mềm là họ luôn phải đối mặt với các vấn đề phát sinh bất ngờ và liên tục trong quá trình xây dựng sản phẩm. Đối với những vấn đề đơn giản hoặc đã có hướng giải quyết từ trước, kĩ sư phần mềm dễ dàng vượt qua thử thách này. Tuy nhiên trong thực tế, các vấn đề nảy sinh thường không biết trước cách xử lí hiệu quả ngay lập tức. Bài toán làm sao giải quyết vấn đề một cách hiệu quả là một bài toán khó. Để giải quyết bài toán này, chúng ta sẽ tìm hiểu các yếu tố ảnh hưởng đến nhận thức cá nhân và các phương pháp để cải thiện nhận thức cá nhân.
Các yếu tố rào cản ảnh hưởng đến nhận thức cá nhân gồm:
- Thiếu kiến thức liên quan đến vấn đề phát sinh
- Dữ liệu phân tích từ vấn đề lớn
- Tâm lý lo sợ thất bại
- Thiếu khả năng biểu thị vấn đề
- Ảnh hưởng bởi môi trường làm việc
- Ảnh hưởng bởi trạng thái cảm xúc của cá nhân
Kĩ sư phần mềm cần rèn luyện cho mình khả năng tập trung để giải quyết vấn đề, hoặc nhờ các thành viên trong nhóm xem xét vấn đề cho mình. Bằng cách này, gánh nặng công việc đã vô tình chia sẻ cho các thành viên khác trong nhóm. Bằng các cách nhìn khác nhau với cùng một vấn đề, vấn đề được phân tích tỉ mĩ và thấu đáo.
Ngoài ra, kĩ sư phần mềm có thể giải quyết vấn đề sử dụng nỗ lực cá nhân bằng kĩ thuật giảm tải nhận thức. Một phương pháp phổ biến hay được sử dụng là kĩ thuật chia nhỏ vấn đề. Sau khi vấn đề được chia nhỏ, tại mỗi một thời điểm kĩ sư phần mềm chỉ giải quyết một bài toán con đó. Tổng hợp các bài toán con lại, kĩ sư phần mềm dễ dàng tìm lời giải cho bài toán lớn.
2.3. Giải quyết vấn đề phức tạp
Đa phần các vấn đề mà kĩ sư phần mềm vấp phải khá phức tạp và khó khăn để tìm hướng giải quyết toàn bộ hoặc giải quyết bởi một nhóm các kĩ sư phần mềm riêng rẻ. Khi những trường hợp tương tự như vậy xảy ra, hướng giải quyết thường dùng được thực hiện là làm việc nhóm và phân rã vấn đề.
Làm việc nhóm cùng nhau giúp giải quyết vấn đề phức tạp và vấn đề lớn bằng cách chia sẻ gánh nặng và nỗ lực dựa trên tri thức và óc sáng tạo của các cá nhân. Khi các kĩ sư phần mềm làm việc theo nhóm, các góc nhìn và khả năng khác nhau của từng cá nhân sẽ bổ sung lẫn nhau và giúp xây dựng phương án khả thi. Ví dụ một vài nhóm điển hình là lập trình theo cặp trong mô hình Agile và đánh giá mã nguồn trong SQA.
2.4. Tương tác với các bên liên quan
Sự thành công của một nỗ lực ngành kĩ thuật phần mềm phụ thuộc vào các tương tác tích cực với các bên liên quan. Họ cung cấp sự hỗ trợ, thông tin và phản hồi ở mọi giai đoạn trong vòng đời phát triển phần mềm. Ví dụ, trong thời kì giai đoạn đầu, khá quan trọng để nhận diện các biên liên quan và xác định sản phẩm ảnh hưởng đến họ như thế nào. Sau đó, sự xác định đẩy đủ về yêu cầu của các bên liên quan sẽ bắt được đúng và hoàn hảo.
Trong suốt sự phát triển, các bên liên quan có thể phản hồi về đặc tả và/hoặc các phiên bản sớm của phần mềm, sự thay đổi độ ưu tiên, cũng như làm rõ các yêu cầu phần mềm mới hoặc chi tiết các yêu cầu phần mềm. Cuối cùng, trong pha bảo trì phần mềm cho tới khi kết thúc hẳn dự án, các bên liên quan cung cấp phản hồi về sự tiến hóa hoặc về các yêu cầu mới cũng như các thông báo để phần mềm có thể kế thừa và cải tiến.
2.5. Giải quyết các vấn đề không chắc chắn và mơ hồ
Cũng như các kĩ sư ở lĩnh vực khác, các kĩ sư phần mềm thường phải đối phó và giải quyết sự không chắc chắn và mơ hồ trong khi hỗ trợ dịch vụ và phát triển sản phẩm. Các kĩ sư phần mềm này phải tấn công và giảm thiểu hoặc loại trừ bất kì sự thiếu rõ ràng vốn là một vật cản để thực hiện công việc.
Thông thường, sự không chắc chắn đơn giản là sự phản ánh của thiếu kiến thức. Trong trường hợp này, sự nghiên cứu các nguồn tài nguyên tới các nguồn chính thức như sách, tạp chí chuyên ngành, phỏng vấn với các bên liên quan, hoặc tham khảo các thành viên trong nhóm có thể giúp vượt qua vấn đề.
Khi sự không chắc chắn và sự mơ hồ không thể vượt qua dễ dàng, các kĩ sư phần mêm hoặc tổ chức có thể coi vấn đề này là một hiểm họa dự án. Trong trường hợp này, các ước lượng công việc hoặc chi phí được điều chỉnh để giảm bớt chi phí đoán trước được sao cho giải quyết vấn đề đó.
2.6. Đối phó với môi trường đa văn hóa
Môi trường đa văn hóa có thể có những tác động đến hành vi một nhóm. Điều này đặc biệt đúng khi nhóm bị phân chia bởi môi trường địa lý hoặc giao tiếp không thường xuyên. Quá trình giao tiếp thậm chí khá khó khăn nếu các thành viên có múi giờ khác nhau khiến cho tần suất giao tiếp càng ít hơn.
Môi trường đa văn hóa thấy khá nhiều trong kĩ nghệ phần mềm, có thể hơn cả các ngành nghề khác liên quan đến kỹ thuật. Nguyên nhân bởi vì xu hướng mạnh mẽ về outsourcing xuyên quốc gia và sự dễ gửi các thành phần phần mềm ngay lập tức trên khắp toàn cầu. Ví dụ, một cách thường thấy trong dự án phần mềm là chia nhỏ thành các vấn đề dựa trên biên giới văn hóa và dân tộc. Cũng khá thường thấy các thành viên trong một nhóm gồm các thành viên đến từ những nơi có nền tảng văn hóa khác nhau.
Để một dự án phần mềm thành công, các thành viên trong nhóm cần học sự khoan dung, công nhận những quy tắc dựa trên tiêu chuẩn xã hội. Hầu hết các giao tiếp bao gồm gặp mặt trực tiếp có thể giảm thiểu sự phân chia về mặt địa lý và văn hóa, đồng thời thúc đẩy sự kết nối và gia tăng năng suốt. Hơn nữa, cuộc trò chuyện có thể sử dụng ngôn ngữ mẹ đẻ của đối phương sẽ mang lại lợi ích rất nhiều để kết nối các cá nhân với nhau.
3. Kĩ năng giao tiếp
Đối với kĩ sư phần mềm, kĩ năng giao tiếp vô cùng quan trọng gồm kĩ năng nói, kĩ năng đọc và kĩ năng viết. Sự thành công của dự án bị ảnh hưởng trực tiếp bởi thông tin trao đổi giữa kĩ sư phần mềm, khách hàng, người giám sát, đồng nghiệp và nhà hỗ trợ. Giải quyết vấn đề một cách tối ưu có thể đạt được qua bước nghiên cứu, suy ngẫm và tóm tắt thông tin. Sự chấp nhận sản phẩm khách hàng và sử dụng sản phẩm an toàn phụ thuộc vào sự chuẩn bị của các khóa đào tạo và tài liệu liên quan. Sự thành công trong sự nghiệp của một kĩ sư phần mềm bị ảnh hưởng bởi khả năng giao tiếp bằng lời nói và khả năng viết sao cho hiệu quả.
3.1. Đọc, hiểu và tóm tắt
Các kĩ sư phần mềm có thể đọc và hiểu các tài liệu kĩ thuật. Các tài liệu kĩ thuật gồm sách tham khảo, hướng dẫn sử dụng, bài báo và mã nguồn. Kĩ năng đọc không phải là phương pháp chính để cải thiện kĩ năng, nhưng đó là phương pháp để thu thập các thông tin cần thiết để đạt được mục tiêu dự án. Một kĩ sư phần mềm chọn lọc thông tin qua lượng thông tin rất lớn, lọc lấy các mảnh thông tin mà họ cảm thấy hữu ích. Khách hàng có thể yêu cầu kĩ sư phần mềm tóm tắt kết quả của những thông tin đã được tập hợp lại cho họ, đơn giản hóa thông tin hoặc giải thích các thông tin. Mục đích của hành động này nhằm giúp phía khách hàng có thể đưa ra quyết định cuối cùng.
3.2. Kĩ năng viết
Kĩ sư phần mềm có thể xây dựng sản phẩm tài liệu được yêu cầu từ phía khác hàng. Những sản phẩm tài liệu này gồm mã nguồn, kế hoạch dự án, tài liệu yêu cầu dự án, phân tích hiểm họa, tài liệu thiết kế phần mềm, báo cáo kĩ thuật, biểu đồ, v.v. Viết sao cho rõ ràng và súc tích là một điều quan trọng vì đó thường là phương pháp chính để giao tiếp giữa các bên liên quan. Trong mọi trường hợp, sản phẩm được viết bởi kĩ sư phần mềm cần được xây dựng sao cho dễ hiểu, rõ ràng đối với người đọc.
3.3. Giao tiếp nhóm
Kĩ năng giao tiếp hiệu quả giữa các thành viên trong nhóm là cần thiết để đạt được mục tiêu dự án. Các bên liên quan sẽ được tham khảo để lấy ý kiến, các quyết định sẽ được tạo ra, và kế hoạch phải được xây dựng. Càng đông thành viên trong một nhóm, yêu cầu giao tiếp càng trở nên quan trọng. Một vài giao tiếp có thể thực hiện được qua kĩ thuật viết. Giao tiếp qua tài liệu phần mềm là một cách thay thế phổ biến cho tương tác trực tiếp. Giao tiếp qua email là cách khác rất hữu ích nhưng không đủ. Nguyên nhân bởi vì, khi một bên gửi quá nhiều tin nhắn, thì bên nhận rất khó để xác định đâu là thông tin quan trọng. Các tổ chức thường dùng các phần mềm cộng tác để chia sẻ thông tin. Thêm vào đó, việc sử dụng cửa hàng thông tin điện tử là khả thi đối với các thành viên trong nhóm. Thông tin được lưu trên cửa hàng gồm các chính sách của tổ chức, các chuẩn, các thủ tục kĩ nghệ phổ biến, thông tin về các dự án riêng biệt.
3.4. Kĩ năng trình bày
Các kĩ sư phần mềm dựa vào kĩ năng trình bày của họ trong suốt quá trình phát triển dự án. Ví dụ, trong trong pha xây dựng tài liệu đặc tả, các kĩ sư phần mềm sẽ cùng làm việc với bên khách hàng và đồng đội qua tài liệu đặc tả, qua xem xét yêu cầu. Khả năng truyền đạt của kĩ sư phần mềm trong một bài thuyết trình bị ảnh hưởng bởi sự hỗ trợ từ phía khách hàng, sự quản lý và sự chấp nhận sản phẩm. Ngoài ra, yếu tố này còn bị ảnh hưởng bởi khả năng phân tích của các bên liên quan và sự hỗ trợ của họ trong nỗ lực tạo ra sản phẩm. Những tri thức này cần được tài liệu hóa trong các mẫu sile, bài báo hoặc bất kì tài liệu nào khác tiên lợi cho việc tạo tri thức.