- vừa được xem lúc

Một senior developer quản lý công việc như thế nào?

0 0 10

Người đăng: DacTinh NET

Theo Viblo Asia

Mình đã từng là một lập trình viên non trẻ, trải qua rất nhiều thời gian ngập lụt trong công việc, chẳng biết đâu là thứ cần ưu tiên, giao tiếp sao cho hiệu quả với đồng nghiệp để tháo gỡ vấn đề... Đôi khi mình cảm giác như đang leo núi mà không biết bao giờ mới tới đỉnh.

Muốn loại bỏ những khó khăn này trong quá trình làm việc và thăng tiến, hãy xem cách một senior dev thường quản lý công việc của họ như thế nào. Bài viết dưới đây là những kinh nghiệm mình thu lượm từ quá trình làm việc của chính mình và quan sát những đồng nghiệp/sếp/bạn bè xuất sắc… xung quanh.

Trong bài viết, mình chia sẻ 5 soft skills về tổ chức, quản lý công việc là chính. Còn specialist skills, mọi người có thể follow mình nếu có thời gian mình sẽ chia sẻ đến các bạn nhé!

1. Define toàn bộ các công việc được giao

Thường thì khi start một sprint mới, team của mình luôn có meeting đầu sprint để inform mục tiêu sprint và phân công công việc cho các team nhỏ, members. Các bạn không nên thử thách trí nhớ của mình nhé, vì ai rồi cũng phải tự trách mình là não cá vàng mà thôi. Các bạn nên note lại toàn bộ các công việc mình được giao càng chi tiết càng tốt, để có một cái nhìn tổng thể về khối lượng công việc của mình trong sprint.

Nếu bạn là một leader, thì việc liệt kê toàn bộ công việc của team mình ra là điều không thể không thực hiện, để sếp không gõ đầu khi hỏi members của em đang làm gì, làm đến đâu… Bản thân mình là một senior developer, một Head of Development, mình luôn phải nắm tiến độ công việc của team, các công việc cụ thể của từng thành viên như thế nào. Đầu mỗi sprint khi sếp đưa ra mục tiêu, việc đầu tiên của mình đó là ngồi xuống và define toàn bộ các đầu việc ra và phân công nhiệm vụ. Chỉ mất một ít thời gian thôi nhưng mình có thể tracking tiến độ của team rất tiện lợi và có những điều chỉnh kịp thời để đảm bảo được mục tiêu mà sếp giao.

Bật mí với các bạn mình vừa được các đồng nghiệp giới thiệu một tool để quản lý và tổ chức công việc rất đơn đơn giản nhưng dùng thì lại khá hiệu quả - Cleeksy mới nổi trong thời gian gần đây. Mọi người có thể tham khảo tính năng mình đính kèm link ở trên nhé!

Mọi người có thể tham khảo cách mình define công việc cho team đầu tuần trong hình dưới đây:

2. Biết công việc nào cần ưu tiên để không gây rủi ro cho dự án

Biết task nào cần thực hiện trước rất quan trọng, nếu không bạn sẽ dàn trải thời gian của mình, hoặc dành thời gian cho những task không tạo ra nhiều giá trị. Mình sẽ tổ chức những buổi meeting hoặc discussion để quyết định với cả team đâu là task cần thực hiện trước và cần đầu tư.

2 cách đơn giản mình sử dụng là:

  • Mình thường dùng Kanban, một không giản chung để cả team cùng in-sync, sau đó tạo task và phân loại task với các nhãn ưu tiên “Cao/Trung/Khẩn” để phân loại mức ưu tiên.
  • Hoặc mình thực hiện ưu tiên trực tiếp tại mỗi sprint, công việc có mức ưu tiên cao thì đưa vào sprint, công việc ở mức ưu tiên thấp có thể để ở backlog và xử lý sau… Với những task ưu tiên cao, mình và team ưu tiên thực hiện trước, nên cuối sprint cả team nếu có rủi ro trong quá trình phát triển cũng rất ít khi bị sếp dí. Nếu có bị dí thì cũng chỉ còn những công việc tồn đọng với độ ưu tiên thấp, đỡ stress hơn.

Kanban của team mình sau khi phân loại công việc sẽ trông như thế này:

3. Giao tiếp rõ ràng, tránh tình trạng đồng nghiệp “tự hiểu”, “tự làm”...

Khi làm việc, có lúc bạn sẽ phải làm việc với các cross-functional team (dạng team đa chức năng), bạn vừa phải giao tiếp với các bạn dev, vừa giao tiếp với các bên liên quan có ít kiến thức về kỹ thuật. Hãy cố gắng giao tiếp, cộng tác sao cho minh bạch, để đồng nghiệp hiểu bạn đang muốn gì. Bạn cũng cần biết cách giao tiếp với sếp của bạn, có nghĩa là bạn cần có thông điệp rõ ràng, ngắn gọn tập trung vào điểm mấu chốt. Hãy dựa vào chuyên môn của bạn để có thể thảo luận và có các ý kiến tác động đến kết quả kỹ thuật trong các cuộc họp.

Senior Developer cũng thường phải nói chuyện với khách hàng và trao đổi với những bộ phận ở trên mình. Bạn phải biết từ chối hoặc thương lượng về thời gian và khối lượng công việc. Nhận hết việc sẽ khiến bạn và members của mình “quá tải”, cần biết nói “không” đúng lúc.

4. Phân chia công việc hợp lý để không ai “quá tải”, kể cả bạn

Khi bạn là Senior Developer, bạn còn phải quản lý công việc của các members trong team nên kỹ năng giao việc là rất quan trọng. Phân chia task sao cho đúng người đúng việc giúp bản thân cũng như những đồng nghiệp làm chung theo đúng tiến độ, không bị “quá tải” và giảm khả năng gây lỗi của mọi người trong team.

5. Theo dõi tiến độ công việc của bản thân và của team member hiệu quả

Là một developer thì các bạn biết circle development rồi đúng không? Từ code => unit test => deploy => QC verify => có bugs trả về => fix bugs... Mình cần biết trạng thái của các task mà bản thân hoặc members của mình phụ trách đang ở đâu để có thể ước lượng được thời gian hoàn thành, hay khối lượng công việc như vậy có kịp release trong sprint không. Ngoài ra nếu sếp hỏi thì còn report nữa.

Tính tổ chức là rất quan trọng. Tiêu chí này đi làm ở bất kỳ môi trường nào thì các nhà tuyển dụng đều yêu cầu cả nhé. Mọi người có thể note tiến độ task của mình ở bất cứ đâu, như docs, excels,... Nhưng ngày nay thì có khá nhiều tools quản lý công việc hỗ trợ điều này và đỡ rất nhiều thời gian rồi nên mọi người nên tìm và sử dụng nhé. Ví dụ như tool quản lý công việc mà mình có dùng bên trên. Tool có hỗ trợ một số tính năng nâng cao giúp mọi người giải quyết một số case phức tạp nữa. Với một Head of Development mình phải quản lý công việc theo nhiều trường hợp khác nhau và tool này support khá tốt.

=> Mình đã chia sẻ một số soft skills về quản lý công việc, hy vọng sẽ giúp ích được cho các bạn trong quá trình làm việc và thăng tiến để tránh bị sếp “gõ đầu” nhé. Mọi người có thể góp ý thêm cho mình một số skills mà các bạn thấy hữu ích để mình cùng cải thiện nha, vì một tương lai tươi sáng cho con em chúng ta. Hẹn gặp nhau ở những comments nhé các bạn !!!!! 👋👋👋

Bình luận

Bài viết tương tự

- vừa được xem lúc

Các bước xây dựng chương trình / hệ thống thành công

Làm sao để xây dựng chương trình/hệ thống hoàn thiện và đúng đắn? Câu hỏi này nhiều bạn sẽ trả lời quá dễ, chương trình đúng yêu cầu là đúng, khách hàng hài lòng là được. Đôi khi bạn cũng không biết trong một đống thứ, tính năng, tốc độ, độ chính xác, giao diện mình nên ưu tiên hoàn thiện cái nào.

0 0 35

- vừa được xem lúc

5 định luật mọi lập trình viên nên biết

Đây là bài dịch từ trang medium.com. Mời các bạn xem bài gốc tại đây: https://medium.com/swlh/5-laws-every-software-developer-should-know-d28c197cce4f.

0 0 82

- vừa được xem lúc

Usability là gì? Những lưu ý khi thiết kế Usability

Usability là một yếu tố quan trọng trong sự thành bại của sản phẩm. Thật đáng tiếc khi sản phẩm làm ra ưu việt về tính năng, nhưng lại không được người dùng tiếp nhận, đơn giản chỉ vì khó sử dụng.

0 0 22

- vừa được xem lúc

What is a Software Development Lifecycle?

Software development is designing, documenting, programming, testing, debugging, and continually maintaining for creating frameworks, applications, and software components. These steps are collectivel

0 0 22

- vừa được xem lúc

System Design (Thiết Kế Hệ Thống) là gì? Cần thu thập những thông tin gì để có thể bắt tay vào thiết kế?

Bài viết này sẽ giúp anh em trả lời một số câu hỏi:. . System Design là gì. Một thiết kế như nào được cho là hiệu quả.

0 0 20

- vừa được xem lúc

Chia sẻ kiến thức về lập trình: Công cụ hỗ trợ, phương pháp phát triển phần mềm và kỹ năng lập trình (Phần 2)

Sau bài viết trước về các ngôn ngữ lập trình chính như Python, JavaScript, Java, C++, Ruby và Swift, hôm nay chúng ta sẽ đào sâu vào một chủ đề cũng không kém phần quan trọng: các công cụ hỗ trợ lập t

0 0 13