Tuesday, January 19, 2010

Chất lượng phần mềm

Chất lượng phần mềm là gì? Nếu xét riêng chỉ bản thân phần mềm, cố định lại các yếu tố khác như qui trình sản xuất hay cảm nhận của khách hàng, thì chất lượng phần mềm là chất lượng của mã nguồn và thiết kế. Đơn giản bởi vì phần mềm được tạo thành từ những dòng mã.

Liệu chất lượng mã nguồn có thật sự là một yếu tố quan trọng? Nếu cho quay phim lại một ngày lập trình của lập trình viên, chúng ta sẽ dễ nhận thấy rằng, phần lớn thời gian của lập trình viên là dành cho việc đọc code. Các phím tắt mà tôi hay sử dụng (lập trình trên VS) là F12, Ctr Shift F, Ctr F, Control M O, Ctr Alt A. Tất cả đều dành cho mục đích tìm kiếm, duyệt các hàm trong một lớp và đọc nội dung một hàm. Mã nguồn càng dễ đọc thì chi phí cho việc đọc càng ít và lượng thông tin có được càng nhiều. Đọc một mã nguồn sạch sẽ, gọn gàng luôn tạo một cảm giác tin cậy ở người đọc. Lập trình viên an tâm khi dùng lại mã nguồn đó cũng như cải tiến nó. Chất lượng mã nguồn gia tăng tốc độ lập trình.

Mã nguồn, thiết kế tốt giúp cho chi phí phát triển ban đầu ở mức chấp nhận được.

Thiết kế tốt cũng giúp cho việc chỉnh sửa phần mềm nhanh hơn khi kinh doanh thay đổi. Thiết kế tốt truyền tải các ý đồ lên thiết kế/mã nguồn. Do đó, lập trình viên dễ dàng nắm bắt thiết kế cũ để chỉnh sửa. Thiết kế tốt có ít duplication nên việc chỉnh sửa một logic chỉ tiến hành ở 1 nơi duy nhất.

Mã nguồn, thiết kế tốt giúp cho chi phí chỉnh sửa sau này ở mức rẻ.

Liệu trong một điều kiện nào đó, chất lượng phần mềm (hay mã nguồn) có là thứ không cần thiết? Nếu thời gian sống của phần mềm trở nên ngắn hơn thì sao? Thay vì được sử dụng trong 6 năm, nay chỉ dùng trong 6 tháng. Chi phí đầu tư cho chất lượng nhằm giảm chi phí chỉnh sửa là không cần thiết.

Và nếu kèm theo công cụ hỗ trợ phát triển phần mềm có thể giúp tăng tốc độ phát triển như RAD? Lập trình viên sẽ thực hiện tùy chỉnh sao cho output của công cụ phát sinh phù hợp với nhu cầu mà không cần đầu tư nhiều cho chất lượng. Một ví dụ là dùng Visual Studio để kéo thả các thành phần giao diện và tùy chỉnh lại mà không cần thiết kế hoặc loại bỏ duplication. Như vậy, nếu giá bộ công cụ không quá đắt thì thà bỏ chi phí mua công cụ còn hơn đầu tư vào chất lượng mã nguồn.

Sự thay đổi liên tục của công nghệ đang ủng hộ xu hướng này. Nếu chỉ 6 tháng sau mà phần mềm (lẫn phần cứng) trở nên lỗi thời và nếu chi phí viết mới phần mềm là thấp (nhờ công cụ và nhân lực trẻ đã tiếp nhận công nghệ mới) thì chọn lựa không mở rộng phần mềm cũ là hợp lý. Viết phần mềm mới với công nghệ mới, hợp thời và không quá đắt là chọn lựa sáng giá.

Chất lượng có lẽ trở thành một món hàng xa xỉ!

No comments: