Scrum ở một nhóm của NAL Vietnam

23:03:00 |

Scrum ở một nhóm của NAL Vietnam

Phần này mô tả tóm lược cấu trúc cũng như cách vận hành của một nhóm phát triển sản phẩm tại công ty NAL Vietnam được vận hành theo mô hình Scrum.

Sản phẩm

Sản phẩm mà nhóm đang xây dựng là một phiên bản của hệ thống CMS của khách hàng. Hệ thống này cho phép tạo các ứng dụng web để khách hàng quản lý nội dung một cách nhanh chóng. Ngay cả những ứng dụng có độ tùy biến cao thì cũng chỉ sau một vài ngày tùy chỉnh cũng đã cung cấp một ứng dụng hoàn thiện.

Ở phiên bản 2.0, công ty có dự định nâng cấp hệ thống hiện thời thành một Framework Internet of Things cho phép tạo ra những ứng dụng mà ở đó khách hàng có thể kết nối mọi thứ.

Khách hàng

Khách hàng trực tiếp của nhóm là một CTO của công ty tại Nhật. Ông là người có hiểu biết rất rõ về sản phẩm và tầm nhìn sẽ đi. Tuy nhiên do là CTO của một công ty lớn gồm nhiều công ty con nên công việc rất nhiều, ông chỉ có thể đưa ra định hướng và dành thời gian hạn hẹp hàng tuần để nói chuyện về tầm nhìn đó với nhóm. Các kiến trúc, kỹ thuật và yêu cầu cụ thể thì ông không có thời gian thảo luận.

Công nghệ

Công nghệ lõi của ứng dụng là Java. Tuy nhiên nhóm sử dụng rất nhiều các công nghệ khác nữa để phù hợp với từng nhu cầu cụ thể: Python, Scala, v.v.

Là một framework nên kiến trúc hệ thống và thiết kế cho từng phần cần phải linh hoạt, có tính mở rộng cao. Nhóm phải sử dụng rất nhiều các design pattern khác nhau.

Thời gian

Đây là một dự án phát triển sản phẩm, không phải là dự án gia công, nên dù đã đi được hơn một năm, nhưng thời gian để phát triển không biết tới khi nào thì kết thúc.

Ban đầu nhóm phát triển nhiều hạng mục liên quan tới framework, nhưng sau đó nhóm làm nhiều công việc liên quan tới việc chuyển các tính năng đang được cung cấp ở phiên bản 1.x sang phiên bản 2.0. Sau đó nhóm sẽ làm nhiều để mở rộng thêm các tính năng khác.

Kết quả đạt được

Đánh giá của khách hàng luôn ở mức độ rất hài lòng, và nhóm liên tục được mở rộng (hợp đồng dạng thuê nhóm).

Nhóm

  • Product Owner (PO): Ban đầu PO là khách hàng, nhưng sau đó vì khách hàng quá bận, nên công việc đó chuyển qua cho CTO của NAL. Nhưng mục đích của CTO ở NAL là tham gia vào các dự án RnD, nên cuối cùng được chuyển qua một Senior Developer. Bạn này đóng vai trò là proxy PO với khách hàng bên Nhật.

  • ScrumMaster: Là một thành viên có uy tín trong ban giám đốc.

  • Nhóm Phát triển: Gồm PO kiêm nhiệm và 6 lập trình viên khác.

Sự kiện:

  • Sprint: 1 tuần

  • Lập kế hoạch Sprint: sáng thứ 2 (9am - 11am) ở phòng họp

  • Scrum hằng ngày: 9 giờ sáng ngay tại chỗ làm việc của nhóm

  • Làm mịn Product Backlog: Khi nào PO có yêu cầu.

  • Sơ kết Sprint & cải tiến Sprint: chiều thứ 6 (3pm-5pm) ở phòng họp với tất cả thành viên ở Việt Nam.

Các tạo tác:

  • Product Backlog: Nhóm sử dụng Redmine. Khách hàng sẽ đưa ra các epic, theme, PO phía Việt Nam sẽ bổ thành các hạng mục nhỏ hơn.

  • Bảng công việc: Bảng trắng. Mọi thành viên Nhóm Phát triển cập nhật khi có sự thay đổi trạng thái công việc.

  • Định nghĩa hoàn thành:

    • Mọi tính năng đã chạy

    • Vượt qua kiểm thử đơn vị

    • Đã kiểm thử

    • Có tài liệu kiểm thử

    • Có tài liệu hướng dẫn sử dụng

    • Mã nguồn được review chéo thỏa mãn tiêu chuẩn

  • Quy tắc làm việc: Không có

Bài đọc 2

Cơ sở hạ tầng

  • Lưu trữ mã nguồn trên Gitlab và tuân thủ theo Git Flow

  • Jenkins để tích hợp liên tục và chạy unit test

  • Mã nguồn chạy qua SonarQube để phân tích

  • Nhóm thường xuyên có các seminar nghiên cứu công nghệ mới làm với toàn thể công ty. Đây là nền tảng để nhóm liên tục cải tiến việc phát triển ứng dụng.

  • Các thành viên cũng thường xuyên có các buổi trao đổi với nhau về Agile/Scrum và tham gia các hoạt động đào tạo Scrum/Agile của công ty.

Bài đọc 2 - 2

Một số đặc điểm khác

  • Nhóm tự làm công tác tuyển dụng. Nhóm tự viết yêu cầu tuyển dụng theo mẫu của công ty, họ tự lọc hồ sơ, phỏng vấn & thậm chí là xem xét lương cho người mới.

  • Việc đào tạo nhân viên mới gồm 02 bước: đào tạo chung thì do bộ phần đào tạo chung của công ty thực hiện, còn đào tạo công việc của Nhóm thì do nhóm tự phụ trách.

  • ·Các thành viên trong nhóm Phát triển đều có định hướng thành các chuyên gia kỹ thuật. Công ty có hỗ trợ việc đánh giá và đưa ra chế độ phù hợp với định hướng nghề nghiệp.

  • hông có thưởng, không có phát về mặt vật chất. Nếu có chỉ là sự tôn vinh theo nhóm & cá nhân ở các buổi tổng kết công ty.

  • Nhóm đi chơi với nhau khoảng 01 lần / 2 tuần từ bắn súng sơn, đi ăn, v.v..

Đọc Thêm…