Thao Trinh – Người thích tự do và lang thang như gió -
  • Trang chủ
  • Chuyện nghề
  • Đọc
  • Me
Thao Trinh – Người thích tự do và lang thang như gió -
Trang chủ
Chuyện nghề
Đọc
Me
  • Trang chủ
  • Chuyện nghề
  • Đọc
  • Me
Đọc

Agile Y và những điều thú vị

thaotrinh.info__agile-y-va-nhung-dieu-thu-vi

Bìa sách có gạch nối từ A tới Y có lẽ cũng là cách chơi chữ của tác giả cùng với tên sách – Agile từ A tới Y (chưa tới Z). Nội dung sách gồm 3 phần rõ ràng: Agile, tổ chức, cá nhân. Các nội dung trong sách thì mình cũng đọc, góp nhặt từ nhiều nơi, tuy vậy cũng học hỏi được rất nhiều thứ từ cách nhìn nhận của tác giả và … 1 số thứ chưa biết 😀

Về Agile – phần 1, tác giả có 2 chương đầu nói về thực trạng của việc phát triển phần mềm và đưa ra câu hỏi tu từ: “Liệu Agile có phải là giải pháp?”. Phần này mĩnh sẽ note lại trong 1 bài viết khác bới nó khá dài và có nhiều câu chuyện để cùng bàn luận mổ xẻ. Lướt tiếp phần 1 điều mình thích là ở chương 5 phần kĩ thuật và công cụ, phần này có đề cập tới database versioning và branch strategy làm mình khá tâm đắc. Thực sự với mỗi team làm phần mềm, đây là 2 thứ cực kì quan trọng và đáng giá để nghiên cứu và đưa nó vào quy trình, nhất là khi team bạn làm Agile (Scrum). Tư tưởng ở đây cho việc database versioning là coi database như một version của code, commit kèm theo source. Luôn có script update database và restore database đi cùng nhau cho 1 version, điều này khiến CSDL của bạn được đảm bảo, có truy vết và luôn ở trạng thái có thể backup được lại phiên bản ổn định. Branch strategy với tư tưởng forward-intergration (tích hợp trước) giúp việc đảm bảo luôn có sự ổn định ở branch develop là 1 ý tưởng hay có thể áp dụng ngay lập tức cho nhóm của bạn.

Chương về tổ chức, mình đọc thêm được các thông tin về việc scale up khi nhóm Scrum có rất nhiều thành viên. Thực ra trước đây có nghe nói về nexus nhưng chưa bao giờ “dấn thân” tìm hiểu – nhân tiện đọc Agile Y nên lại phải lọ mọ đọc thêm, đây cũng là 1 điểm mình học hỏi được từ Agile Y.

Chương về cá nhân mình thích cách Hiển – tác giả nói về cách định nghĩa công việc theo tiêu chí SMART. Trước đây mình không hề quan tâm tới việc này. Có lẽ vậy nên cách mình nhìn vào trạng thái công việc thường gặp vấn đề mơ hồ, không rõ ràng. Bạn có thể đọc về SMART tại bài viết khác trong blog của mình (cũng nhặt trong sách Agile Y ra).

Kết.
Nếu chưa đọc nhiều về Agile/Scrum thì sách cung cấp khá nhiều kiến thức và chia sẻ về Agile/Scrum. Nếu đã có kiến thức tổng quan về Agile/Scrum bạn cũng có thể tìm thấy những lợi ích khác từ sách: cách dùng các công cụ trong quá trình làm việc, các phát triển, tổ chức đội nhóm làm Scrum khi scale up và cách phát triển bản thân – tối ưu hóa giá trị công việc làm ra (thay vì tối ưu khối lượng công việc). Đề xuất nên đọc cho mọi anh em làm phần mềm 🙂

July 10, 2020by thaotrinh
Agile (APM)

Bàn về rủi ro trong dự án Agile

thaotrinh.info__ban-ve-rui-ro-trong-du-an-agile

Với sự hiểu biết về Agile và Scrum, bạn dễ dàng nhận thấy việc quản lý rủi ro trong dự án áp dụng Agile/Scrum được thể hiện ở các đặc điểm của Agile hay trong các sự kiện của Scrum Framework.

– Lặp và tăng trưởng: Scrum chia “dự án” thành các giai đoạn – sprint kéo dài từ 1-4 tuần. Kết quả của mỗi sprint là một phần tăng trưởng có thể sử dụng được (tuỳ thuộc định nghĩa hoàn thành, phần tăng trưởng này có thể deploy hoặc không). Việc theo dõi thường xuyên và liên tục được phần tăng trưởng này giúp khách hàng tiếp cận được kết quả sản phẩm sớm hơn và đưa ra các phản hồi. Việc này giúp tránh lãng phí nguồn lực, thời gian và chi phí. Việc theo dõi kết quả của nhóm phát triển thường xuyên cũng giúp PO (SM) nhận định được năng suất thực tế của nhóm. Từ đó đưa ra các chiến lược để tối ưu hoá được năng suất lao động.

– Giao tiếp thường xuyên và hiệu quả: Scrum định nghĩa các sự kiện, tuân theo nó, nhóm phát triển thực hiện công việc theo nhịp độ đều đặn. Từ nội dung và kết quả các sự kiện, SM giúp nhóm phát lộ các vấn đề – bằng các kĩ thuật đặt câu hỏi, từ đó xử lý hoặc đưa ra các giải pháp thích ứng. Ví dụ thông qua buổi họp daily stand up, nhóm phát triển phát hiện một vài issues có thể ảnh hưởng tới tiến độ chung của cả đội, việc tìm ra giải pháp và người chịu trách nhiệm (follow up để hỗ trợ) là cần thiết, lúc này thay vì cá nhân đang gặp issue tự giải quyết vấn đề, buổi họp daily stand up có thể giúp đội nhóm hiểu vấn đề đang có, và cùng đưa giải pháp hoặc cùng tìm kiếm giải pháp trợ giúp thành viên của nhóm. Nhóm phát triển cũng luôn giao tiếp với PO nhờ hỗ trợ giải đáp các vấn đề liên quan tới User Story – nơi được hiểu là bao gồm các yêu cầu của các bên liên quan, và khách hàng cuối. Điều này khiến nhóm phát triển luôn hiểu đúng các yêu cầu và thực hiện đúng những mong muốn của PO (hay khách hàng)

– Vòng phản hồi ngắn và thích ứng thường xuyên, minh bạch thông tin: Các sự kiện trong Scrum giúp nhóm phát triển tương tác thường xuyên, minh bạch thông tin từ đó phát hiện sớm các vấn đề để giải quyết (hoặc thích ứng).

– Công cụ hỗ trợ, bao gồm: Tích hợp liên tục CI/CD, lập trình cặp – pair programing, refactoring code, lập trình hướng kiểm thử TDD…

Scrum không nhắc đến cụ thể việc quản lý rủi ro cho dự án phần mềm, tuy nhiên cùng với triết lý Agile, Scrum Framework thiết kế các sự kiện, các vai trò, sprint và các artifact từ đó giúp nhóm phát triển vận hành và làm việc theo một khung làm việc chung, đều đặn, từ đó dần cải thiện năng suất, sớm phát hiện các vấn đề để tìm cách xử lý thích nghi.

Là 1 PM truyền thống, và giờ đóng vai trò PO trong dự án phần mềm, bạn cần làm gì để quản lý rủi ro hiệu quả?

– Giao tiếp, giao tiếp và giao tiếp: Vai trò PM hay PO khá giống nhau ở yêu cầu công việc cần giao tiếp rất nhiều. Tương tự PM, PO cần giao tiếp với các stack holder, khách hàng để chuyển hoá những yêu cầu thành các User Story trong Product backlog.PO cần dành đủ thời gian cho nhóm phát triển để giải thích về các User Story trong Sprint backlog – trong trường hợp buổi planning chưa thể làm rõ được, hoặc tiêu chí hoàn thành cần phải cập nhật cho phù hợp với điều kiện thực tế. Bởi vậy, lời khuyên đầu tiên là Hãy dành đủ thời gian – cho nhóm phát triển và product backlog.

– Product backlog là quan trọng: Hãy luôn làm rõ các hạng mục công việc trong product backlog theo độ ưu tiên, càng ở trên cao thì các yêu cầu công việc càng phải rõ ràng, có tiêu chí hoàn thành – làm thế nào nhóm phát triển có thể hoàn thành công việc nếu họ không biết thế nào là hoàn thành? Bạn sẽ tốn bao nhiêu tài nguyên và nhân lực để làm một chức năng không đúng với yêu cầu của người dùng (khách hàng)?. Làm sao PO tối ưu hoá được ROI nếu không có thứ tự ưu tiên cho các công việc? Làm thế nào các manager có thể hỗ trợ team nếu không phát hiện ra các vấn đề. Hãy chú ý lời khuyên thứ 2: Product backlog là quan trọng, làm rõ nó, minh bạch với các bên liên quan.

– Tập trung vào một sản phẩm: Tuỳ tình huống, PO có thể phải đảm nhiệm hơn 1 sản phẩm. Việc này không bị cấm, nhưng không hề được khuyến khích. Đừng tham lam, lúc này bạn và tổ chức phải đánh đổi, 1 người chuyên hay 1 người đa nhiệm?

– Dù PO sẽ bị áp lực bởi nhiều bên để đưa vào các yêu cầu mới, cập nhật các yêu cầu cũ, nhưng bạn hãy cân nhắc việc này. Đưa nó vào product backlog, đánh độ ưu tiên, tạo tiêu chí hoàn thành, tiêu chí chấp nhận được thì tốt hơn là đưa vào sprint backlog – nơi các công việc của nhóm phát triển đã được định hình. Hãy chỉ nên dừng 1 sprint khi mục tiêu của nó đã lỗi thời – không nên vì một lý do nào khác. Lời khuyên thứ 3: Chuyển các yêu cầu vào product backlog. Đánh giá các cập nhật, nếu nó không làm ảnh hưởng tới sprint goal thì có thể thương lượng với nhóm phát triển để xử lý nó đồng thời trong sprint.

– Năng suất của nhóm cần được tôn trọng: Agile hay Scrum không giải quyết tất cả các vấn đề, nó chỉ giúp sớm phát hiện các vấn đề. Đừng đưa cho nhóm phát triển khối lượng công việc quá sức của họ và bắt họ làm theo. Hãy để nhóm tự ước lượng khối lượng công việc của mình, thực hiện nó đều đặn và tăng dần năng suất. Việc PO (hay bất kì ai) can thiệp vào khối lượng công việc của nhóm sẽ làm mất tính tự tổ chức của nhóm. Và vì vậy mô hình quản lý truyền thống lại được nhắc tên. Bạn không muốn điều này đúng không? Lời khuyên thứ 4: Mặc dù vài sprint đầu, nhóm có thể có tiến độ không tốt hoặc bộc lộ nhiều vấn đề, hãy để Scrum Master xử lý các vấn đề, và nhóm tự điều chỉnh năng suất lao động. Tôn trọng nhóm và nhóm sẽ trả lại bạn giá trị tương xứng.

– Học cách xem burndown chart, burnup chart, xem bảng kanban vật lý (nếu có) của nhóm: Quan sát các biểu đồ để trích xuất thông tin, từ đó nắm được tình trạng của nhóm

Nếu bạn mới tiếp cận với Agile và Scrum, từ vai trò truyền thống Project Manager bạn phải đóng vai trò mới là Product Owner, mình thực sự khuyên các bạn nên chú ý mội vài chỉ dẫn trên. Tất nhiên, nó là không đủ trong môi trường phát triển phần mềm phức tạp, nhưng ít nhất, bạn cũng có những khái quát để tiếp cận vấn đề. Chúc bạn thành công.

July 10, 2020by thaotrinh

About me

Đề xuất cho bạn

Định nghĩa công việc theo phương pháp S.M.A.R.T

Định nghĩa công việc theo phương pháp S.M.A.R.T

Revision database

Revision database

Tạo đối tượng trong C# từ url API hoặc Json String

Git hướng dẫn cơ bản cho người mới

Git hướng dẫn cơ bản cho người mới

Không phải làm bao nhiêu mà là tạo ra bao nhiêu

Không phải làm bao nhiêu mà là tạo ra bao nhiêu

Bài mới

  • Định nghĩa công việc theo phương pháp S.M.A.R.T
  • Họp xong việc và họp thêm việc
  • Giá trị của Scrum Master trong case study của Leflair
  • Sự khác biệt giữa làm việc chăm chỉ và làm việc chăm chỉ một cách thông minh.
  • Một tách trà

Mọi người quan tâm

No comments to show.

Chuyên mục

  • Agile (APM)
  • Chuyện nghề
  • Đọc
  • Học nghề
  • Làm thợ
  • Uncategorized

Tags

Agile Dev Kanban Marketing Nhóm Scrum Sách Sản phẩm Think Tôi tự học

Người học thức, tức là người thà biết ít mà thật biết những gì mình biết, còn những gì mình không biết, thì cũng biết rõ là mình không biết. “Không có sự dốt nát nhục nhã bằng tin tưởng rằng mình đã biết trong khi mình chưa biết”. Văn hóa là một vấn đề thuộc phẩm chứ không phải thuộc lượng

© 2015 copyright thaotrinhminh@gmail.com // All rights reserved // Privacy Policy