May 17, 2012

Yêu cầu đối với một team lead (TL) dự án phát triển phần mềm (IT)

Ở đây, một "team" trong một dự án IT được hiểu (cấu trúc bởi) là một nhóm khoảng 2 đến 10 người; "team lead" hay "team leader" là người chịu trách nhiệm lãnh đạo và quản lý (thông thường: về mặt kỹ thuật) toàn bộ team đó.

Thông thường, "team lead" được hiểu là "technical lead" nhưng trong thực tế, nhiệm vụ của team lead bao gồm một phần việc của project manager như quản lý tiến độ của từng thành viên trong team hoặc cả dự án.

Ghi chú: Những chia sẻ ở đây áp dụng cho các dự án IT với nhân sự Việt Nam trong các công ty chưa có quy trình cụ thể cũng như phân chia chức năng rõ ràng với từng role của nhân sự.

Với những dự án IT có cỡ về nhân sự khoảng 10 người, tùy vào năng lực của team lead hay project manager cũng như đặc thù chức năng, cách phân chia chức năng (mặt kỹ thuật) và nhân sự, có thể chia nhỏ hơn thành những team từ 2 tới 5 người để dễ dàng quản lý.

Yêu cầu đầu tiên với là khả năng lãnh đạo và ảnh hưởng. Đặc biệt, với đặc thù tính cách (của lập trình viên), team lead cần có sức ảnh hưởng và "bảo" được những người dưới mình (tester, lập trình viên (PG)).

Có trách nhiệm với công việc và ý thức về deadline, sẵn sàng làm thay bất kỳ việc gì bị chậm (hoặc thậm chí bị PG, tester bỏ không làm). Ở Việt Nam, cấp dưới yêu cầu và phục "sếp" có thể làm và sẵn sàng làm được tất cả những gì họ làm (dù điều này phi lý)

Hiểu năng lực, tính cách của từng người cũng như tình hình gia đình, tài chính để phối hợp. Đây là đặc thù ở Việt Nam.

Coaching: Hướng dẫn thành viên làm việc, đặc biệt quan trọng khi tỉ lệ người mới, ít kinh nghiệm (sinh viên mới ra trường), hoặc tốt hơn nữa, training nhưng không qua coaching. Một ví dụ training tốt là gửi tài liệu tham khảo để các thành viên có thể đọc (và ngấm dần) trong thời gian rảnh cũng như để "giải trí". Đặc thù ở Việt Nam là, cách tốt nhất để inspire nhân viên là: làm hộ, làm mẫu.

Team lead đồng thời là architecture designer, hiểu theo nghĩa: Có thể xây dựng cấu trúc hệ thống, hiểu mọi công nghệ trong phần mềm mà họ tham gia.

Team lead (thông thường) cũng đồng thời là người thực hiện, hoặc ít nhất hiểu và review được các loại basic design (database, screen, UML) cũng như detail design.

Khả năng coding của team lead không quan trọng bằng khả năng code review, qua đó giúp PGs sửa lỗi (lập trình), đặc biệt là các lỗi khó.

Một trong những khả năng quản lý (cần phối hợp và tư vấn PM nếu cần) cần thiết thể hiện ở việc: Có thể tạo Work Breakdown Structure. Cách đơn giản để thực hiện điều này: Phân chia việc theo quy trình dự án (thiết kế cơ bản, thiết kế chi tiết, lập trình, kiểm thử (đơn vị, tích hợp lần 1, 2, alpha, beta...) hoặc phân chia theo chức năng/module của từng người. Sử dụng một phần mềm quản lý dự án như Redmine hay MS Project là bắt buộc.

Truyền đạt rõ ràng trong cả ngôn ngữ nói và viết. Nếu team lead không truyền đạt rõ, cấp dưới sẽ làm sai và công để "sửa sai" sẽ tốn hơn nhiều lần so với công bỏ ra để viết/nói rõ ràng. Thông thường IT team lead xuất thân từ kỹ thuật và yếu với các kỹ năng mềm.

Tham khảo: http://www.npd-solutions.com/leader.html



--
Best Regards,
Nguyen Hung Vu [aka: NVH] ( in Vietnamese: Nguyễn Vũ Hưng )
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
http://www.facebook.com/nguyenvuhung
Nguyễn Vũ Hưng's blog on Free and Open Source: http://nguyenvuhungvietnam.wordpress.com/
Học tiếng Nhật: http://hoc-tiengnhat.blogspot.com/
Vietnamese LibreOffice: http://libo-vi.blogspot.com/
Mozilla & Firefox tiếng Việt: http://mozilla-vi.blogspot.com/

Disclaimer: When posted to social networking groups include, but not limited Linux Users' Groups,
Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not*
the opinion of my employer(s), associations and/or groups I join.

No comments: