Áp dụng SEMAT sẽ giảm thiểu những rủi ro trước khi bắt tay vào việc thực hiện dự án. Bởi trước khi xác định yêu cầu thì trong hướng dẫn của Kernel còn cần phải xác định một loạt các điều kiện khác như: Xác định xem liệu giải pháp đưa ra có thực sự có lợi ích không? Lợi ích đó là gì? Có khả thi không? (chính là một số trạng thái ban đầu của Alpha Opportunity) Những người sử dụng có đồng ý với giải pháp nêu ra không? Nếu tất cả những điều kiện đó được đáp ứng thì mới đi tới bước tiếp theo là xác định yêu cầu. Rõ ràng việc xác định trước những điều đó sẽ giúp cho dự án có tính an toàn cao hơn là việc mất thời gian xác định các yêu cầu người dùng, xác định xong chức năng của ứng dụng rồi mới thấy dự án không thể tiến hành vì một lý do nào đó như: Kinh phí không đảm bảo, kỹ thuật quá phức tạp mà trình độ của đội dự án không thể đáp ứng để hoàn thành…
Kernel trong SEMAT giúp theo dõi sự phát triển của dự án một cách thuận lợi, người dùng có thể theo dõi bằng cách gắn mỗi trạng thái của từng Alpha lên bảng, nếu trạng thái nào hoàn thành thì được chuyển sang bên trái của bảng, trạng thái nào chưa hoàn thành thì để ở bên phải. Nhờ đó có thể dễ dàng biết được họ đang ở giai đoạn nào, vị trí nào của dự án và đích họ cần đến là gì. Việc tới đích như thế nào lại có các hướng dẫn thực hiện công việc trong từng trạng thái.
Các hướng dẫn để đạt được từng trạng thái thì rõ ràng và ngắn gọn. Các trạng thái trong từng Alpha được trình bày thông qua Card, trong mỗi Card chứa các hướng dẫn để đạt được trạng thái đưa ra, có hai loại Card là Card định nghĩa và Card chi tiết. Nếu người dùng có chỗ nào chưa rõ có thể tham khảo ở Card chi tiết. Các Card này được trình bày dưới dạng các gạch đầu dòng hoặc những câu ngắn gọn chứ không phải là văn xuôi dài nên người phát triển có thể nắm bắt nhanh chóng các hướng dẫn. Tuy là các hướng dẫn
83
ngắn gọn nhưng lại rất chi tiết nó giúp người mới phát triển phần mềm không bỏ qua những việc làm cần thiết gây ra những sai sót sau này.
Quá trình hoàn thành từng nhóm công việc luôn được chỉ dẫn cặn kẽ thông qua sự tiến triển các trạng thái, từ trạng thái bắt đầu đến trạng thái kết thúc. Mỗi trạng thái lại có các hướng dẫn riêng gọi là các Checklist, nó giúp người làm dự án đạt được tới đích chính một cách chính xác mà không bị đi sai đường hoặc bỏ qua một công việc nào đó dẫn đến kết quả bị sai lệch. Ví dụ để xác định được yêu cầu của khách hàng thì không phải chỉ có một việc là đưa ra ngay các yêu cầu mà phải trải qua một loạt các công việc như: Ban đầu là xác định những điều cần thiết cho hệ thống mới, sẽ có rất nhiều yêu cầu được ra ra và người phát triển cần phải xác định yêu cầu nào là cần thiết và cần giới hạn lại tập các yêu cầu, tiếp theo là loại bỏ bớt các yêu cầu, tiếp tục làm công việc chỉnh sửa, loại bỏ thì sẽ thu được tập các yêu cầu, nhờ có một loại các công việc như thế mà yêu cầu khách hàng không bị xác định sai.
Sử dụng Kernel tránh được sự không thống nhất yêu cầu của ứng dụng giữa khách hàng và nhóm phát triển bởi khi có sự không thống nhất về yêu cầu thì lại có sự hướng dẫn ở Alpha Stakeholder trong trạng thái In Agreement, trong trạng này đã hướng dẫn khi có sự không thống nhất về yêu cầu chức năng của ứng dụng giữa người phát triển và những người sử dụng ứng dụng thì cần phải có sự thỏa thuận giữa hai nhóm này, người sử dụng sẽ có một tập các yêu cầu tối thiểu cần đạt được và nhóm phát triển sẽ phải hoàn thành các yêu cầu thỏa mãn tập tối thiếu công việc đó.
Những hướng dẫn của Alpha Team giúp người quản lý dự án và trưởng nhóm làm tốt công việc của mình từ khi bắt đầu thành lập nhóm đến khi hoàn thành dự án thông qua các trạng thái. Ví dụ như ngay từ khi bắt đầu việc thành lập nhóm Alpha này đã hướng dẫn rõ ràng các công việc cần thực hiện thông qua các Checklist của trạng thái Seeded như:
- Xác định nhiệm vụ của nhóm
- Xác định các ràng buộc trong hoạt động của nhóm. - Đưa ra cơ chế phát triển của nhóm.
84
- Xác định những hạn chế về cách làm việc, nơi làm việc mang đến. - Xác định trách nhiệm của nhóm.
- Xác định mức độ trách nhiệm của nhóm. - Xác định khả năng bắt buộc của nhóm. - Xác định quy mô của nhóm.
- Xác định quy tắc quản lý nhóm
Alpha này còn giúp cho người quản lý theo dõi các hoạt động trong nhóm, theo dõi sự gắn kết giữa các thành viên trong nhóm thông qua trạng thái Collaborating.
Áp dụng các trạng thái trong Alpha Work giúp cho công việc được tiến triển thuận lợi hơn, bởi trong Alpha này ngoài việc xác định các công việc cần thực hiện thì nó còn hướng dẫn các việc cần làm trước khi bắt đầu thực hiện công việc, đó chính là trạng thái Prepared. Trạng thái này liệt kê các công việc chuẩn bị trước khi bắt tay vào việc phát triển dự án như: Chuẩn bị nguồn tài nguyên, xác định kinh phí, xác đinh các rủi ro có thể gặp…Nhờ có những chuẩn bị này mà khi thực hiện sẽ không bị thụ động khi gặp phải một số vấn đề khó khăn.
Với các quy trình khác thì không phải tất cả các dự án đều dùng đến nó, có dự án dùng quy trình thác nước, có dự án lại dùng Agile, có dự án lại dùng xoắn ốc nhưng với SEMAT thì bất kể dự án nào cũng giống nhau, đều chứa những những thành phần của Kernel hay nói khác đi là các thành phần Kernel luôn là cố định trong mỗi dự án. Do vậy người sử dụng Kernel sẽ nhanh thành thạo trong quá trình sử dụng.
Trong một ứng dụng thì các thành phần Kernel là giống nhau do đó có thể được dùng lại mà không cần xây dựng lại từ đầu. Ví dụ như một dự án có ba nhóm thực hiện như hình 4.1, các nhóm đều sử dụng chung Kernel, dựa vào đó để thực hiện phát triển phần công việc của mình.
85
Áp dụng Kernel trong SEMAT giúp thống nhất hóa quá trình phát triển phần mềm, nó giống như một tiêu chuẩn chung nêu ra để mọi người chỉ việc lấy nó làm chuẩn, các bước trong quá trình phát triển chỉ việc làm theo như hướng dẫn, nhờ đó sẽ không bị thiếu, không bị bỏ qua bất kỳ bước nào.