Tổ chức trong dự án phần mềm – Bạn đang ở vị trí nào?

Bạn đã bao giờ được tham gia một dự án chính thức phát triển phần mềm chưa?

Dù bạn có tham gia rồi nhưng với dự án to, nhỏ khác nhau thì tôi nghĩ rằng tổ chức dự án mà các bạn đã tham gia và tổ chức dự án tôi sẽ trình bày dưới đây sẽ có đôi chút khác biệt. Lý do khác biệt chính là do volumn ( độ lớn ) của dự án. Với mỗi dự án thì tổ chức sẽ được điều chỉnh sao cho tối ưu hóa nhất về nhân sự. Cũng chình ví thế mà một cá nhân có thể nắm nhiều nhiệm vụ trong dự án, và ngược lại có thể mỗi cá nhân chỉ nắm một nhiệm vụ trong dự án đó.

Vậy khi nào thì xảy ra các trường hợp trên, và tổ chức trong dự án phần mềm gồm những chức danh gì ( role gì ) chúng ta sẽ cùng tìm hiểu trong post này :

Enter your text here...

  • Tổ chức nhân sự cơ bản của một dự án.
  • Những biến đổi có thể trên thực tế của tổ chức nhân sự trong dự án.
  • Bạn đang ở vị trí nào? Bạn muốn làm gì ?

1. Tổ chức nhân sự cơ bản của một dự án

Bao gồm:

  • PM ( Project Manage )
  • CM ( Configuration Manager )
  • PTL ( Project Technique Leader )
  • TL ( Team Leader )
  • DEV (Developer )
  • TesterQA (Quality Assurance)
Tổ chức trong dự án phần mềm - Bạn đang ở vị trí nào?

Ngoài những thành phần bên trên ra thì ở cấp cao hơn sẽ có các vị trí khác phụ trách quản lý khách hàng, hay chỉ chuyên đi xin lỗi khách hàng nếu lỡ dự án có fail 🙂 . Đội này gọi chung là quản lý và trong phạm vi post này thì sẽ không được đề cập tới.

Sau đây chúng ta sẽ tìm hiểu sơ qua nhiệm vụ và vai trò của từng vị trí ở sơ đồ trên.

Các bạn chú ý: Đây chỉ là mô hình cơ bản nhất tồn tại trong một dự án phần mềm, trên thực tế mô hình này có thể biến đổi cần thêm hay lược bỏ đi các thành phần không cần thiết tùy từng dự án.

Project Manage

Xuyên suốt dự án thì người này giữ vai trò cao nhất trong dự án. Là người đầu tiên cũng là người cuối cùng chịu trách nhiệm về tiến độ, chất lượng của dự án với cấp trên và Khách hàng.

Người này có thể tham gia trực tiếp hoặc không trực tiếp quá trình phát triển tùy vào độ lớn của dự án, nhưng cơ bản thì sẽ bao gồm các việc chính sau ( thứ tự theo dòng chảy dự án ):

  • Liên hệ Khách hàng lấy tài liệu và làm estimation cho dự án.
  • Lập đội dự án, tìm người phân nhóm, làm thủ tục mở dự án.
  • Lên kế hoạch phân nhiệm vụ cho mỗi người trong dự án hoặc nhiệm vụ chung cho từng nhóm trong dự án.
  • Quản lý tiến độ, kiểm tra tiến độ báo cáo hàng ngày của member.
  • Báo cáo tiến độ, kết quả cho Khách hàng tùy vào yêu cầu của Khách hàng : hàng ngày hay hàng tuần.
  • Kiểm tra phân tích chất lượng dự án, đưa ra đối sách cụ thể cho từng trường hợp.
  • Bàn giao cho Khách hàng sản phẩm, phân tích báo cáo tổng thế chất lượng dự án cho Khách hàng.
Tổ chức trong dự án phần mềm - Bạn đang ở vị trí nào?

Về cơ bản thì PM luôn là người cần nắm tốt nhất tiến độ dự án, quán lý tốt các issue, risk đã và có thế phát sinh trong dự án, đưa ra những đối sách nhanh, phù hợp nhất tại mỗi thời điểm.

Do cần đòi hỏi khá nhiều kỹ năng quản lý, phân tích vấn đề ( và đặc biệt là kinh nghiệm qua các dự án ) nên vị trị này cần được có kinh nghiệm phát triển dự án khoảng trên 5 năm ( theo mình nghĩ vậy ).

Configuration Manager

Vị trí quản lý cấu hình môi trường phát triển. Hiện tại thì có lễ các bạn rất ít nghe đến vị trí này trong dự án phần mềm thế nhưng đây là vị trí cực kỳ quan trọng.

Người làm vị trí này thường có cái nhìn tổng quản rất tốt về cài đặt cấu hình các môi trường phát triển. Vì mỗi dự án sẽ phát triển trên một môi trường khác nhau, và nhất thiết trong dự án cần phải thực hiện code, test trên đúng môi trường mà khách hàng đã yêu cầu.

Có rất nhiều dự án mình biết bị lỗi do việc cài đặt môi trường sai khác với yêu cầu Khách hàng nên khi gửi sang phía Khách hàng thì không thể chạy được.

Tổ chức trong dự án phần mềm - Bạn đang ở vị trí nào?

Vị trí này thường sẽ bắt đầu nghiên cứu khá sớm và cũng không tồn tại suốt dự án mà chỉ cần giai đoạn đầu khi đã build hết được các môi trường như yêu cầu. Mình chắc chắn sẽ có bài chi tiết về vị trí này do đây là vị trí mình rất yêu thích và cũng đã có kinh nghiệm khoảng 3 năm cho vị trí này.

Project Technique Leader

Vị trí trưởng nhóm kỹ thuật, nói đến tên vị trí này mọi người cũng đã hình dung luôn được công việc của PTL. Chuyên nghiên cứu đưa ra các giải pháp với những kỹ thuật khó trong dự án đối.

Điều kiện tiên quyết cho vị trí này tất nhiên là kỹ thuật rất tốt về ngôn ngữ lập trình, modul mà dự án đang thực hiện. Tất nhiên là đã có rất nhiều kinh nghiệm trong các dự án tương tự.

Vị trí này thông thường tồn tại trong các dự án lớn, với kỹ thuật được xác định là khó. Với các dự án nhỏ thì chỉ khi nào cần thì vị trí này mới xuất hiện để đưa ra các giải pháp cho hệ thống.

Team Leader

Thường xuất hiện trong các dự án lớn chia nhiều team. Mặc dù chỉ là TL nhưng xét về các kỹ năng cần thiết thì TL cũng sẽ cần các kỹ năng tương đương với một PM quản lý dựa án nhỏ.

Phải tự chịu trách nhiệm về tiến độ, chất lượng sản phẩm của team mình. Phải lập kế hoạch cho toàn team, tracking, tổng hợp vào báo cáo tiến độ chất lượng cho PM.

Ngoài ra TL cũng có thể giống như một PTL support kỹ thuật cho member mình quản lý.

Tổ chức trong dự án phần mềm - Bạn đang ở vị trí nào?

Developer

Người phát triển, nhân vật không thể thiếu trong các dự án phát triển phần mềm. Người trực tiếp tạo ra source code, tạo ra sản phẩm.

Với người phát triển, yêu tố quản trong có lẽ là phân tích, tìm hiểu nghiệm vụ hệ thống để sao cho có thể phát triển được những dòng code tốt nhất.

Ở người phát triển tư duy lập trình rất quan trọng đó với chất lượng code và độ trong sáng của source code.

Bên cạnh đó yêu tố quan trong cũng là quản lý tiến độ của mình, tự phân tích tuy duy đưa ra những giải phát tốt nhất cho dự án. Bảo đảm tiến độ bản thân và bảo cáo tiến độ với người quản lý.

Tất nhiên kỹ năng cần thiết nhóm này chính là kỹ năng lập trình và tư duy lập trình.

Tester

Có vai trò quan trọng trong dự án, tìm bug, nâng cao chất lượng dự án.

Tổ chức trong dự án phần mềm - Bạn đang ở vị trí nào?

Kỹ năng chính của nhóm này chính là kỹ năng tìm hiểu hệ thống, kỹ năng kiểm tra , kiểm thử phần mềm, kỹ năng phân tích khi gặp vấn đề trong khi kiểm thử.

Có vai trò rất quan trọng trong việc bảo đảm chất lượng dự án thế nhưng hiên tại tester vẫn chưa được chú ý nhiều để nâng cao các kỹ năng trong khi test. Mình sẽ có một bài riêng về nhóm tester này - các chú ý theo dõi nhé.

Quality Assurance

Đội quản lý chất lượng có chức năng giám sát dự án, check việc thực hiện đúng quy trình của dự án. Là người check sản phẩm cuối cùng trước khi giao cho Khách hàng.

Mục tiêu cuối cùng của QA chính là chất lượng sản phẩm đến tay khách hàng.

Gần như đứng độc lập với dự án để check tiến độ, chất lượng cũng như việc thực hiện theo quy trình của dự án. Nên để làm được tốt QA cần có kỹ năng, mindset rất tốt về chất lượng, quy trình, quản lý dự án.

2. Những biến đổi có thể trên thực tế của tổ chức nhân sự trong dự án

Thực sự nếu viết mục này thì quá rộng, vì rằng với mỗi dự án khác nhau, thì cần phải tối ưu nguồn lực một cách hiệu quả nhất. Vì thế phần này mình sẽ trình bày đơn giản qua ví dụ bên dưới.

Ví dụ:

1. Với dự án nhỏ: Với những dự án nhỏ có chỉ khoảng 5 người làm thì rõ rằng việc phân đủ các vị trí như sơ đồ là quá lãng phí và không tối ưu. Chính vì thế với những dự án nhỏ như vậy thì ông PM sẽ là người nắm nhiều vai trò nhất . Thông thường sẽ từ PM, CM kiêm luôn PTL ...

Vậy nhìn vào đây ta có thể thấy là ở dự án nhỏ thì ông PM sẽ cần cả kiến thức về lập tình, phải có cả kỹ năng quản lý dự án và quản lý môi trường phát triển ...

2. Còn với các dự án lớn vài chục đến vài trăm người, thì rõ rằng một ông PM không thể đủ để quản lý, tracking, hay tổng hợp report của toàn bộ member được.

Vì thế cần phải chia nhỏ dự án thành các subteam và mỗi sub team thì sẽ hoạt động như một dự án nhỏ. Và ông PM cuối cùng sẽ chỉ nghe, tổng hợp report từ các ông subteam lead khác thôi.

Như thế trong dự án này PM không nhất thiết là người phải biết kỹ thuật mà chỉ cần người có kinh nghiệm quản lý dự án là đủ. Các kỹ năng khác sẽ được san sẻ cho các member chuyên trách.

Từ ví dụ này ta có thể thấy rằng, tùy tính chất, độ lớn của dự án mà mô hình Tổ chức trong dự án phần mềm cũng sẽ khác nhau đi. Và mấu chốt của bạn chính là chọn cho mình một mô hình dự án phù hợp với dự án mình đang làm.

3. Bạn đang ở vị trí nào ? Bạn muốn làm gì ?

Mình có may mắn là ngoài vị trí QA (Quality Assurance) thì các vị trí còn lại mình đều được trải qua làm việc và có kinh nghiệm từ 2 ~ 5 năm cho mỗi vị trí. Vì thế mà mình cũng có một số kinh nghiệm cá nhân về các yếu tố quan trọng cho từng vị trí bên trên ( sẽ có bài phần tích về các yêu tố quan trọng cho các vị trí trên )

Còn bạn thì sao? Bạn đang ở vị trí nào trong tổ chức trong dự án phần mềm? Và bạn muốn mình sẽ làm ở vị trí nào? Bạn có bị ngồi nhầm chỗ không?

Hãy cùng suy nghĩ và chia sẽ ở dưới bài viết nhé.

Tất nhiên ngoài các vị trí cơ bản mà mình đã nêu bên trên thì có một vài vị trị cũng tham gia vào quá trình sản xuất sản phẩm cũng khá thú vị đó là BrSe (Bridge System Engineer) , BA (Business Analyst) ...

Vì thế bạn hay tìm hiểu và xem mình hợp với vị trí nào. Nhưng dù thế nào đi chăng nữa, ở vị trí nào đi chăng nữa điều quan trong nhất bạn cần làm vẫn là luôn nỗ lực cố gắng, cải tiến để hoàn thiện mình và giúp cho dự án của mình đạt được kết quả tốt nhất.

Chúc các bạn thành công !

5 (100%) 1 vote
Đinh Thế Hiển
 

Mình là người thích viết lách, chia sẻ các trải nghiệm trong cuộc sống. Thích thể thao đặc biệt là thể hình. Hãy kết nối với mình nhé.

Click Here to Leave a Comment Below 0 comments