1.2 Kernel
1.2.5 Các kỹ năng cần thiết (competencies)
1.2.5.1 Giới thiệu sơ lược
Để tham gia vào việc tạo ra phần mềm tốt thì nhóm làm việc cần phải có sự tổng hợp của nhiều kỹ năng ở các lĩnh vực khác nhau. Có thể là kỹ năng về chuyên môn để thực hiện những công việc riêng biệt của mình nhưng cũng có thể là những kỹ năng khác, kỹ năng khác này giúp người làm việc hiểu được phần nào đó công việc của thành viên khác trong nhóm và giúp việc cộng tác với các thành viên khác trong
nhóm tốt hơn. Mỗi một kỹ năng lại có những cấp độ khác nhau. Các kỹ năng được nêu ra trong Kernel được xác định ở 5 cấp độ khác nhau:
- Cấp độ 1- cộng sự: Có thể hiểu rõ về công việc và tự quản lý hoặc thực hiện
công việc ở mức độ cơ bản trong lĩnh vực hoạt động của mình.
- Cấp độ 2 -áp dụng: Có thể cộng tác với các thành viên khác trong nhóm, có
khả năng giải quyết một số khó khăn trong công việc, có thể suy luận từ thực tế và rút ra những kết luận hợp lý.
- Cấp độ 3 -làm chủ: Có thể làm việc trong tất cả các hoàn cảnh và có thể làm
việc không cần giám sát.
- Cấp độ 4-thích ứng: Có óc phán đoán để biết được khi nào áp dụng cách làm
việc nào vào công việc, áp dụng nó như thế nào và giúp đỡ các đồng nghiệp có thể sử dụng nó vào công việc.
- Cấp độ 5- đổi mới cách tân: Một chuyên gia có thể nhận ra rằng có thể mở rộng
cách làm việc để tạo ra bối cảnh mới và truyền cảm hứng làm việc cho những người khác
Ở cấp độ càng cao thì kỹ năng của người làm việc ở lĩnh vực đó càng tốt, cấp độ sau bao phủ cấp độ trước và thêm một số đặc điểm của cấp độ sau. Các kỹ năng làm việc của các thành viên trong nhóm thông thường sẽ dần dần được nâng cao thông qua các công việc, người có nhiều năm kinh nghiệm thông thường sẽ có những kỹ năng trong lĩnh vực công việc của mình cao hơn. Kỹ năng được nâng cao nhanh hay chóng còn tùy thuộc vào một số yếu tố như: Độ phức tạp về kỹ thuật của giải pháp, kích thước của dự án, mức độ đa dạng của các bên liên quan, mức độ rủi ro của giải pháp v.v.
1.2.5.2 Các kỹ năng cần thiết
Stakeholder Representative: Năng lực này chứa đựng khả năng thu thập ý kiến,
trao đổi thông tin, cân bằng những nhu cầu của các bên liên quan và đưa ra cái nhìn chính xác về quan điểm của họ. Muốn làm được những điều này người đại diện cần phải đứng ở vị trí những người khác để phản ánh ý kiến, quyền và nghĩa vụ của họ. [5]
Năng lực này giúp nhóm phát triển: Hiểu được các Opportunity, hiểu được sự phức tạp, nhu cầu của khách hàng, người sử dụng và các bên liên quan khác, đàm phán và ưu tiên các yêu cầu khách hàng, tương tác với các bên liên quan và các nhà phát triển về các giải pháp để phát triển hệ thống, hiểu được hệ thống giải quyết các nhu cầu của các bên liên quan như thế nào.
Kỹ năng cần thiết bao gồm: Kỹ năng thương lượng, kỹ năng giao tiếp và tìm kiếm cơ hội, kỹ năng giao tiếp bằng văn bản và bằng lời nói tốt, hiểu và đồng cảm với người khác.
Analysis: Năng lực phân tích là khả năng suy luận để hiểu rõ tình hình, bối
cảnh, các khái niệm và các vấn đề từ đó có thể xác định các giải pháp cao cấp thích hợp, đánh giá và rút ra kết luận trong quá trình phân tích. [5]
Khi phát triển phần mềm điều quan trọng việc phân tích và xác định chính xác các yêu cầu cho hệ thống hiện thời. Các yêu cầu phải được phân tích để đảm bảo rằng chúng thiết thực, khả thi và kích thước phù hợp để thúc đẩy phát triển hệ thống. Năng lực phân tích bao gồm những khả năng cần thiết để xác định việc xây dựng hệ thống thành công. Nhờ có năng lực này mà nhóm có thể hiểu rõ hơn về các Opportunity, các nhu cầu của các bên liên quan từ đó chuyển đổi chúng thành tập các yêu cầu. Khi gặp khó khăn thì nhóm làm việc phân tích và tìm hiểu được nguyên nhân gây ra khó khăn để giải quyết khó khăn khi gặp. Năng lực này còn giúp nhóm làm việc có thể đưa ra giải pháp kỹ thuật tối ưu và những giải pháp tốt cho hệ thống.
Năng lực này gồm các kỹ năng nhỏ như sau: Giao tiếp bằng lời và bằng văn bản, khả năng quan sát, hiểu và ghi lại thông tin chi tiết, khả năng tạo thuận lợi trong công việc, lưu lại yêu cầu, khả năng tách một vấn đề lớn thành những vấn đền nhỏ hơn, khả năng tổng hợp.
Development: Kỹ năng này chứa đựng khả năng có thể thiết kế, lập trình phần
mềm hiệu quả theo tiêu chuẩn của nhóm được giao. Nó là một hoạt động trí óc phức tạp đòi hỏi khả năng khai thác tất cả các kiến thức về cơ hội, nhu cầu của các bên liên quan, nghiệp vụ của công ty, công nghệ được sử dụng để tạo ra một giải pháp thích
hợp cho yêu cầu được đưa ra. Kỹ năng này đòi hỏi sự kết hợp của tài năng, kinh nghiệm, kiến thức và kỹ năng lập trình để phát triển các giải pháp theo hướng đúng đắn để tạo ra một hệ thống hiệu quả, dễ sử dụng. [5]
Kỹ năng này giúp cho nhóm có thể thiết kế và viết mã cho hệ thống phần mềm, xây dựng và đánh giá chiến lược cho việc chọn lựa mẫu thiết kế phù hợp hoặc cho việc kết hợp các mẫu thiết kế khác nhau, thiết kế và tác động đến các giải pháp kỹ thuật, khắc phục sự cố và giải quyết các vấn đề về mã.
Kỹ năng cần thiết bao gồm: Kiến thức về công nghệ, kỹ năng lập trình, kiến thức về các ngôn ngữ lập trình, tư duy phê bình, kỹ năng phân tích lại, kỹ năng thiết kế.
Testing: Kỹ năng này chứa đựng khả năng chạy thử hệ thống, kiểm tra xem hệ
thống có thể sử dụng đạt yêu cầu đề ra không.Năng lực testing là khả năng quan sát, so sánh, khám phá và phá hủy để kiểm tra xem có đạt yêu cầu hay không. [5]
Sử dụng năng lực này để giúp nhóm làm việc chạy thử hệ thống, tạo các bài kiểm tra chính xác để xác minh hiệu quả các yêu cầu, quyết định những gì, khi nào và làm thế nào để kiểm tra, đánh giá xem hệ thống có đáp ứng các yêu cầu không, tìm hiểu các khuyết tật và chất lượng của hệ thống sản xuất.
Kỹ năng cần thiết bao gồm: kỹ năng quan sát tốt, kỹ năng thăm dò xem phần mềm có lỗi không, có đáp ứng yêu cầu hay không, sự cẩn thận, tỉ mỉ thể hiện ở chỗ luôn chú ý đến từng chi tiết dù là rất nhỏ.
Leadership: Năng lực này cho phép một người có thể truyền cảm hứng và động
viên một nhóm người hoàn thành công việc thành công và đạt được mục tiêu mà họ đã đề ra. [5]
Người có năng lực leadership có thể giúp nhóm truyền cảm hứng làm việc cho
mọi người, luôn đảm bảo các thành viên trong nhóm hoàn thành tốt nhiệm vụ của họ, luôn đảm bảo hoàn thành cam kết của mình, giải quyết các trở ngại mà nhóm gặp phải, tương tác với các bên liên quan để định hình các ưu tiên, báo cáo tiến độ và giải quyết các khó khăn.
Các kỹ năng bao gồm: Kỹ năng truyền cảm hứng, thúc đẩy người khác làm việc, kỹ năng đàm phán, kỹ năng truyền tải thông tin, kỹ năng ra quyết định.
Management: Kỹ năng này chứa đựng khả năng tổ chức, lên kế hoạch và quan sát.
Năng lực quản lý là khả năng quản lý và tổ chức cho phép những điều đúng đắn được thực hiện vào đúng thời điểm để tối đa hóa cơ hội thành công của nhóm.
Năng lực này giúp nhóm co thể chủ động trong quản lý rủi ro, báo cáo về việc việc sử dụng thời gian và tiền bạc, tương tác với các bên liên quan để báo cáo tiến độ thực hiện dự án và phối hợp và lên kế hoạch hoạt động.
Các kỹ năng bao gồm:
- Kỹ năng truyền thông tin.
- Kỹ năng quản lý.
- Kỹ năng tổ chức.
- Lập kế hoạch về tài nguyên.
CHƯƠNG 2 – GIỚI THIỆU ESSWORK
2.1 Giới thiệu
Esswork là công cụ hỗ trợ cho việc thực hành SEMAT, nó kết hợp nhiều hoạt động một cách chặt chẽ, linh hoạt và hiệu quả. Esswork bao gồm một số đặc điểm như:
- Một nền tảng cho việc phát triển phần mềm định hướng thực hành.
- Có thể mở rộng ra, tinh chỉnh hoặc xây dựng mới dựa trên Essence Practice. - Hướng dẫn linh hoạt thông qua thẻ.
- Xác định phạm vi hoạt động để đạt được mục tiêu đề ra. - Hướng dẫn được đưa vào công cụ theo dõi dự án