Với mục tiêu đó, BanGiám đốc Trung tâm luôn luôn coi trọng việc sản xuất sản phẩm theo quy trình nhấtđịnh, kiểm soát ngay từ giai đoạn đầu vào của sản phẩm, đảm bảo không có bất kìsai só
CƠ SỞ PHƯƠNG PHÁP LUẬN VỀ QUY TRÌNH SẢN XUẤT PHẦN MỀM
Khái niệm và sự cần thiết của quy trình phát triển phần mềm
1.1.1.Khái niệm chung về phần mềm
Từ năm 1950 đến nay, phần mềm đã trải qua quá trình phát triển đáng kể với xu hướng thu nhỏ quy mô nhưng nâng cao tính năng Sự tiến bộ của phần cứng đã thúc đẩy quá trình này và làm nổi bật rõ nét tính chất thương mại hóa của phần mềm Đỉnh cao của sự phát triển phần mềm là việc sản xuất với quy mô đại trà theo phương pháp công nghiệp, đáp ứng nhu cầu ngày càng tăng của thị trường.
Trong quy mô học đường, phần mềm thường được coi là chương trình máy tính, nhưng khi sản xuất phần mềm trở thành một ngành quan trọng trong nền kinh tế quốc dân, khái niệm về phần mềm đã trở nên toàn diện và mở rộng hơn Trong lĩnh vực công nghệ phần mềm, phần mềm được định nghĩa là một tập hợp gồm ba yếu tố chính, theo nhà tin học Roger Pressman, phản ánh rõ hơn về ý nghĩa và phạm vi của phần mềm trong ngành công nghệ thông tin.
- Các chương trình máy tính
- Các cấu trúc dữ liệu
- Hệ thống tài liệu hướng dẫn sử dụng.
1.1.2 Khái niệm quy trình sản xuất phần mềm
Quy trình phát triển phần mềm là một cấu trúc gồm các thao tác liên kết chặt chẽ để tạo ra sản phẩm phần mềm chất lượng cao, do các kỹ sư phần mềm thực hiện Các hoạt động cơ bản của quá trình phát triển phần mềm bao gồm phân tích yêu cầu, thiết kế hệ thống, lập trình, kiểm thử và bảo trì để đảm bảo phần mềm hoạt động hiệu quả và đáp ứng đúng nhu cầu người dùng Việc áp dụng quy trình phát triển phần mềm đúng chuẩn giúp tối ưu hóa hiệu suất, giảm thiểu lỗi và nâng cao khả năng mở rộng của sản phẩm.
- Đặc tả phần mềm: Các chức năng của phần mềm và điều kiện để nó hoạt động phải được định nghĩa
- Cài đặt phần mềm: để phần mềm đạt được những yêu cầu trong đặc tả thì phải có quá trình cài đặt.
- Đánh giá phần mềm: Phần mềm phải được đánh giá để chắc chắn rằng nó làm những gì mà khách hàng muốn.
- Sự tiến hóa của phần mềm: Phần mềm phải tiến hóa để thỏa mãn sự thay đổi các yêu cầu của khách hàng.
1.1.3 Tầm quan trọng của quy trình sản xuất phần mềm
Quy trình sản xuất phần mềm nhằm hỗ trợ và nâng cao chất lượng, hạn chế rủi ro cho sản phẩm phần mềm làm ra.
Quy trình là nền tảng then chốt của công nghệ phần mềm, đóng vai trò như chất kết dính công nghệ giúp kết nối các bước phát triển Việc tuân thủ quy trình chặt chẽ giúp đảm bảo quá trình phát triển phần mềm diễn ra hiệu quả, đúng tiến độ và đạt chuẩn chất lượng cao Áp dụng quy trình rõ ràng không những tối ưu hóa nguồn lực mà còn nâng cao khả năng kiểm soát và quản lý dự án phần mềm chặt chẽ hơn Chính vì vậy, xây dựng và duy trì quy trình phát triển phần mềm chuẩn là yếu tố quyết định thành công của các dự án công nghệ thông tin.
Một số quy trình sản xuất phần mềm hiện nay
1.2.1 Quy trình sản xuất phần mềm truyền thống (mô hình thác nước)
Các phương pháp truyền thống trong phát triển phần mềm tập trung vào việc tuân thủ các kế hoạch và quy trình nghiêm ngặt, đảm bảo quá trình phát triển diễn ra có trật tự và kiểm soát Trong quá trình này, việc tạo lập, xét duyệt và quản lý tài liệu đóng vai trò là yếu tố thiết yếu giúp giảm thiểu rủi ro và tăng tính minh bạch dự án.
Quá trình phát triển phần mềm được lên kế hoạch chi tiết từ trước, đảm bảo các tài liệu cần thiết được chuẩn bị đầy đủ trong suách từ giai đoạn đầu Việc tuân thủ quy trình phát triển đã định giúp nâng cao chất lượng phần mềm và giảm thiểu rủi ro dự án Chuẩn bị tài liệu kỹ lưỡng và theo đúng quy trình là yếu tố then chốt để đảm bảo thành công của dự án phát triển phần mềm.
Quá trình sản xuất phần mềm diễn ra giống như sản xuất các mặt hàng công nghiệp khác, đòi hỏi sự tuân thủ nghiêm ngặt các chuẩn và quy trình để đảm bảo chất lượng sản phẩm Các nhà phát triển tập trung vào việc thực hiện công việc một cách chính xác và hiệu quả, hạn chế yếu tố sáng tạo để đảm bảo phù hợp với quy trình đã đặt ra Trong khi đó, các nhà quản lý nhằm tăng năng lực sản xuất và đạt được các mục tiêu đặt ra, góp phần nâng cao hiệu quả và năng suất của toàn bộ quá trình phát triển phần mềm.
Giảm thiểu lỗi và các công việc được diễn ra theo đúng kế hoạch.
Giữ ổn định về tổ chức, sản lượng,…
Chuẩn hóa mọi thao tác và buộc mọi thành viên trong dự án tuân theo một cách nghiêm ngặt.
Không cho phép mắc sai lầm.
1.2.1.2 Mô hình thác nước (Watterfall)
Hình 1.1: Mô hình thác nước thể hiện quy trình rõ ràng trong quản lý dự án Giai đoạn nghiên cứu lập kế hoạch dự án nhằm đề xuất các giải pháp kỹ thuật phù hợp, xây dựng hợp đồng với khách hàng, theo dõi tiến trình thực hiện hợp đồng và tổ chức các khoản thanh toán thanh lý hợp đồng Đồng thời, giai đoạn này còn có nhiệm vụ lập kế hoạch tổng thể về dự án, dự trù kinh phí và thời gian thực hiện nhằm đảm bảo dự án diễn ra suôn sẻ và hiệu quả.
Quá trình phân tích yêu cầu phần mềm tập trung vào việc thu thập và xác định các yêu cầu cụ thể của phần mềm để đảm bảo xây dựng đúng chức năng và hiệu năng mong muốn Để hiểu rõ bản chất của các chương trình cần phát triển, kỹ sư phần mềm cần nắm vững lĩnh vực thông tin liên quan và xác định các chức năng cần có, hiệu năng tối ưu cũng như thiết kế giao diện người dùng phù hợp Việc này giúp đảm bảo phần mềm đáp ứng đúng nhu cầu và kỳ vọng của khách hàng, đồng thời tối ưu hóa quá trình phát triển phần mềm.
Thiết kế: Thiết kế phần mềm là một tiến trình nhiều bước tập trung vào bốn thuộc tính phân biệt của chương trình là:
Các đặc trưng giao diện
Quy trình thiết kế dịch các yêu cầu thành biểu diễn phần mềm có thể đánh giá được về chất lượng trước khi bắt đầu giai đoạn mã hóa Việc thiết kế cần được lập tài liệu rõ ràng và trở thành một phần của cấu hình phần mềm, nhằm đảm bảo tính nhất quán và khả năng kiểm thử của phần mềm sau này.
Mã hóa và kiểm thử đơn vị là bước quan trọng trong quá trình phát triển phần mềm, trong đó thiết kế phải được dịch thành ngôn ngữ máy mà máy tính có thể đọc và hiểu Quá trình mã hóa đảm bảo rằng các thiết kế chi tiết có thể được chuyển đổi thành mã nguồn một cách tự động, giúp tiết kiệm thời gian và tăng độ chính xác Lưu ý rằng khái niệm mã hóa ở đây khác với việc mã hóa thông tin thành các ký hiệu để phân biệt các đối tượng trong lĩnh vực khác.
Kiểm thử phần mềm là quá trình tập trung vào xác định lỗi trong phần logic bên trong của hệ thống, giúp đảm bảo tất cả các câu lệnh được kiểm tra kỹ lưỡng Quá trình này nhằm phát hiện các lỗi và đảm bảo kết quả phù hợp với dữ liệu kiểm thử được đưa vào, góp phần nâng cao chất lượng phần mềm.
Vận hành (triển khai) là bước tiếp theo sau giai đoạn kiểm thử, gồm việc lắp đặt phần mềm và hướng dẫn sử dụng cho khách hàng Nhiều người lầm tưởng rằng triển khai chỉ đơn thuần là một phần của quá trình chuyển giao phần mềm, chú trọng vào các chức năng mà quên đi tiềm năng sẵn có của hệ thống Đưa hệ thống vào thực tiễn thành công đòi hỏi quá trình triển khai chuyên nghiệp để biến các tính năng ưu việt thành hiện thực Đào tạo người dùng là hoạt động không thể thiếu trong quá trình triển khai, giúp họ vận hành hệ thống mới một cách thành thạo và biết cách xử lý các tình huống lỗi có thể gặp phải Công tác đào tạo không chỉ bao gồm nhập dữ liệu, lập báo cáo mà còn giúp người dùng hiểu rõ cách vận hành của phần mềm để tối ưu hóa hiệu quả sử dụng.
Bảo trì phần mềm sau khi bàn giao là quá trình điều chỉnh và nâng cao để đảm bảo tính tương thích với điều kiện thực tế của cơ sở, như thay đổi hệ điều hành hoặc thiết bị ngoại vi Quá trình này còn bao gồm việc thực hiện các yêu cầu nâng cao chức năng hoặc hiệu quả hoạt động của phần mềm Bảo trì cần áp dụng quy trình của vòng đời phát triển phần mềm hiện tại, không phải từ phần mềm mới, bao gồm các hoạt động như sửa lỗi, thay đổi thiết kế hệ thống, và cải tiến hệ thống Có bốn dạng bảo trì chính là bảo trì hiệu chỉnh, tiếp hợp, hoàn thiện và phòng ngừa, trong đó công nghệ bảo trì đóng vai trò quan trọng giúp nâng cao năng suất Thiết kế cẩn thận, tài liệu đầy đủ và các phương pháp kiểm tra kỹ lưỡng giúp phát hiện và sửa lỗi nhanh chóng, giảm thời gian và chi phí cho mỗi yêu cầu bảo trì, từ đó nâng cao hiệu quả hoạt động của phần mềm.
Dễ phân công công việc, phân bố chi phí, giám sát công việc.
Kiến trúc hệ thống hàng đợi ổn định.
Các giai đoạn trong quy trình được định nghĩa rõ ràng với đầu vào và đầu ra cụ thể, giúp đảm bảo sự rõ ràng và hiệu quả Mô hình này chủ yếu dựa trên các tài liệu, đặc biệt trong các giai đoạn đầu, nơi mà tài liệu chính là đầu vào và đầu ra của mỗi bước Việc xác định chính xác các giai đoạn và sử dụng tài liệu làm nền tảng giúp tối ưu hóa quá trình làm việc và nâng cao chất lượng kết quả.
Sản phẩm phần mềm được hình thành thông qua chuỗi các hoạt động xây dựng phần mềm theo trình tự rõ ràng.
Trong thực tế, các dự án thường không tuân theo quy trình tuần tự như mô hình đề xuất, mặc dù mô hình này cho phép lặp lại nhưng chỉ làm điều đó một cách gián tiếp Do đó, sự thay đổi không lường trước có thể gây ra sự nhầm lẫn và khó khăn trong quá trình làm việc của nhóm phát triển.
Khách hàng thường gặp khó khăn trong việc trình bày rõ ràng tất cả các yêu cầu ngay từ đầu, điều này gây ra thách thức trong mô hình phát triển tuần tự tuyến tính vốn yêu cầu rõ ràng và đầy đủ yêu cầu từ đầu Quá trình này đòi hỏi khách hàng phải kiên nhẫn chờ đợi để nhận được bản lập kế hoạch cuối cùng, thường chỉ hoàn thiện vào cuối dự án Việc phát hiện sai sót muộn trong giai đoạn lập kế hoạch có thể dẫn đến những hậu quả nghiêm trọng, thậm chí là thảm họa dự án nếu không được xử lý kịp thời.
Chỉ tiếp xúc với khách hàng ở pha đầu tiên nên phần mềm không đáp ứng được hết các yêu cầu của khách hàng.
Chi phí phát triển dự án tương đối lớn
Khả năng thất bại cao.
Phân tích các dự án hiện tại cho thấy, bản chất tuyến tính của vòng đời cổ điển gây ra các trạng thái tắc nghẽn, khi một số thành viên nhóm phải chờ đợi sự chuyển giao từ nhóm khác để hoàn thành công việc ở các giai đoạn trước Thời gian chờ đợi này có thể vượt quá thời gian thực hiện công việc, đặc biệt là trong các giai đoạn đầu và cuối của quy trình phát triển phần mềm Điều này dẫn đến hiệu quả làm việc giảm sút và làm chậm tiến độ dự án.
Yêu cầu được định nghĩa rất rõ ràng, chi tiết và hầu như không thay đổi, thường xuất phát từ sản phẩm đã đạt mức ổn định
Các yêu cầu mới bổ sung (nếu có) sẽ được xác định rõ ràng và đầy đủ ngay từ đầu dự án để đảm bảo quá trình triển khai diễn ra thuận lợi Đội ngũ thực hiện dự án phải quen thuộc và hiểu rõ mọi yêu cầu cũng như có nhiều kinh nghiệm với các công nghệ sử dụng để phát triển sản phẩm, từ đó nâng cao chất lượng và hiệu quả dự án.
Dự án được xác định hầu như không có rủi ro.
1.2.2 Một số các mô hình khác
1.2.2.1 Mô hình nguyên mẫu (Prototyping model)
THỰC TRẠNG ÁP DỤNG QUY TRÌNH SẢN XUẤT PHẦN MỀM TẠI TRUNG TÂM NGHIÊN CỨU CÔNG NGHỆ MẠNG VIETTEL
Tổng quan về Trung tâm Nghiên cứu công nghệ mạng Viettel
Tên đầy đủ: Trung tâm Nghiên cứu công nghệ mạng Viettel
Tên giao dịch: VTTEK Địa chỉ: Số 1, Trần Hữu Dực, Mỹ Đình, Hà Nội.
Trung tâm VTTEK tập trung phát triển các sản phẩm mạng viễn thông nhằm hỗ trợ hoạt động sản xuất kinh doanh của Tập đoàn, đồng thời hướng đến mở rộng thị trường quốc tế Các sản phẩm mạng viễn thông của trung tâm góp phần nâng cao hiệu quả vận hành và cạnh tranh của doanh nghiệp trên thị trường trong nước và quốc tế Việc ưu tiên phát triển các giải pháp công nghệ mạng giúp Tập đoàn duy trì vị thế dẫn đầu lĩnh vực viễn thông, đáp ứng nhu cầu ngày càng cao của khách hàng và đối tác toàn cầu.
Tổ chức bộ máy chuyên môn hóa theo lĩnh vực sản xuất giúp tối ưu hóa nguồn lực một cách hiệu quả nhất, đặc biệt trong các hoạt động phức tạp như thiết kế (Design) Việc xác định rõ ràng mục tiêu làm chủ hoàn toàn phần mềm là bước quan trọng để nâng cao năng lực cạnh tranh Sau đó, doanh nghiệp nên tiến tới kiểm soát toàn diện về phần cứng, từ đó tối ưu hoá toàn bộ quy trình sản xuất và phát triển sản phẩm.
VTTEK là đơn vị hạch toán phụ thuộc trực thuộc Tập đoàn, có tài khoản và con dấu riêng, đảm nhận việc thực hiện đăng ký hoạt động dưới hình thức Chi nhánh theo quy định của pháp luật.
2.1.1.2 Mục tiêu của Trung tâm
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Phát triển các sản phẩm đáp ứng nhu cầu phát triển thị trường viễn thông trong nước và quốc tế.
Nâng cao chất lượng sản phẩm thông qua việc áp dụng hệ thống các quy trình, tiêu chuẩn sản xuất hiện đại của thế giới.
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
VTCore cung cấp các sản phẩm chính như hệ thống tính cước thời gian thực OCS giúp tối ưu hóa quy trình thanh toán, hệ thống tổng đài tin nhắn thông minh SMSC nâng cao trải nghiệm giao tiếp, hệ thống tổng đài chuyển mạch mềm MSS và Gateway chuyển mạch mềm GMSC đảm bảo khả năng kết nối linh hoạt Bên cạnh đó, VTCore còn cung cấp hệ thống cung cấp nhạc chuông chờ CRBT để nâng cao dịch vụ khách hàng, hệ thống chuyển mạch gói PSCore tối ưu hóa luồng dữ liệu Các giải pháp điều khiển trạm gốc BSC, BTS hỗ trợ vận hành mạng hiệu quả và hệ thống phân tích, tối ưu chất lượng mạng 2G, 3G giúp nâng cao trải nghiệm người dùng và đảm bảo dịch vụ liên tục.
- Danh mục sản phẩm của Trung tâm sẽ được định hướng và điều chỉnh theo định hướng của Ban Tổng Giám đốc Tập đoàn
2.1.1.5 Nhiệm vụ của Trung tâm
Trực tiếp sản xuất các sản phẩm thiết bị mạng viễn thông phục vụ hoạt động sản xuất kinh doanh và điều hành mạng lưới của Tập đoàn.
Phối hợp với các cơ quan, đơn vị liên quan tổ chức triển khai các sản phẩm đưa vào hoạt động trên mạng lưới.
Xây dựng các quy trình nghiệp vụ, tài liệu và chương trình đào tạo phục vụ cho lĩnh vực sản xuất thiết bị mạng viễn thông.
Thực hiện công việc trực tiếp phối hợp với các đơn vị ngoài Tập đoàn để triển khai dự án trong lĩnh vực sản xuất thiết bị mạng viễn thông theo chỉ đạo của Ban Lãnh đạo Tập đoàn Đồng thời, thường xuyên nghiên cứu, đề xuất và phát triển các giải pháp nhằm nâng cao chất lượng sản phẩm, đáp ứng các tiêu chuẩn quốc tế Việc liên tục hoàn thiện các chỉ số chất lượng giúp đảm bảo sản phẩm đạt tiêu chuẩn cao và đáp ứng nhu cầu thị trường trong ngành viễn thông.
- Nhiệm vụ quản lý điều hành nội bộ Trung tâm
Trực tiếp quản lý lao động, hệ thống thiết bị, vật tư và tài sản được giao đảm bảo sử dụng đúng mục đích và nhiệm vụ theo quy định của Tập đoàn và pháp luật Việc quản lý chặt chẽ này giúp đảm bảo hiệu quả công việc và tuân thủ các quy định pháp luật liên quan Sử dụng hệ thống thiết bị, vật tư một cách đúng quy trình sẽ nâng cao năng suất và giảm thiểu rủi ro cho doanh nghiệp Quản lý tài sản đúng quy định góp phần tối ưu hóa nguồn lực và đảm bảo hoạt động kinh doanh diễn ra liên tục và hiệu quả.
Xây dựng Trung tâm trở thành đơn vị vững mạnh toàn diện về chính trị, nề nếp và kỷ luật để đảm bảo sự phát triển bền vững Đơn vị chú trọng duy trì tốt công tác sản xuất, kinh doanh và chăm lo đời sống vật chất, tinh thần cho CBCNV theo chỉ đạo của Đảng ủy, Ban Tổng giám đốc Tập đoàn và Bộ Quốc phòng Mục tiêu là thúc đẩy sự ổn định, sáng tạo và hiệu quả trong mọi hoạt động, góp phần vào sự nghiệp phát triển chung của tổ chức.
Thực hiện các quyền và nhiệm vụ khác khi được Tổng giám đốc Tập đoàn giao theo quy định của pháp luật.
2.1.2 Cơ cấu tổ chức của Trung tâm
Hình 2.1: Mô hình tổ chức của Trung tâm VTTEK
Gồm 1 giám đốc và 3 Phó Giám đốc.
Chỉ đạo, quản lý, điều hành toàn diện mọi hoạt động của Trung tâm
Chịu trách nhiệm trước Đảng ủy, Ban Tổng Giám Đốc Tập đoàn và trước pháp luật về mọi hoạt động của Trung tâm
Tổ chức thực hiện nhiệm vụ theo chức năng, nhiệm vụ, quyền hạn, trách nhiệm của Trung tâm đã được Ban Tổng giám đốc giao
Trong trường hợp đi công tác hoặc vì lý do khác mà không thể trực tiếp xử lý công việc, bạn cần ủy quyền bằng văn bản cho Phó Giám đốc để giải quyết công việc thay mặt Việc ủy quyền hợp lệ giúp đảm bảo quá trình công việc vẫn được thực hiện liên tục và đúng tiến độ Điều quan trọng là phải chuẩn bị đầy đủ các giấy tờ ủy quyền rõ ràng, cụ thể để tránh nhầm lẫn hoặc tranh chấp sau này Trên thị trường hiện nay, việc ủy quyền bằng văn bản là yêu cầu bắt buộc để đảm bảo quyền hạn và trách nhiệm của Phó Giám đốc trong công việc được pháp lý công nhận.
- PGĐ phụ trách Sản xuất :
Trung tâm chịu trách nhiệm quản lý và điều hành hoạt động sản xuất, đảm bảo hiệu quả và chất lượng công việc Đơn vị này chủ trì xây dựng các quy trình phát triển phần mềm và quy trình quản lý sản xuất để tối ưu hóa quy trình làm việc Ngoài ra, Trung tâm đề xuất các mô hình tổ chức phù hợp cho đơn vị sản xuất và quản lý sản xuất, nhằm thúc đẩy các dự án nghiên cứu phát triển đạt hiệu quả cao nhất.
Tham mưu, đề xuất cho Giám đốc Trung tâm trong lĩnh vực quản lý và điều hành nhằm nâng cao hiệu quả hoạt động Thực hiện các nhiệm vụ định kỳ hoặc đột xuất do Giám đốc trung tâm giao phó, đảm bảo sự linh hoạt và đáp ứng nhanh chóng với các yêu cầu công việc Đồng thời, thực hiện các nhiệm vụ theo ủy quyền của Giám đốc để đảm bảo sự phối hợp hiệu quả trong công tác quản lý và điều hành của trung tâm.
Chịu trách nhiệm trước Đảng ủy và Ban Giám đốc Trung tâm về công tác công nghệ, phát triển sản phẩm mới, đảm bảo cập nhật và nghiên cứu các xu hướng công nghệ tiên tiến nhất toàn cầu để duy trì vị thế cạnh tranh.
Tham mưu, đề xuất cho Giám đốc Trung tâm trong các lĩnh vực liên quan đến hoạt động khoa học công nghệ, nghiên cứu xu thế công nghệ mới
Thực hiện các nhiệm vụ theo sự uỷ quyền của Giám đốc Trung tâm.
Chịu trách nhiệm trước Đảng ủy, Ban Giám đốc Trung tâm về công tác kinh doanh, đảm bảo doanh thu trong Trung tâm
Tham mưu và đề xuất các ý tưởng chiến lược cho Giám đốc Trung tâm trong lĩnh vực kinh doanh, nhằm tối ưu hoá hệ thống bán hàng và nâng cao hiệu quả công tác kinh doanh Đồng thời, tổ chức và xây dựng hệ thống phân phối, đảm bảo hoạt động bán hàng diễn ra thuận lợi và phù hợp với mục tiêu phát triển của trung tâm Lập kế hoạch và chiến lược sản phẩm rõ ràng, nhằm thúc đẩy doanh số bán hàng và tăng thị phần trên thị trường Các đề xuất của chúng tôi giúp định hướng phát triển bền vững và nâng cao năng lực cạnh tranh của trung tâm kinh doanh.
Thực hiện các nhiệm vụ theo sự uỷ quyền của Giám đốc Trung tâm.
- Phó giám đốc- Bí thư đảng ủy Trung tâm
Phân tích thực trạng áp dụng quy trình sản xuất phần mềm tại Trung tâm Nghiên cứu công nghệ mạngViettel
2.2.1 Thực trạng áp dụng quy trình sản xuất phần mềm tại Trung tâm
Các dự án tại TT VTTEK hiện đang triển khai quy trình phát triển dựa trên mô hình thác nước, đảm bảo từng bước rõ ràng và có tổ chức Quy trình này gồm các giai đoạn chính như tiền khởi động, khởi động dự án, xác định giải pháp, thiết kế, lập trình, kiểm thử, triển khai và kết thúc, giúp tối ưu hóa hiệu quả và chất lượng dự án Việc áp dụng mô hình thác nước trong quy trình phát triển dự án tại TT VTTEK mang lại sự minh bạch, kiểm soát tốt tiến độ và chất lượng sản phẩm cuối cùng, phù hợp với các yêu cầu càng ngày càng cao của thị trường.
Vai trò Bước thực hiện Quy trình/ hồ sơ/ tài liệu liên quan
Quy trình tiền khởi động dự án Hướng dẫn ULNL
Hướng dẫn sử dụng MSProject
QTDA Quy trình khởi động dự án
CBGP Quy trình giải pháp
CBGP/CBPT Quy trình thiết kế
CBPT Quy trình lập trình
CBKT Quy trình kiểm thử
Hướng dẫn xử lý lỗi
CBTK Quy trình triển khai
QTDA Quy trình kết thúc dự án
2.2.1.1 Giai đoạn tiền khởi động
+ Các công việc thực hiện
Thực hiện xin cấp mã dự án.
Gửi yêu cầu tới các bộ phận để yêu cầu/xác định đội dự án (nếu cần).
Lập kế hoạch khảo sát sơ bộ
Kế hoạch khảo sát sơ bộ
- CBGP: Thực hiện khảo sát sơ bộ Đầu ra bao gồm:
Biên bản làm việc với khách hàng
+ Các công việc thực hiện:
Ước lượng nỗ lực lần đầu
QTDA bảo đảm ULNL lần đầu được xem xét, phê duyệt theo đúng thời gian quy định.
+ Đầu ra: ULNL lần đầu
Vai trò Bước thực hiện Hồ sơ/ tài liệu
QTDA Kế hoạch khảo sát
CBGP Tài liệu khảo sát sơ bộ
QTDA Ước lượng nỗ lực
Hướng dẫn ước lượng nỗ lực
CB QLCH Hướng dẫn quản lý cấu hình
+ Các công việc thực hiện:
QTDA lập KHDA, KHCT cho dự án theo đúng quy định
Trong bước khởi động của KHDA, QTDA cần xác định rõ các tiêu chí chất lượng phần mềm dự án phải tuân thủ, dựa trên 21 tiêu chí chất lượng sản phẩm phần mềm của Trung tâm Việc này giúp đảm bảo tiêu chuẩn chất lượng phần mềm dự án từ giai đoạn đầu, nâng cao hiệu quả kiểm soát chất lượng và đáp ứng yêu cầu khách hàng Chú ý xác định rõ tiêu chí chất lượng sẽ tạo nền tảng vững chắc cho quá trình phát triển và kiểm thử phần mềm, đồng thời tối ưu hóa quy trình đảm bảo chất lượng dự án.
- QTDA,Các phòng ban phối hợp:
QTDA chịu trách nhiệm gửi xem xét, phê duyệt KHDA, KHCT theo đúng quy định Đầu ra: KHDA, KHCT
QTDA tổ chức họp kick off dự án sau 1 ngày kể từ ngày ký KHDA. Đầu ra: BBH.
Vai trò Bước thực hiện Hồ sơ/ tài liệu
CB QLCH Hướng dẫn quản lý cấu hình
Vai trò Bước thực hiện Hồ sơ/ tài liệu
CBGP Bước 5.1.1.1 Phân tích yêu cầu
CBGP Bước 5.1.1.2 Xây dựng Prototype
CBGP Bước 5.1.1.3 Đặc tả yêu cầu
CB QLCH Hướng dẫn quản lý cấu hình
+ Các công việc thực hiện:
Thực hiện khảo sát chi tiết yêu cầu khách hàng để đảm bảo hiểu rõ nhu cầu, sau đó tổng hợp thông tin vào tài liệu Giải pháp dựa trên các yếu tố như phân tích nghiệp vụ, phân tích yêu cầu, đặc tả yêu cầu và prototype Quá trình này giúp xây dựng giải pháp phù hợp, cụ thể và đáp ứng đúng mong đợi của khách hàng Việc phân tích nghiệp vụ và yêu cầu kỹ lưỡng sẽ tối ưu hóa quá trình triển khai dự án và đảm bảo tính khả thi của giải pháp trong lĩnh vực công nghệ thông tin.
Tài liệu giải pháp cần mô tả đầy đủ các yêu cầu về chức năng, phi chức năng, giao diện và ghi log theo hướng dẫn, đảm bảo tiêu chí chất lượng phần mềm Việc rõ ràng trong mô tả các yêu cầu này giúp đảm bảo sản phẩm phần mềm đạt đúng tiêu chuẩn chất lượng, đáp ứng kỳ vọng của khách hàng Ngoài ra, tài liệu phải tuân thủ các hướng dẫn và quy chuẩn để đảm bảo tính nhất quán và dễ dàng trong quá trình triển khai, kiểm thử và bảo trì hệ thống phần mềm.
Biên bản làm việc khách hàng
Phân tích nghiệp vụ (nếu cần)
Đặc tả yêu cầu (không bắt buộc)
- QTDA bảo đảm tài liệu Giải pháp được xem xét, cập nhật và phê duyệt nội bộ theo đúng quy định Đầu ra:
Email xem xét phê duyệt/File review/lỗi log lên hệ thống quản lý lỗi
Tài liệu giải pháp được phê duyệt nội bộ
+ Các công việc thực hiện:
Trong quá trình phân tích yêu cầu dự án, đơn vị QTDA tổ chức họp hoặc gửi email để thống nhất các yêu cầu với khách hàng và đơn vị VHKT QTDA đảm bảo rằng tất cả các yêu cầu đã được khách hàng và VHKT ký xác nhận trước khi chuyển sang giai đoạn tiếp theo của dự án Việc này giúp đảm bảo tính chính xác, rõ ràng của yêu cầu, từ đó giảm thiểu rủi ro và đảm bảo tiến độ dự án Phương pháp này không chỉ nâng cao hiệu quả làm việc mà còn tăng cường sự hài lòng của khách hàng về quá trình hợp tác.
Lưu ý: với dự án mà đơn vị vận hành là TTKTCNTT phải gửi email yêu cầu chốt giải pháp trước theo đúng quy định
+ Đầu ra: Phân tích yêu cầu được ký thống nhất với khách hàng và đơn vị VHKT
CBGP yêu cầu cán bộ giải pháp phối hợp với phòng/ban phụ trách và đơn vị VHKT để thẩm định yêu cầu phần cứng theo tài liệu phân tích Quá trình này đảm bảo phần cứng đáp ứng các yêu cầu kỹ thuật, tạo tiền đề cho quá trình triển khai thành công Đầu ra của quá trình thẩm định là các yêu cầu phần cứng đã được xác nhận phù hợp với đơn vị VHKT và phòng/ban phụ trách, đảm bảo dự án diễn ra thuận lợi và hiệu quả.
CBGP đã tổ chức cuộc họp và gửi email để thống nhất về Prototype với khách hàng và đơn vị VHKT, đảm bảo sự đồng thuận thông qua biên bản họp hoặc email xác nhận Kết quả cuối cùng là Prototype đã được khách hàng và đơn vị VHKT thống nhất, đảm bảo tiến độ và chất lượng dự án.
+ Các công việc thực hiện:
Thực hiện thiết kế và tổng hợp vào tài liệu Thiết kế (Thiết kế tổng thể, thiết kế CSDL, Thiết kế chi tiết).
Tài liệu thiết kế cần mô tả đầy đủ các yêu cầu trong thiết kế, như khả năng thay đổi và tính quản trị vận hành theo tiêu chuẩn chất lượng sản phẩm phần mềm.
+ Đầu ra: Thiết kế tổng thể, thiết kế CSDL, Thiết kế chi tiết
QTDA đảm bảo rằng tài liệu thiết kế được xem xét, cập nhật và phê duyệt nội bộ đúng quy trình Quá trình này giúp duy trì chất lượng và tính tuân thủ của tài liệu thiết kế, từ việc gửi email phê duyệt, kiểm tra file review cho đến ghi nhận lỗi vào hệ thống quản lý lỗi Sau khi hoàn tất quy trình phê duyệt, tài liệu thiết kế chính thức được duyệt và phát hành để đảm bảo tính chính xác và rõ ràng trong dự án.
- QTDA Thực hiện ULNL lần cuối; QTDA bảo đảm ULNL lần cuối được xem xét, phê duyệt theo đúng thời gian quy định Đầu ra:ULNL lần cuối.
Vai trò Bước thực hiện Hồ sơ/ tài liệu
CBPT Bước 5.2.1 Thiết kế Tổng thể
CBPT Bước 5.2.2 Thiết kế CSDL
CBPT Bước 5.2.3 Thiết kế Chi tiết
CB QLCH Hướng dẫn quản lý cấu hình
+ Các công việc thực hiện:
CBPT thực hiện lập trình theo tài liệu Giải pháp và Thiết kế đã được phê duyệt
CBPT tuân thủ nghiêm ngặt các hướng dẫn lập trình đã ban hành, bao gồm hướng dẫn lập trình (coding convention) và Guideline về lập trình web an toàn nhằm đảm bảo chất lượng sản phẩm phần mềm Việc tuân thủ các quy tắc này giúp phát hiện và khắc phục lỗi tiềm ẩn về hiệu năng, chức năng, đồng thời tối ưu hoá lập trình SQL và cơ sở dữ liệu, nâng cao độ tin cậy và bảo mật của hệ thống.
Trong quá trình lập trình, cán bộ lập trình sử dụng các công cụ kiểm tra chất lượng source code để phát hiện và loại bỏ các lỗi cơ bản về lập trình và lỗi validate, đồng thời rà soát các lỗi tiềm ẩn nhằm đảm bảo chất lượng phần mềm Trong trường hợp chưa có công cụ tự động, dự án cần tự xây dựng hoặc thực hiện kiểm tra thủ công để đảm bảo không thiếu sót trong quá trình phát triển phần mềm.
Nhóm lập trình tổ chức xem xét source code định kì để đánh giá tính tối ưu, tính đáp ứng nghiệp vụ của source code.
CBPT thực hiện tích hợp hệ thống/ bàn giao từng phần sang nhóm kiểm thử.
CBPT thực hiện xử lý triệt để các lỗi phát hiện trong quá trình kiểm thử và xem xét source code theo đúng hướng dẫn
CBPT thực hiện tạo HDCD, HDVH, HDKT
Dự án xem xét nội bộ, QTDA phê duyệt theo đúng quy định
Source code đã được sửa lỗi
Bộ tài liệu HDCD, HDVH, HDKT được phê duyệt
Vai trò Bước thực hiện Hồ sơ/ tài liệu
Bước 5.1 Tìm hiểu tài liệu phân tích thiết kế
CBPT (CBLT) Bước 5.2 Lập trình
CBPT Bước 5.3 Tạo tài liệu hướng dẫn
CB QLCH Hướng dẫn quản lý cấu hình
- CBKT tạo kịch bản kiểm thử (bao gồm chức năng, hiệu năng và ATTT) theo tài liệu giải pháp, thiết kế đã phê duyệt
- QTDA bảo đảm Kịch bản kiểm thử được xem xét, phê duyệt theo đúng quy định Đầu ra:
Email xem xét phê duyệt/File review/lỗi log lên hệ thống quản lý lỗi
KBKT đã được xem xét phê duyệt
- CBKT nhận bàn giao chương trình từ CBPT và đánh giá sơ bộ theo hướng dẫn Đầu ra: BBBGCT
CBKT thực hiện kiểm thử toàn diện bao gồm chức năng, hiệu năng và an toàn thông tin (ATTT), đảm bảo hệ thống hoạt động ổn định và bảo vệ dữ liệu Sau kiểm thử, kết quả được cập nhật đầy đủ vào hệ thống KBKT, cùng với các lỗi được ghi nhận chi tiết để thuận tiện cho việc xử lý Các lỗi phát sinh sẽ được đưa lên hệ thống quản lý lỗi nhằm theo dõi và khắc phục kịp thời, nâng cao chất lượng phần mềm và đảm bảo tiêu chuẩn an ninh mạng.
CBKT và CBPT phối hợp xử lý các lỗi trên Hệ thống quản lý lỗi theo đúng hướng dẫn, đảm bảo lỗi được khắc phục hiệu quả trong mã nguồn Quá trình này giúp cập nhật chính xác trạng thái lỗi trên hệ thống, nâng cao hiệu quả quản lý và giảm thiểu thời gian phản hồi Việc xử lý lỗi đúng quy trình giúp duy trì sự ổn định của hệ thống và cải thiện trải nghiệm người dùng.
Cơ quan CBPT gửi yêu cầu quét hệ thống ATTT và source code đến bộ phận ATTT của trung tâm để đảm bảo an toàn thông tin Dự án chịu trách nhiệm sửa lỗi phát hiện trước khi tiến hành nghiệm thu nội bộ, đảm bảo hệ thống đạt tiêu chuẩn an ninh Kết quả cuối cùng là báo cáo ATTT chi tiết, phản ánh tình trạng an ninh của hệ thống và source code.
- Dự án thực hiện kiểm tra các tiêu chí chất lượng sản phẩm phần mềm của dự án Đầu ra: Checklist đánh giá điểm chất lượng dự án.
- Sau khi hoàn thành kiểm thử, sửa tất cả các lỗi, QTDA chủ trì nghiệm thu nội bộ theo đúng quy định
- Đội KCS phần mềm tiến hành đánh giá chất lượng sản phẩm của đội dự án độc lập
Sau khi được các bên ký kết bản biên bản nghiệm thu thử nghiệm bê tông nói chung (BBNTNB) và có sự phê duyệt của Ban Giám Đốc Công Ty nếu không đạt tiêu chuẩn chất lượng, QTDA chủ trì tổ chức nghiệm thu khách hàng để đảm bảo các yêu cầu về chất lượng và tiến độ dự án Các công việc thực hiện bao gồm tổ chức nghiệm thu theo quy trình đã đề ra, đảm bảo các tiêu chí kỹ thuật và chất lượng được kiểm tra chặt chẽ, đồng thời lập hồ sơ nghiệm thu đầy đủ và chính xác để trình duyệt và lưu trữ Quá trình này giúp đảm bảo sự minh bạch, chính xác trong việc xác nhận chất lượng bê tông, góp phần nâng cao uy tín và đảm bảo quyền lợi của khách hàng cũng như các bên liên quan.
CBKT tạo kịch bản kiểm thử nghiệm thu (nếu cần)
QTDA có trách nhiệm cử đầu mối hỗ trợ khách hàng và đơn vị VHKT thực hiện kiểm thử nghiệm thu theo kế hoạch do khách hàng chủ trì.
Hiện trạng công cụ hiện đang sử dụng tại Trung tâm để quản lý quy trình phát triển dự án phần mềm tại VTTEK
2.3.1 Ưu, nhược điểm của các công cụ hiện đang sử dụng
Hệ thống quản lý phiên bản trong phát triển phần mềm chủ yếu dựa trên Core của ViettelSVN, sử dụng Subversion (SVN) để lưu trữ và quản lý toàn bộ tài sản dự án như tài liệu, thiết kế, yêu cầu khách hàng và chức năng sản phẩm SVN giúp theo dõi chi tiết các thay đổi trong mã nguồn, so sánh các tài liệu và phát hiện sự khác biệt dễ dàng, kể cả với các tệp Word và Excel Ngoài ra, hệ thống còn hỗ trợ truy cập bảo mật qua giao thức HTTPS, đảm bảo an toàn trong quá trình quản lý và phát triển phần mềm.
Hệ thống Mantis được sử dụng để quản lý toàn diện các lỗi của dự án trong quá trình phát triển và triển khai Công cụ này cho phép quản lý và trao đổi thông tin về trạng thái xử lý lỗi giữa các thành viên trong nhóm phát triển phần mềm Cán bộ quản lý dự án có thể kiểm soát tình hình lỗi một cách rõ ràng và chính xác Hệ thống cung cấp các báo cáo thống kê lỗi để đánh giá chất lượng dự án, bao gồm các loại lỗi như lỗi chương trình và lỗi tài liệu, giúp nâng cao hiệu quả quản lý và cải thiện chất lượng sản phẩm.
Tool quản lý sản xuất do phòng Kỹ thuật công nghệ phát triển nhằm tối ưu hóa quản lý nguồn lực dự án dựa trên quy trình sản xuất hiện tại của Trung tâm, giúp theo dõi tiến độ các dự án hàng ngày một cách chính xác Công cụ này còn cung cấp cảnh báo kịp thời để đảm bảo các dự án hoàn thành đúng hạn, đồng thời thể hiện nỗ lực thực hiện của từng cá nhân và toàn bộ dự án qua các khoảng thời gian từ ngày, tuần, tháng đến quý, năm, nâng cao hiệu quả quản lý và kiểm soát dự án.
Trong quá trình phát triển công nghệ thông tin, các hệ thống quản lý dự án hiện tại vẫn phân tán, thiếu sự liên kết chặt chẽ Đáp ứng nhu cầu quản lý ngày càng cao và rút ngắn thời gian báo cáo, ban lãnh đạo trung tâm và dự án mong muốn xây dựng một công cụ quản lý tổng thể tích hợp tất cả các thông tin liên quan Công cụ này sẽ thể hiện tiến độ dự án qua biểu đồ tổng thể, liên kết các chức năng phát triển với yêu cầu của khách hàng, các testcase kiểm thử, lỗi cần sửa, người được phân công và các công việc cần thực hiện theo thời gian Ngoài ra, các bên phát triển còn mong muốn tích hợp hệ thống build tự động, giúp lưu trữ kết quả và nâng cao hiệu quả quản lý dự án.
2.3.2 Giới thiệu về công cụ quản lý sản xuất Rational Team Concert (RTC)
Trong bối cảnh đó, tác giả đề xuất ứng dụng quy trình sản xuất trên công cụ RTC_IBM để quản lý dự án một cách toàn diện Giải pháp này giúp theo dõi, điều phối kế hoạch, nguồn lực và các chỉ tiêu đánh giá chất lượng dự án một cách hiệu quả Việc sử dụng RTC_IBM đảm bảo kiểm soát tiến trình và nâng cao hiệu suất dự án, phù hợp với các nguyên tắc quản lý dự án hiện đại.
Công cụ QLSX của IBM là giải pháp quản lý sản xuất phần mềm hiệu quả, giúp phối hợp tối ưu các yếu tố con người, quy trình và công cụ trong quá trình phát triển Nhờ vào khả năng liên kết chặt chẽ các hoạt động, QLSX nâng cao hiệu suất và đảm bảo sự liên tục trong vòng đời phát triển phần mềm Điều này giúp tối ưu hóa quy trình sản xuất, nâng cao chất lượng sản phẩm và giảm thiểu thời gian triển khai.
Hệ thống IBM Rational cung cấp:
Một nền tảng chung để đội dự án làm việc và cộng tác một cách hiệu quả
Kiểm soát quy trình chặt chẽ
Cơ chế báo cáo tập trung, liên tục cung cấp các số liệu về dự án để cải tiến năng suất, chất lượng
2.3.2.1 Các thành phần trong RTC
Hệ thống quản lý sản xuất gồm 3 thành phần chính:
- Công cụ quản lý phát triển: RTC
- Công cụ quản lý yêu cầu khách hàng: RRC
- Công cụ quản lý chất lượng RQM
Mối quan hệ giữa 3 thành phần:
Hình 2.3: Mối quan hệ giữa 3 thành phần trong hệ thống RTC a Công cụ quản lý phát triển RTC
RTC là công cụ quản lý phát triển phần mềm nằm trong bộ ứng dụng QLSX của IBM, đóng vai trò trung tâm giúp đội phát triển hợp tác hiệu quả trong việc sản xuất và bảo trì phần mềm suốt vòng đời sản phẩm Công cụ này hỗ trợ người dùng theo dõi tiến trình dự án, phối hợp làm việc nhóm, và quản lý các nhiệm vụ phát triển một cách dễ dàng và hiệu quả RTC giúp nâng cao hiệu suất làm việc của các nhóm phát triển phần mềm thông qua các tính năng quản lý dự án tích hợp và khả năng cộng tác trực tuyến.
Lập kế hoạch và quản lý tiến độ thực hiện công việc
Quản lý source code, build
Liên kết công việc (work item) với test case trên hệ thống quản lý chất lượng RQM, yêu cầu trên hệ thống quản lý yêu cầu khách hàng.
Các khái niệm và mối quan hệ giữa các đối tượng trên hệ thống RTC :
Hình 2.4: Mối quan hệ giữa các đối tượng trên RTC
STT Khái niệm Giải thích
1 Timeline Định nghĩa lịch trình làm việc của dự án Timeline chứa các release và iteration định nghĩa các giai đoạn làm việc
2 Iteration Project được thực hiện thông qua chuỗi các giai đoạn , Định nghĩa các giai đoạn phát triển của dự án
Trong quản lý dự án, nhóm Nhân sự dự án có thể được chia thành các phân nhóm khác nhau, mỗi nhóm đảm nhiệm các nhiệm vụ riêng biệt phù hợp với các timeline khác nhau Ví dụ, khi dự án vừa mới phát triển, nhóm sẽ tập trung vào giai đoạn phát triển với kế hoạch và timeline riêng biệt, trong khi đó nhóm bảo trì sẽ có lịch trình riêng để duy trì và cải thiện hệ thống sau khi ra mắt Điều này giúp tối ưu hóa quá trình làm việc, đảm bảo tiến độ và chất lượng dự án.
4 Category Category định nghĩa các mảng hoặc nhóm chức năng (function) trong dự án, được sử dụng để phân nhóm các work item.
Category liên kết với team chịu trách nhiệm thực hiện các work item trong category đó
5 Plan Kế hoạch làm việc của một giai đoạn (iteration) ứng với một team cụ thể trong dự án
Các hạng mục công việc cụ thể được thực hiện trong dự án, work item bao gồm các loại: task (công việc), defect (lỗi), …
Hình 2.5: Mô hình quản lý source code
STT Khái niệm Giải thích
Là nơi lập trình viên làm việc trên máy tính cá nhân, được dùng để đồng bộ code giữa máy tính cá nhân và Repository workspace trên RTC server
Mỗi lập trình viên có thể có một hoặc nhiều Repository workspace, là nơi lưu trữ mã nguồn cá nhân trên RTC server Code trong Repository workspace chính là phiên bản mã đang trong quá trình phát triển, chưa được ổn định hoặc chính thức Việc quản lý Repository workspace hiệu quả giúp đảm bảo quá trình phát triển phần mềm diễn ra thuận lợi và an toàn Đây là phần quan trọng trong quy trình làm việc của lập trình viên để kiểm soát, theo dõi và cập nhật mã nguồn một cách chính xác.
A change set encompasses all file and folder modifications made by developers in the local workspace, which are marked for check-in to the repository These changes are grouped into a change set when developers commit their modifications from the repository workspace to the stream.
4 Stream Đội dự án (hoặc một team trong đội dự án) chia sẻ công việc
(source code) giữa các thành viên thông qua Stream Chỉ đưa code đã hoạt động ổn định lên Stream
5 Component Source code được tổ chức thành các component Thông thường 1 component điển hình chứa ít nhất 1 Eclipse project
Baseline là công cụ quan trọng dùng để lưu lại một phiên bản (version) của Component tại một thời điểm cụ thể, thường được sử dụng để đánh dấu các bản code release quan trọng cho khách hàng Công cụ quản lý yêu cầu RRC giúp theo dõi và kiểm soát các yêu cầu phát triển, đảm bảo quá trình triển khai phần mềm diễn ra thuận lợi và minh bạch Việc tạo các baseline định kỳ giúp đảm bảo tính ổn định và dễ dàng quay lại các trạng thái trước đó khi cần thiết, đồng thời nâng cao hiệu quả quản lý dự án phần mềm.
Công cụ quản lý yêu cầu giúp đội dự án định nghĩa, theo dõi và quản lý các yêu cầu khách hàng một cách hiệu quả Nó đảm bảo tích hợp liền mạch trong toàn bộ vòng đời dự án, nâng cao khả năng đáp ứng đúng yêu cầu và tối ưu quá trình triển khai dự án Việc sử dụng công cụ này còn giúp tăng tính chính xác, giảm thiểu rủi ro và cải thiện hiệu suất làm việc của nhóm dự án.
Quản lý yêu cầu trong suốt vòng đời dự án giúp toàn bộ đội dự án cộng tác hiệu quả trong việc định nghĩa và làm rõ các yêu cầu Hệ thống hỗ trợ quy trình rà soát, phê duyệt nhanh chóng và chính xác, đảm bảo sự thống nhất giữa các thành viên Việc này giúp tăng cường hiệu suất làm việc, giảm thiểu rủi ro và nâng cao chất lượng dự án từ giai đoạn khởi đầu đến khi hoàn thành.
Cung cấp các tiện ích đồ họa đa dạng giúp thể hiện các cách biểu diễn yêu cầu như mô hình hóa, bản vẽ phác thảo giao diện và storyboard để phân tích, định nghĩa yêu cầu cũng như quản lý luồng phê duyệt và cộng tác giữa các bên liên quan Hệ thống cho phép liên kết các yêu cầu với các hạng mục công việc trong ứng dụng quản lý thay đổi và cấu hình (RTC - Rational Team Concert) cũng như các test case trong ứng dụng quản lý chất lượng (RQM - Rational Quality Manager) Điều này tạo ra mối liên kết tích hợp toàn diện giữa các đầu ra trong quá trình phát triển phần mềm, hỗ trợ đánh giá tính đầy đủ của test case và yêu cầu, nâng cao hiệu quả quản lý dự án và chất lượng sản phẩm.
Các đối tượng quản lý trên RRC:
Hình 2.6: Mối quan hệ giữa các đối tượng trên hệ thống RRC
STT Khái niệm Giải thích
Artifacts là thuật ngữ chung chỉ các đối tượng ở mức thấp nhất được quản lý trong hệ thống dự án, giúp tổ chức dễ dàng qua các thư mục và gán thẻ để lọc hoặc sử dụng cho mục đích cụ thể Các artifact có nhiều loại khác nhau, cho phép người dùng tùy chỉnh thuộc tính phù hợp với nhu cầu dự án Việc quản lý artifact hiệu quả giúp nâng cao hiệu suất công việc và tối ưu hóa quá trình phát triển dự án.
Đề xuất giải pháp hoàn thiện quy trình sản xuất phần mềm
3.1.1 Luồng quy trình thực hiện
3.1.2 Nội dung chi tiết các bước thực hiện quy trình
3.1.2.1 Giai đoạn thực hiện Sprint 0
Trước khi thực hiện Sprint 0, Product Owner phải:
- Xác định phạm vi, mục đích dự án và các Module thực hiện trong dự án
Khởi tạo Product Backlog là bước đầu tiên trong quá trình phát triển sản phẩm, trong đó liệt kê danh sách các yêu cầu nghiệp vụ và kỹ thuật ở mức tổng quát Việc đánh giá mức độ ưu tiên của từng yêu cầu giúp xác định rõ thứ tự triển khai, đảm bảo các tính năng quan trọng nhất được phát triển trước Quản lý Product Backlog hiệu quả là yếu tố then chốt để đảm bảo quá trình phát triển diễn ra linh hoạt, đáp ứng nhanh chóng các thay đổi và yêu cầu của khách hàng.
Backlog có thể tham khảo Hướng dẫn lập Product Backlog).
Đối với các dự án không thực hiện Sprint 0, Product Owner cần đảm bảo các User Story có mức độ ưu tiên cao nhất được mô tả chi tiết để lập kế hoạch và triển khai trong Sprint 1 Điều này đòi hỏi Product Owner có thể tổ chức các cuộc họp trao đổi với đội dự án nhằm đảm bảo các yêu cầu được rõ ràng và ưu tiên đúng cách Việc này giúp quá trình phát triển diễn ra thuận lợi, đúng tiến độ và đáp ứng tốt các mục tiêu của dự án.
Trong quy trình Scrum, nhóm Scrum (Scrum Team) xác định độ dài của một Sprint dựa trên phương pháp hoạt động thông thường của nhóm, đồng thời thống nhất với Product Owner (PO) và Scrum Master (SM) Tuy nhiên, quyết định cuối cùng về thời lượng của Sprint vẫn thuộc về chính nhóm Scrum, đảm bảo sự linh hoạt và phù hợp với khả năng thực tế của đội nhóm để đạt hiệu quả cao nhất trong quá trình phát triển dự án.
Sprint 0 là giai đoạn chuẩn bị quan trọng cho các dự án lớn đòi hỏi ít nhất 10 Sprint trở lên Giai đoạn này giúp xác định mục tiêu, phạm vi và các yêu cầu cốt lõi của dự án, đảm bảo nền tảng vững chắc cho các Sprint tiếp theo Thông thường, chiều dài của Sprint 0 sẽ bằng với chiều dài của các Sprint khác để duy trì sự nhất quán trong quy trình phát triển Việc thực hiện Sprint 0 đúng cách giúp tối ưu hóa quá trình triển khai và giảm thiểu rủi ro trong dự án lớn.
Trong Sprint 0, Scrum Master và Scrum Team phối hợp cùng Product Owner để làm rõ các vấn đề chung của dự án và tiến hành phân tích thiết kế sơ bộ, đảm bảo sự hiểu biết rõ ràng về mục tiêu và phạm vi dự án để chuẩn bị cho các giai đoạn phát triển tiếp theo.
Product Owner phối hợp với Scrum Team thực hiện Release Plan
Product Owner làm việc với đội dự án để ước lượng sơ bộ khối lượng các công việc cần hoàn thành và tốc độ thực hiện của dự án
Product Owner xác định phương án phát hành (theo khung thời gian cố định hoặc theo nhóm chức năng) tùy thuộc vào từng khách hàng:
+ Trong trường hợp dự án có khách hàng cụ thể, khách hàng là người quyết định cuối cùng đối với phương án phát hành.
+ Trong trường hợp Product Owner đóng vai trò khách hàng (vd: sản phẩm đại trà) thì Product Owner là người quyết định phương án phát hành.
Xác định tính khả thi của công nghệ
Thống nhất cấu hình dự án;
Để bắt đầu, cần xác định Framework và các Component dùng chung cho lập trình nhằm tối ưu hóa quá trình phát triển phần mềm Trong các dự án sử dụng ngôn ngữ hoặc Framework mới, việc xây dựng Prototype là bước không thể thiếu để chứng minh khả năng và tính ứng dụng của công nghệ mới Việc này giúp đảm bảo tính khả thi, giảm thiểu rủi ro và nâng cao hiệu quả triển khai dự án.
Xác định Framework kiểm thử phù hợp để đảm bảo hiệu quả cho các bài kiểm thử tự động và kiểm thử hệ thống tổng đài là bước quan trọng trong quy trình kiểm thử phần mềm Quá trình này bao gồm việc đưa ra phương án kiểm thử toàn diện, xác định rõ các giai đoạn kiểm thử, phương pháp phù hợp, cũng như dữ liệu sử dụng để đảm bảo độ chính xác và tin cậy của kết quả Thêm vào đó, kiểm thử tích hợp giúp kiểm tra tính tương thích và hoạt động liên kết giữa các thành phần hệ thống, nâng cao chất lượng tổng thể của phần mềm.
Xây dựng môi trường cho phát triển và kiểm thử.
Thiết kế mức cao cho dự án
Thiết kế cơ sở dữ liệu ở dạng tổng quát
Tài liệu Thiết kế tổng thể tùy vào đặc thù của dự án để thiết kế đảm bảo 21 tiêu chí chất lượng sản phẩm phần mềm;
Không nên làm các tài liệu thiết kế quá chi tiết, Scrum Team cần thảo luận để đảm bảo kiến trúc tổng thể của sản phẩm.
Xác định cách làm việc nội bộ trong trường hợp cần thiết:
Trong dự án, việc xác định các loại tài liệu và thông tin cần thiết là vô cùng quan trọng, đặc biệt là các tài liệu liên quan đến khách hàng như Hướng Dẫn Sử Dụng, Hóa Đơn Chứng Tử, Hướng Dẫn Vận Hành và Hợp Đồng Kỹ Thuật Cần xây dựng và cập nhật cơ chế rõ ràng để đảm bảo tính chính xác và cập nhật của các tài liệu này Ngoài ra, việc xác định các quy luật nội bộ dự án như lịch trình họp Daily Meeting, phương pháp đánh giá hiệu quả thành viên, cách thức trao đổi thông tin, báo cáo định kỳ và các chế tài xử phạt nội bộ giúp duy trì sự phối hợp hiệu quả và đảm bảo tiến độ dự án.
Kế hoạch đào tạo nhân sự về công nghệ, quy trình.
Product Owner, Scrum Master, Scrum Team thực hiện họp sơ kết để tổng kết kết quả của Sprint 0 và các vấn đề cần chú ý cho Sprint 1.
3.1.2.2 Thực hiện Sprint a Lập kế hoạch Sprint (Sprint Planning)
Scrum Master đóng vai trò điều phối trong buổi họp lập kế hoạch chi tiếtSprint với Scrum Team và Product Owner Thời gian họp ≤ số tuần trong một
Trong giai đoạn Sprint 2 giờ, Scrum Team và Product Owner cần xác định các sự kiện chính sẽ diễn ra, bao gồm việc lên kế hoạch làm mịn Product Backlog thông qua hoạt động Grooming và xác định ngày sơ kết Sprint để đảm bảo tiến độ và hiệu quả dự án.
Buổi họp bao gồm 2 nội dung chính: xác định nội dung thực hiện trong Sprint (What) và xác định cách thức thực hiện công việc (How).
Xác định nội dung thực hiện trong Sprint
Product Owner và Scrum Team thống nhất danh sách các yêu cầu (Story) đưa vào Sprint;
Product Owner chịu trách nhiệm giải thích chi tiết các nghiệp vụ của từng Story cho Scrum Team, giúp nhóm hiểu rõ phạm vi và yêu cầu dự án Đồng thời, họ cũng đánh giá mức độ ưu tiên các hạng mục trong Product Backlog để đảm bảo hoàn thành những công việc quan trọng nhất trước, từ đó tối ưu hóa giá trị sản phẩm và nâng cao hiệu quả phát triển.
Xác định số lượng thành viên tham gia và % tham gia trong Sprint, tốc độ của Scrum Team;
Xác định Story Point cho các User Story;
Xác định mục đích của Sprint, và định nghĩa mức độ hoàn thành sản phẩm đầu ra của Sprint như chương trình, tài liệu, ;
Để thực hiện hiệu quả, cần chia nhỏ câu chuyện thành các nhiệm vụ cụ thể và xác định rõ nhân sự phù hợp để thực hiện từng nhiệm vụ Việc phân chia này nên được thực hiện trong phạm vi thời gian họp để đảm bảo kế hoạch rõ ràng và khả thi Điều này giúp tối ưu hóa quy trình, nâng cao hiệu quả làm việc nhóm và đảm bảo các mục tiêu dự án được đạt đúng tiến độ.
+ Cách làm chi tiết tham khảo tài liệu “Hướng dẫn thực hiện lập kế hoạch Sprint”;
+ Kế hoạch chi tiết Sprint có thể thay đổi trong suốt quá trình thực hiện Sprint (thay đổi Task nhưng không thay đổi phạm vi của Story);
Việc xây dựng tài liệu không bắt buộc nhưng có thể sử dụng các công cụ thiết kế và tài liệu để đảm bảo cả đội dự án hiểu đúng về yêu cầu dự án Việc bàn giao tài liệu sẽ được thực hiện theo kế hoạch Release, giúp tăng cường sự phối hợp và rõ ràng trong quá trình phát triển Đặc biệt, việc thực hiện Sprint là bước quan trọng trong quá trình phát triển Agile nhằm thúc đẩy tiến độ và đạt được mục tiêu dự án hiệu quả.
Scrum Team thực hiện các đầu việc đã nhận theo Sprint Backlog.
Daily Meeting (Họp Scrum hàng ngày)
Trong quá trình thực hiện Sprint, Scrum Team họp Daily Meeting kéo dài 15 phút tại thời điểm và địa điểm cố định đã được lên kế hoạch trước để cập nhật tiến độ dự án Các thành viên nên tận dụng các công cụ như TaskBoard, Burndown Chart và Issue List để mọi người dễ dàng theo dõi trạng thái dự án trong buổi họp Trong mỗi Daily Meeting, các thành viên cần xác định rõ ba vấn đề chính: tiến độ công việc, các trở ngại gặp phải và các nhiệm vụ cần ưu tiên trong ngày Việc này giúp đảm bảo sự phối hợp hiệu quả và tiến độ dự án luôn được duy trì suốt Sprint.
Đã hoàn thành được gì kể từ buổi họp trước?
Hôm nay sẽ thực hiện các công việc gì?
Có gặp trở ngại/vấn đề gì trong công việc không?
Trong quá trình họp định kỳ hàng tuần, nếu xảy ra vấn đề, Scrum Master sẽ ghi nhận và đề xuất phương án xử lý trong buổi họp tiếp theo Quý khách hàng cần lưu ý tránh thảo luận hướng xử lý ngay tại cuộc họp để đảm bảo tiết kiệm thời gian và giữ cho buổi họp hiệu quả.
+ Các thành viên trong nhóm sẽ cập nhật tiến độ và tình hình chung cho nhau (không phải là báo cáo trực tiếp với Scrum Master).
Trước cuộc họp, các thành viên Scrum Team đều thực hiện khai báo công việc hàng ngày (log work) để theo dõi tiến độ dự án Sau buổi họp, mọi người cùng cập nhật Burndown Chart nhằm đánh giá mức độ hoàn thành công việc và điều chỉnh kế hoạch nếu cần thiết Việc này giúp đảm bảo quá trình Scrum diễn ra hiệu quả, minh bạch và linh hoạt hơn trong việc quản lý dự án Agile.
Product backlog grooming (Làm mịn Product Backlog)
Ứng dụng quản lý dự án sản xuất phần mềm theo quy trình mới trên công cụ quản lý sản xuất RTC_IBM
3.2.1 Các bước thao tác thực hiện theo quy trình trên công cụ RTC_IBM
Scrum Master/ Trưởng nhóm Product
Quản lý công việc và kiểm soát tiến độ
Tạo công việc/Giao việc
Tạo Task Gán thành viên dự án là Owner của Task
N/A Tạo Task chi tiết (nếu cần) phân rã nhỏ hơn từ Task do SM/trưởng nhóm tạo
Tự giao việc (tự gán Owner cho việc vừa tạo)
Cập nhật tiến độ Cập nhật Timesheet các Task được giao (người khác giao và tự giao)
Cập nhật trạng thái Task: In Progress, Done Phê duyệt Approve/Reject đối với Task đã giao hoặc Task chi tiết do thành viên dự án tự giao
Quản lý tài liệu Tạo, upload tài liệu liên quan lên RTC
Thiết lập Baseline tài liệu Sprint 0
Create or update the project timeline to ensure clear planning and tracking Set up the project timeline with key milestones and deadlines Establish an iteration for Sprint 0, including start and end dates, and define the current iteration for effective progress monitoring Assign tasks within Sprint 0, assigning owners such as the Product Owner (PO) and Scrum Team (ST) to each task for accountability and efficient execution.
Backlog Tạo các Story, Epic từ yêu cầu khách hàng Gán Story Point, xếp thứ tự ưu tiên Story, Epic
N/A Tạo Iteration cho các Release và các Sprint trong từng
Release (có ngày bắt đầu, kết thúc)
Link Release Backlog với Release
Collection, Test Plan liên quan
N/A N/A Tạo Release Collection, Test Plan ứng với Release đang thực hiện
Tạo Sprint Backlog Cập nhật timeline dự án
Thiết lập “Current” cho Sprint đang thực hiện Tạo Sprint Backlog cho từng Team
Link Sprint Backlog với Collection trên RRC và Test Plan trên RQM liên quan (nếu có)
Thiết lập các Story dự kiến thực hiện trong Sprint Tạo các Task cần thực hiện
Tạo Task chi tiết (nếu cần) phân rã nhỏ hơn từ Task do SM/trưởng nhóm tạo
Giải pháp Thực hiện review (nếu cần) Thực hiện review (nếu cần)
Tạo/cập nhật User story elaboration
Tạo/cập nhật các Artifact liên quan (vd: Sketch, Working Record, …) tùy theo thống nhất của đội dự án
Gán tag Gán User story elaboration vào Release Collection, Sprint Collection liên quan
Tạo review User story elaboration nếu cần
Tạo baseline cho dự án (RRC)
Lập trình N/A N/A Quản lý source code trên RTC
Build N/A N/A Build code trên RTC
Lập kế hoạch kiểm thử
Thực hiện review (nếu cần) NA Tạo Test Plan
Add test case vào Test Plan Liên kết Test Plan với Release Backlog/Sprint Backlog trên RTC Liên kết test plan với requirement collection trên RRC
Tạo review Tạo baseline cho test plan Tạo kịch bản kiểm thử
NA NA Tạo/cập nhật test case
Gán trọng số (weight) cho test case
Liên kết test case với story trênRTC liên quan
Liên kết test case với User story elaboration trên RRC liên quan
Thực hiện kiểm thử NA NA Tạo Execution Record
Thực thi test case, tạo test result Cập nhật thông tin test result: phân bố weight, build, trạng thái Tạo defect (nếu có)
Sửa lỗi Review nội dung, phê duyệt NA Log lỗi
Tạo defect Gán owner cho defect Test lại sau khi defect đã được resolved và đóng defect
Xử lý lỗi Ước lượng nỗ lực fix lỗi Cập nhật tiến độ fix lỗi (tương tự task)
Thay đổi trạng thái defect về resolved sau khi thực hiện xong Product Backlog
N/A Cập nhât/Tạo mới/Xóa/Chia nhỏ các Story,
Product Backlog Cập nhật Story Point, xếp lại thứ tự ưu tiên Story, Epic trong Product Backlog
Sprint Review N/A Cập nhật trạng thái các Story Chuyển các Story chưa hoàn thành về Product Backlog
Lên kế hoạch thực hiện Retrospective trong các Sprint sau
Bàn giao cấu hình, hồ sơ
Tạo baseline trên RRC, RQM
3.2.1.1 Tạo timeline (khung làm việc) dự án
Chức năng này cho phép định nghĩa khung làm việc, độ dài mỗi vòng lặp phát triển (sprint), kế hoạch Release và Backlog
Trong quản lý dự án, timeline là một tập hợp các hoạt động liên quan với nhau theo kế hoạch, kết quả đầu ra, nhóm dự án và phương thức thực hiện riêng biệt Thông thường, một dự án chỉ có một team duy nhất, do đó chỉ cần một timeline để theo dõi tiến trình Tuy nhiên, đối với các dự án lớn chia thành nhiều nhóm, như hai team chẳng hạn, nên xây dựng hai timeline riêng để đảm bảo kiểm soát hiệu quả và rõ ràng trong từng phần của dự án.
Khi cùng thực hiện một dự án với hai công việc song song gồm phát triển mới và bảo trì, mỗi công việc thường do hai nhóm dự án khác nhau đảm nhiệm Do đó, việc xây dựng hai timeline riêng biệt cho từng nhóm là rất cần thiết để phản ánh chính xác tiến độ và các mốc quan trọng của từng công việc Mỗi đội sẽ có kế hoạch và mục tiêu đầu ra khác nhau, vì vậy, việc phân chia lịch trình giúp tối ưu hóa hiệu suất làm việc và đảm bảo các hoạt động diễn ra suôn sẻ Điều này giúp quản lý dự án hiệu quả hơn, giảm thiểu rủi ro chậm tiến độ hoặc sai lệch trong quá trình thực hiện.
Timeline được tổ chức theo dạng cấu trúc lặp, bắt đầu từ cấp độ cao nhất là Release Trong mỗi kế hoạch Release, có thể xác định các Sprint cần thiết để hoàn thành mục tiêu của Release đó, giúp quản lý tiến trình dự án một cách rõ ràng và hiệu quả Việc phân chia theo cấu trúc này tạo điều kiện linh hoạt trong lập kế hoạch và theo dõi tiến độ phát triển phần mềm.
- Mặc định khi tạo dự án sẽ có 1 Timeline, Release 1.0 và Sprint 1, Sprint 2 của Release 1.0 (như trong hình vẽ).
Sau khi cấu hình xong có thể chọn “Explore Project” để quay về dự án.
3.2.1.2 Lập Kế hoạch a Menu Plan
Truy cập vào các chức năng trong menu “Plan” để lập kế hoạch cho các bản Release, Plan.
Tổng quan về All Plan cho phép hiển thị tất cả các kế hoạch của các hạng mục như Sprint 1, Sprint 2, đến Sprint 6 và Backlog Mỗi hạng mục sẽ có một kế hoạch mặc định (default plan), như hình mũi tên minh họa bên dưới, giúp người dùng dễ dàng theo dõi tiến độ Bên cạnh kế hoạch mặc định, người dùng còn có thể tạo các kế hoạch khác cho từng Sprint để tùy chỉnh theo nhu cầu quản lý dự án Điều này giúp tối ưu hóa quá trình lập kế hoạch và theo dõi tiến trình công việc trong các dự án Agile.
Hiện tại, hệ thống chỉ hiển thị các kế hoạch của vòng lặp hiện tại, ví dụ như khi bắt đầu dự án và đang thực hiện Sprint 6 thì chỉ hiển thị Sprint 6, không hiển thị các Sprint trước đó như Sprint 1, Sprint 2 hay Sprint 5 Việc này giúp người dùng tập trung vào kế hoạch của vòng lặp hiện tại, nâng cao hiệu quả quản lý dự án Đồng thời, hệ thống cũng cung cấp chức năng tạo kế hoạch mới để dễ dàng cập nhật và điều chỉnh tiến trình dự án phù hợp với thực tế.
Plan thể hiện một view đa dạng về các hạng mục cần thực hiện cho Sprint hoặc Release, giúp quản lý công việc hiệu quả hơn Khi tạo task hoặc hạng mục trên một plan, các nhiệm vụ này sẽ được gán cho Giai đoạn (Sprint hoặc Release) của plan đó, đảm bảo theo dõi tiến trình rõ ràng Vì plan chỉ là một view nên người dùng có thể chuyển sang các plan khác cùng giai đoạn để xem lại các task đã tạo, tùy thuộc vào kiểu filter đã áp dụng Điều này giúp tối ưu hóa việc quản lý và theo dõi các hạng mục trong dự án agile hoặc phát triển phần mềm.
Bước 1 : Tạo plan c Tạo các hạng mục trong plan
Chọn "Add Work Item" để tạo các hạng mục trong kế hoạch, bao gồm các loại công việc như story, task, defect, với thông tin cơ bản nhất là tên hạng mục Sau khi tạo xong, bạn có thể chọn hạng mục vừa tạo (ví dụ: Story 1) để xem hoặc chỉnh sửa chi tiết nếu cần thiết Để lưu công việc mới, nhấn nút "Save".
Do story được tạo ra từ Plan nên sẽ kế thừa các thông tin mặc định từ plan (Project: JKE Banking (Change Management), Planned for: Sprint 6)
Ngoài ra cũng có thể tạo các hạng mục như Story, task trực tiếp từ menu
Trong quá trình quản lý công việc, việc sử dụng "Work item" đòi hỏi người dùng phải nhập các thông tin liên quan như dự án, Sprint, dẫn đến khó khăn trong việc tổng thể hóa và lập kế hoạch Cách làm này sẽ khiến cho việc theo dõi tiến độ và xây dựng kế hoạch lớn trở nên phức tạp, thiếu tính tổng quát và hiệu quả Để nâng cao hiệu quả quản lý, cần có phương pháp tổng hợp dữ liệu trực quan và dễ dàng nhìn nhận toàn diện dự án.
Bạn có thể tạo các hạng mục con như Story hoặc Epic ngay trong quá trình lên kế hoạch hoặc thêm thông qua liên kết trên màn hình chi tiết Việc này giúp quản lý dự án trở nên linh hoạt và hiệu quả hơn, đồng thời đảm bảo các hạng mục liên quan được liên kết rõ ràng Tận dụng tính năng này để sắp xếp công việc hợp lý và tối ưu hóa quá trình làm việc nhóm của bạn.
Khi hoàn thành work item :
Đối với Story: chọn lại trạng thái là “Done” trong màn hình thông tin chi tiết hoặc ngay trên màn hình plan
Đối với Task: thiết lập lại “Time Remaining” là 0, chuyển trạng thái thành complete.
Mặc định các Task, Story, etc khi hoàn thành sẽ ẩn khỏi plan Để hiển thị loại bỏ option “Resolved Item” trong filter “Exclude”.
3.2.2 Một số báo cáo đầu ra khi quản lý dự án theo quy trình mới
3.2.2.1 Báo cáo tuần sản xuất
3.2.2.2 Báo cáo đánh giá nhân viên theo tháng
3.2.2.3 Điểm tuân thủ quy trình từng dự án
3.2.2.4 Báo cáo tỉ lệ lỗi và chi phí khắc phục