Trong thời kỳ công nghệ đang phát triển không ngừng, việc xây dựng một phần mềm chất lượng không chỉ đòi hỏi sáng tạo mà còn cần một quy trình rõ ràng và hiệu quả. Do đó, chu trình phát triển phần mềm (SDLC) không chỉ giúp các đội ngũ lập trình viên và đội dự án tối ưu hóa quy trình làm việc mà còn đảm bảo sản phẩm đáp ứng kỳ vọng của khách hàng. Trong bài viết này, Nhung sẽ giới thiệu về SDLC, nội dung công việc và tầm quan trọng của từng giai đoạn trong một dự án.

Tìm hiểu về vòng đời phát triển phần mềm

Chu trình phát triển phần mềm (SDLC) là viết tắt của cụm từ Software Development Life Cycle. Đây là một quy trình được tạo ra nhằm cải thiện chất lượng và rút ngắn thời gian sản xuất một phần mềm có chất lượng tốt và đáp ứng yêu cầu của khách hàng và thích ứng linh hoạt với các vấn đề phát sinh.

Vai trò của SDLC nhằm:

  • Đảm bảo tính linh hoạt: Quá trình phát triển phần mềm là một quá trình dài, vì vậy, không thể tránh khỏi sự thay đổi về yêu cầu hoặc các yếu tô từ môi trường bên ngoài. Quy trình này giúp đội phát triển xây dựng được phần mềm có tính linh hoạt cao
  • Đảm bảo chất lượng: Việc áp dụng SDLC giúp sản phẩm được phân tích, thực hiện và kiểm tra một cách kỹ lưỡng giúp phần mềm đáp ứng tiêu chuẩn cao nhất.
  • Giảm thiểu rủi ro: Một phần mềm thành công là một phần mềm có chất lượng tốt, trong đó, tính bảo mật và độ tin cậy cần được ưu tiên trên hết. Do đó, cần áp dụng chu trình phát triển một cách có hệ thống với các tiêu chuẩn và quy trình an toàn.
  • Tiết kiệm thời gian và chi phí: Chu trình phát triển được chia thành các giai đoạn với vai trò và công việc cụ thể, vì vậy, người quản lý có thể dễ dàng phân chia công việc cho các thành viên trong nhóm một cách hiệu quả.

Các giai đoạn của chu trình phát triển phần mềm

Hầu hết các dự án triển khai công nghệ hiện nay đều áp dụng theo chu trình sáu bước như hình trên với nhiệm vụ và yêu cầu khác nhau cho mỗi giai đoạn. Cụ thể như sau:

Giai đoạn 1: Lên kế hoach và phân tích yêu cầu (Requirement)

Đây là giai đoạn quan trọng trong chu trình để xác định yêu cầu của khách hàng, thu thập, tìm hiểu nghiệp vụ từ các bên liên quan từ đó phân tích vấn đề cần giải quyết. Bên cạnh đó, nhà phân tích cần xác định mục tiêu, phạm vi và phải pháp triển khai nhằm giải quyết vấn đề khách hàng đang gặp phải. Từ việc phân tích vấn đề và xác định phương hướng triển khai, nhà phân tích sẽ xây dựng được các tài liệu yêu cầu để làm cơ sở cho các giai đoạn tiếp theo.

Thông thường, giai đoạn này sẽ có sự tham gia của Product Owners, Product Managers, Business Analysts và CTO. hiệm vụ của họ là vô cùng quan trọng trong việc xác định và phân tích vấn đề khách hàng hoặc công ty đang gặp phải, là cầu nối giữa nhóm phát triển và các bên liên quan, giúp các bên phối hợp hiệu quả nhằm nâng cao năng suất làm việc và tạo ra sản phẩm có chất lượng tốt.

Thực tế, khi một dự án được bắt đầu, quản lý dự án thường yêu cầu team Business Analyst chuẩn bị trước những thông tin cần thiết về lĩnh vực sẽ trao đổi với khách hàng để nắm được những thông tin họ cung cấp, tránh trường hợp BA không hiểu vấn đề một cách tường minh. Do đó, Nhung và các cộng sự sẽ tìm hiểu thông tin từ nhiều nguồn khác nhau như internet hoặc yêu cầu các bên liên quan cung cấp tài liệu chuyên môn để có thể nắm được nghiệp vụ sắp tới sẽ triển khai. Vì vậy, Nhung có thể đặt những câu hỏi về chuyên môn nghiệp vụ nhằm khơi gợi yêu cầu từ khách hàng, đồng thời việc phân tích trở nên chính xác hơn.

Giai đoạn 2: Thiết kế (Design)

Sau khi đã có tài liệu yêu cầu cho việc triển khai sản phẩm, các nhà thiết kế phần mềm sẽ dựa vào yêu cầu để thiết kế kiến trúc, giao diện và các thành phần của phần mềm, được ghi lại trong DDS – tài liệu đặc tả thiết kế.

Việc thực hiện thiết kế chủ yếu được thực hiện bởi các kiến trúc sư hệ thống (System Architect) và UI/UX Designer, tuy nhiên Business Analyst cũng cần tham gia quá trình này với vai trò hỗ trợ và đảm bảo những thiết kế đúng với yêu cầu được phân tích ban đầu. Nếu những thiết kế phần mềm được thực hiện ở bước này một cách chính xác và rõ ràng, các giai đoạn sau sẽ được thực hiện nhanh chóng và hiệu quả hơn.

Giai đoạn 3: Tiến hành lập trình (Development)

Sau khi đã có tài liệu yêu cầu và tài liệu thiết kế, các hoạt động lập trình và xây dựng sản phẩm sẽ được thực hiện ở bước này. Lập trình là giai đoạn chiếm nhiều thời gian và công sức nhất trong quy trình phát triển phần mềm, do đó, người lập trình cần tập trung và tuân thủ các chuẩn mực về lập trình, áp dụng các kỹ thuật lập trình nhằm xây dựng sản phẩm đáp ứng yêu cầu và giảm thiểu lỗi phát sinh, tránh ảnh hưởng đến tiến độ triển khai.

Nhóm lập trình sẽ chia thành hai nhóm chính: Backend Developer và FrontEnd Developer. Những thành viên này sẽ chịu trách nhiệm lập trình, xây dựng lên trang web hoặc ứng dụng đúng với giao diện đã thiết kế và luồng xử lý đã được xây dựng ban đầu bởi BA bằng tài liệu hoặc thông qua các buổi họp. Lúc này, nhiệm vụ của BA là mô hình hóa các luồng hoạt động, chức năng của hệ thống và theo dõi nhằm nhóm lập trình hiểu và thực hiện đúng yêu cầu từ phía khách hàng.

Thông thường, ngoài việc theo dõi tài liệu được BA tạo ra từ ban đầu, các bạn nhóm lập trình tại công ty của Nhung làm việc trực tiếp với mình để yêu cầu làm rõ hoặc giải thích lại những luồng mà họ chưa thực sự hiểu rõ hoặc để chắc chắn là mình hiểu đúng. Vì vậy, trong giai đoạn lập trình, Business Analyst cũng đóng một vai trò rất quan trọng.

Giai đoạn 4: Kiểm thử (Testing)

Để đáp ứng được yêu cầu đặt ra, sản phẩm cần phải được trải qua bước kiểm

thử bằng cách áp dụng các kỹ thuật kiểm thử như kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận, kiểm thử hiệu năng, kiểm thử bảo mật, kiểm thử khả năng sử dụng, … nhằm phát hiện những lỗi không đáp ứng hoặc sai yêu cầu trên phần mềm, từ đó, kịp thời sửa chữa, khắc phục để đảm bảo chất lượng sản phẩm.

Hoạt động kiểm thử thường được phụ trách bởi QA Engineer/Tester, Business Analyst sẽ có vai trò giải thích hoặc đưa ra những quyết định trong quá trình kiểm thử. Tuy nhiên, tại một số công ty, đặc biệt những công ty vừa và nhỏ, BA sẽ thực hiện cả việc kiểm thử bởi hơn ai hết, họ là những người hiểu rõ nhất về sản phẩm sẽ được xấy dựng và yêu cầu của khách hàng.

Giai đoạn 5: Triển khai (Deployment)

Sau khi đã trai qua giai đoạn kiểm thử và sửa lỗi và đánh giá tính đáp ứng các yêu cầu được phân tích, nhà triển khai sẽ chuyển giao sản phẩm cho khách hàng và người dùng. Ở giai đoạn này, nhóm phát triển sẽ cài đặt, cấu hình và vận hành phần mềm, đồng thời cung cấp các tài liệu hướng dẫn và hỗ trợ kỹ thuật cho khách hàng và người dùng.

Trong giai đoạn này, BA sẽ kết hợp với các nhân viên triển khai phần mềm (Nếu có) để triển khai sản phẩm tới người dùng. Nhiệm vụ chính của Business Analyst là xây dựng các tài liệu bàn giao, hướng dẫn sử dụng giúp người dùng hiểu rõ hơn về cách thức sử dụng sản phẩm.

Giai đoạn 6: Bảo trì (Maintenance)

Sau khi đã bàn giao sản phẩm cho người dùng, sẽ có thêm một thời gian để bảo trì sản phẩm. Trong thời gian này, nhà phát triển sẽ tiếp tục theo dõi, duy trì và cập nhật sản phẩm để đáp ứng nhu cầu của khách hàng. Các lỗi phát sinh sẽ được nhà phát triển sửa chữa, nâng cấp nhằm nâng cao chất lượng sản phẩm và trải nghiệm của người dùng.

Trên thực tế, các giai đoạn này không nhất thiết phải thực hiện theo thứ tự nghiêm ngặt mà có thể chồng chéo lên nhau, tùy thuộc vào mô hình/phương pháp phát triển phần mềm. Nhìn chung, quy trình phát triển phần mềm là một chu trình liên tục, có thể lặp lại các giai đoạn cho tới khi hoàn thiện phần mềm.

Kết luận lại, mỗi công ty sẽ áp dụng quy trình sản xuất sản phẩm phần mềm khác nhau, tuy nhiên, với sự phát triển của ngành công nghệ thông tin, thực tế đã chứng minh rằng việc phát triển phần mềm theo một chu trình (SDLC) sẽ giúp dự án tối ưu được chi phí, tăng hiệu quả công việc và đạt được chất lượng tốt nhất của sản phẩm. Nhung mong rằng bài viết này sẽ giúp các bạn có cái nhìn bao quát về quy trình xây dựng một phần mềm trong một công ty công nghệ từ đó có thể xác định bản thân phù hợp với giai đoạn nào trong chu trình này.

Tác giả: Nguyễn Thị Nhung – IT Business Analyst of KPIM