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

CM (Configuration Manager) là ai? Có vai trò gì trong quy trình phát triển của một dự án?

0 0 8

Người đăng: Sơn Khương

Theo Viblo Asia

CM hay Configuration Manager có thể là một thuật ngữ hay chức danh khá xa lạ đối với hầu hết tất cả mọi người thậm chí là các anh chị lập trình viên kì cựu hay các leaders của các dự án. Vậy CM là gì hay là ai mà lại bí ẩn như vậy, chúng ta cùng tìm hiểu một chút qua bài viết này nhé!

I. CM (Configuration Manager) là ai?

Trước hết, các bạn cần phân biệt rõ Configuration Manager và Configuration Management, 2 khái niệm này hoàn toàn khác nhau.

Chắc hẳn các bạn lập trình viên đã khá quen hoặc đã nghe đâu đó với cụm từ Configuration Management, tuy rằng chúng thật sự có liên quan nhưng trên thực tế lại là 2 khái niệm hoàn toàn khác nhau. Cùng tìm hiểu nhé:

1. Configuration Manager: Configuration Manager là một cá nhân có vai trò nhất định trong một dự án hoặc tổ chức cụ thể. CM chịu trách nhiệm giám sát và thực hiện các quy trình và thực tiễn liên quan đến "Quản lý cấu hình". Họ đảm bảo rằng việc kiểm soát phiên bản, sự thay đổi, tài liệu và các hoạt động khác được thực hiện một cách hiệu quả.

2. Configuration Management: Configuration Management là một quy trình bao gồm nhiều quy trình và hoạt động khác nhau (Quản lý thay đổi, kiểm soát phiên bản, quản lý phát hành...) Configuration Management đảm bảo rằng tất cả các tạo phẩm được xác định, ghi lại, theo dõi và kiểm soát đúng cách để duy trì tính toàn vẹn của phần mềm và các tài sản liên quan

=> Tóm lại, Configuration Management là khái niệm rộng hơn, bao gồm tất cả các
quy trình và thực tiễn để quản lý cấu hình, trong khi trình **Configuration Manager**
là người chịu trách nhiệm triển khai và giám sát tất cả các quy trình này trong
một dự án hoặc một tổ chức cụ thể

Qua sự so sánh trên, chắc hẳn các bạn cũng mường tượng ra được một chút CM rốt cuộc là ai, và sẽ có vai trò như thế nào trong một dự án. Tuy nhiên vai trò của CM sau sự so sánh trên vẫn còn khá mơ hồ, vì vậy chúng ta hãy cùng đi sâu thêm một chút để tìm hiểu vai trò của CM trong một dự án lập trình, cụ thể sẽ là gì nhé?

II. CM có vai trò gì trong quy trình phát triển của một dự án?

Trước tiên, các bạn hãy xem thử ví dụ dưới đây:

Hãy giả sử bạn đang làm ở một dự án triển khai theo mô hình Agile. Các quy trình hay phân đoạn sẽ được lặp đi lặp lại (Interation hoặc Sprint), ở mỗi sprint dự án của bạn sẽ cần phải thực hiện đầy đủ các quy trình từ lập kế hoạch, phân tích yêu cầu, thiết kế hay triển khai và kiểm thử để có thể có được sản phẩm cụ thể là một phần của sản phẩm cuối cùng => Lúc này CM sẽ có vai trò chính trong các nhiệm vụ bên dưới:

  • Nếu như có một bug nào đó phát sinh ở phiên bản 2.1, đến phiên bản 2.2 không xuất hiện nữa và phiên bản 2.3 lại xuất hiện thì việc kiểm tra lại phiên bản 2.1 là việc cần thiết => CM sẽ có trách nhiệm control các version này và đảm bảo khi được yêu cầu cung cấp 1 version nào đó, CM sẽ bàn giao chính xác version đó cho khách hàng hoặc tester để thực hiện các tác vụ liên quan.
  • Trong 1 dự án lớn, có thể có rất nhiều team khác nhau, và mỗi team lại phát triển 1 module hay 1 project của riêng team đó => Việc kết hợp các module hay project trên như thế nào, kết hợp giữa phần nào trong code của team 1 với phần nào trong code của team 2 để có thể tạo thành 1 sản phẩm hoàn chỉnh => CM sẽ là người có trách nhiệm với vấn đề này.
  • Một dự án lớn được triển khai trong nhiều tháng sẽ đi cùng rất nhiều tài liệu, cần nhiều tài nguyên để setup và triển khai. Giả sử bạn là member mới tham gia dự án, bạn sẽ chẳng thể biết được dự án cần sử dụng những công cụ gì, cần đọc tài liệu ở đâu, nếu muốn kết nối tới Server X thì cần làm gì? => CM sẽ là người chịu trách nhiệm chính trong việc chuẩn bị tất tần tật tất cả mọi thứ giúp cho dự án có thể triển khai và hoạt động mà không gặp bất kì trở ngại nào.
  • Giả sử dự án của bạn sử dụng Server hoặc Cloud để triển khai, lưu trữ hoặc làm một số nhiệm vụ liên quan, vậy ai sẽ là người quản lý và xử lý các vấn đề liên quan tới Server hay Cloud này? Đó chính là CM

=> Tóm lại, đối với các dự án lớn, đặc biệt là các dự án liên tục sản xuất ra sản phẩm và sử dụng lượng tài nguyên lớn, triển khai trong môi trường rộng, thì CM là một vai trò cực kì cần thiết và là chủ trốt trong các nhiệm vụ:

  • Kiểm soát tài nguyên và cấu trúc phân bổ tài nguyên của dự án
  • Kiểm soát môi trường dự án, thiết lập môi trường nhằm đảm bảo mục tiêu "môi trường triển khai trong dự án là như nhau với tất cả mọi thành viên ở bất cứ thời điểm nào"
  • Kiểm soát sản phẩm phát hành
  • Đảm bảo tính toàn vẹn và ổn định của môi trường, tài nguyên, và sản phẩm.

III. Tổng kết

Như vậy, qua 2 phần ở trên, có lẽ các bạn cũng đã hiểu được CM là ai, và họ đóng vai trò gì trong quy trình phát triển của một dự án rồi phải không nào? Nếu bạn có hứng thú với CM, có lẽ bạn sẽ cần tìm hiểu thêm, rốt cuộc thì công việc cụ thể mà 1 CM cần phải làm là gì? Hãy tiếp tục tìm hiểu ở phần 2 của series này nhé. Cảm ơn các bạn rất nhiều!

Bình luận

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

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

Các mô hình phát triển phần mềm

1. Định nghĩa. Mô hình phát triển phần mềm hay quy trình phát triển phần mềm xác định các pha/ giai đoạn trong xây dựng phần mềm. Có nhiều loại mô hình phát triển phần mềm khác nhau ví dụ như:.

0 0 94

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

Tìm hiểu về cách thiết kế Class Diagram

Trong 1 dự án, việc tổ chức code cũng như clean code là 1 điều rất quan trọng, nếu cách thiết kế các class hợp lý và rõ ràng sẽ giúp ích rất nhiều cho việc mở rộng và bảo trì sau này. Để làm được điều này chúng ta cần phải có 1 bản thiết kế Class Diagram thật sự hợp lý.

0 0 76

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

Chuyện thay đổi

Thay đổi là một thứ gì đó luôn luôn đáng sợ. Cách đây vài tháng mình có duyên đi làm cho một banking solution tên là X.

0 0 31

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

Tôi trên con đường nỗ lực trở thành Agile Leader - Phần I

Mong muốn chia sẻ với mọi người về những trăn trở, những niềm vui, những bài học tích lũy, những mảnh kiến thức hay góp nhặt được trên con đường phấn đấu trở thành một Agile leader. Phần đầu này tôi muốn chia sẻ về định hướng, hay nói cách khác là điều gì cá nhân cần tập trung để trở thành một Agile

0 0 22

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

9 ý tưởng cho buổi Retrospective hiệu quả!

Với những bạn đang vận hành dự án theo Scrum hoặc ít nhất đang cố gắng thử vận hành, ắt hẳn biết đến một scrum event quan trọng - Retrospective. Một event để scrum team cùng nhìn nhận lại lại cách thức làm việc, hợp tác với nhau hay nói chung là các vấn đề về quy trình, con người trong dự án.

0 0 53

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

Mô hình phát triển phần mềm: Agile

1. Agile là gì. 2. Phát triển phần mềm theo Agile.

0 1 616