Sunday, May 11, 2014

NHỮNG VẤN ĐỀ KHI ÁP DỤNG SCRUM Ở VIỆT NAM

1 Hãy để water fall trong theo dòng thác.

Khi chuyển từ watter fall sang scrum là một vấn đề lớn vì hầu như những điều chúng ta biết trong watter fall được chúng ta chấp nhận như chuyện hiển nhiên. Scrum thoáng nghe qua có những thứ gần như trái ngược với những gì chúng ta từng biết. Chẳng hạn như:

Water fall
Scrum
Tài liệu thiết kế rõ ràng càng rõ càng tốt
Tài liệu cần thiết đủ để implement
Làm từng khâu (Phân tích, thiết kế, Implement … ) cần theo tuần tự rõ ràng. Mõi giai đoạn được cần có những tài liệu rõ ràng để lưu lại.
Chỉ lấy một chức năng (story card) một nhóm team cần làm. Sau đó cùng nhau chơi tất cả các giai đoạn này (Phân tích, thiết kế...)
Bạn đã thấy ví dụ trên. Nó đã thể hiện sự khác nhau rõ ràng. Những kiến thức về watter fall và quá hoàn hảo thế bây giờ chuyển đổi qua Scrum với quan điểm mới là chuyện hoàn toàn khó làm và khó triển khai.

1.1 Tài liệu phát triển như thế nào.

Để cần biết chúng ta nên viết tài liệu trong scrum được ghi đến mức nào chúng ta nên cần biết chúng ta viết tài liệu để làm gì?
Water Fall
Scrum
Dùng để report cho khách hàng
Dùng để report cho khách hàng
Dùng để đảm bảo các giai đoạn cần khóp để có thể gắn với nhau được
Dùng để note lại gợi nhớ sau này về chức năng.


Như vậy chúng ta đã thấy rằng Tài liệu dùng để trao đổi thông thông tin qua các giai đoạn Design → Implement …
Vì Water Fall, các giai đoạn tách rời nhau nên tài liệu cần rõ ràng để các giai đoạn đảm bảo khóp nhau.
Còn Scrum các giai đoạn cùng làm một lúc, thành viên trong team thường xuyên trao đổi nhau và đi đến hoàn thành task. Vậy tài liệu chỉ cần đủ ghi chú lại để gợi nhớ sau này. Không có giá trị trong giai đoạn làm ra sản phẩm nhiều.

1.2 Quan niệm từng giai đoạn và chờ đợi.

Như bạn biết đấy trong watter fall khâu này xong rồi đến khâu kia. Nếu đến khâu của mình, phát hiện vấn đề phải chuyển về khâu trước để thiết kế lại dẫn đến tốn thời gian và gặp nhiều phiền phức.
Scrum được cái là mọi người ngồi gần nhau có gì hỏi nhau liền. 2 yếu tố quan trọng cùng làm trong scrum là: Cùng làm chung một task và trao đổi nhau liên tục. Nhưng thực tế có bao nhiêu công ty làm được điều này? Vấn đề ở đâu?
Vấn đề là:
  • Trong qui trình làm phần mềm phần lớn được chuyên môn hóa rất nhiều ví dụ: Graphic, Developer... Để một người có thể làm được tất cả là vấn đề lớn và độ chuyên sâu không có. Nên các công ty thường làm theo dạng cuốn chiếu (cho một sprint làm Graphic và một sprint Implement chức năng này – Cách này vô tình đã chuyển chúng ta qua watter fall – Chúng ta đã nghĩ nó nhanh nhưng thưc tế nó không nhanh như chúng ta tưởng).
  • Có vài khâu bị chậm trể so với khâu khác vì task này cần nhiều hơn task kia. Ví dụ tôi đang làm game. Vẽ art và graphic cực kỳ lâu. Hơn so với implement. Vậy nếu làm chung thì developer phải ngồi chơi chờ art ah? Oh không.Chúng ta cần tăng resource art để tương xứng để đảm bảo đi chung luồng với developer.

Không tìm cách cải tiến estimate.

Tất cả các dự án nếu bạn làm đúng kết hoạch bạn đã thành công lớn rồi. Nhưng với Scrum lúc đầu nó không cần bạn phải đúng. Chính vì thế vô tình chúng ta thiết lập cho bản thân chúng ta một cơ hội không cần đảm bảo về thời gian như chúng ta nói.
Đây phần nhiều là vấn đề tâm lý. Tôi ví dụ: Trong water fall thời gian của bạn được PM set rồi hỏi bạn và ép bạn làm đúng hạn. Nhưng trong Scrum là bạn quyết định thời gian và chịu trách nhiệm với Product Owner.
- Khi bạn được hỏi “Em vẽ màn hình này chừng nào em xong?”. Bạn rất là đắng đo vài áp lực trách nhiệm được đổ dồn lên bạn đúng hong?
- Thông thường bạn trả lời “Em chưa biết nữa để em trong đó có gì rồi nói anh sau”. Để estimate Scrum Master nói “Em cứ cho anh thời gian đại đi, không cần phải chính xác 100% đâu”.
- Thế là bạn cho anh trả một estimate mà bạn không hề có trách nhiệm gì với nó cả
Đó là phần lớn những nguyên nhân dẫn đến estimate sai. Làm như thế bạn đã vô tình làm cho bạn nhiều lý do để fail hơn (Ngoại trừ task không rõ ràng hoặc gặp khó khăn về kỹ thuật).

3 Chưa xác định kết quả công việc

Khi bạn nhận một task bạn nên biết được bạn phải trả về cái gì cho người ta. Bạn với PO phải thỏa thuận và làm rõ kết quả đó. (Thông thường bạn phải chủ động cho PO thấy kết quả mà họ muốn vì phần lớn là các PO không được không minh và họ thường nói những thứ mà họ không biết họ muốn nói gì).
Bạn cần tìm đủ mọi cách để lấy requirement rõ ràng để bạn không bại reject sau này.

4 Không đủ kiến thức về Scrum

4.1 Chưa rõ tác dụng của các cuộc hợp

Scrum là một khung làm việc chứa các cuộc hợp. Nếu thành viên trong nhóm của bạn không hiểu rõ về những cuộc hợp này thì nó là vô ích. Những lý do là:
  • Scrum master chưa truyền được tầm quan trọng các cuộc hợp. Nếu có thì tổ chức các cuộc hợp chưa được hiệu quả như lý thuyết → thành viên trong nhóm ngày càng nãn.
  • Tư tưởng của team về Water fall vẫn còn ăn quá sâu.

4.2 Kỹ năng giao tiếp chưa tốt

Communication là một kỹ năng quan trọng trong Scrum. Nhưng phần lớn chúng ta không được tốt về skill này dẫn đến nó không được tốt. (vì thế chúng ta thích water fall hơn).

4.3 Giới hạn về kỹ thuật


Như chúng ta có những giới hạn về kỹ thuật mỗi người chỉ cần biết một lĩnh vực của mình thôi → Chúng ta phải làm cuốn chiếu như đã đề cập ở trên.

No comments:

Post a Comment