m.school › Từ điều khách muốn tới yêu cầu kỹ thuật đo được › bài 4
Ba bài trước nói nhu cầu khác yêu cầu ở chỗ nào, một yêu cầu viết đúng gồm những phần gì, và vì sao yêu cầu phải đo được. Bài này đi theo chiều ngược lại: nó nói về những câu viết sai. Chúng tôi lấy năm kiểu sai hay gặp nhất, và với mỗi kiểu đặt cạnh nhau một câu viết sai cùng một câu viết lại cho đúng, để bạn thấy chỗ khác nhau nằm ở đâu. Trong tài liệu quốc tế, mỗi câu như vậy trong bản được gọi là một yêu cầu (requirement). Năm kiểu dưới đây không phải một danh sách đã được cả ngành chốt; đây là cách chúng tôi gom lại sau khi đọc nhiều bản yêu cầu của doanh nghiệp Việt Nam.
Một yêu cầu nói việc phải đạt được và cách kiểm lại xem có đạt hay không. Nó không nói phải làm bằng cách nào. Viết cách làm vào thì mất hai thứ cùng lúc. Thứ nhất là chỗ xoay của người thiết kế: họ buộc phải đi đúng con đường bạn đã chọn. Thứ hai, và nặng hơn, là lý do: câu còn lại không cho ai biết việc cần đạt ban đầu là gì.
Dấu hiệu thấy ngay trong câu: câu nêu tên vật liệu, tên một chi tiết bên trong, tên một công nghệ, tên một hãng, hoặc kích thước của bộ phận bên trong.
Một câu viết sai: Thân máy làm bằng thép không gỉ dày 1,2 milimét, hàn điểm ở bốn góc.
Viết lại cho đúng: Thân máy chịu được tải thẳng đứng 60 kilôgam đặt giữa mặt trên trong 10 phút; sau khi bỏ tải, độ biến dạng còn lại không quá 0,5 milimét, đo ở nhiệt độ phòng.
Câu sau cho phép người thiết kế dùng thép mỏng hơn mà thêm một đường gân, hoặc dùng vật liệu khác hẳn, miễn là qua được phép thử. Câu trước thì không.
Có một chỗ hay bị hiểu lệch. Đôi khi cách làm là thứ bắt buộc thật: quy định về an toàn thực phẩm bắt dùng một nhóm vật liệu, hoặc nhà máy đã có khuôn và không có tiền mở khuôn mới. Lúc đó bạn vẫn viết nó ra, nhưng viết vào phần ràng buộc, kèm lý do và tên người đã quyết. Ràng buộc mở lại được khi lý do mất đi, câu yêu cầu thì không.
Vì sao người ta hay sai: người viết thường đã có sẵn một phương án trong đầu, và viết nó ra nhanh hơn đi tìm một con số chưa ai đo. Hậu quả rơi vào người làm tiếp: nhà cung cấp giao đúng thép dày 1,2 milimét, thân máy vẫn võng, mà không chỉ ra được ai làm sai.
Kiểu này dễ nhận ra và rất hay gặp. Câu chỉ có chữ chỉ mức độ, không có chỗ nào đặt một phép đo vào: máy chạy êm, sản phẩm bền, giao diện dễ dùng, vỏ nhìn cao cấp.
Một câu đo được cần đủ ba phần: một cách đo, một mức để so, và điều kiện lúc đo. Thiếu một phần thì hai người cùng đọc sẽ hiểu ra hai thứ khác nhau, và chuyện đó chỉ lộ ở buổi nghiệm thu.
Một câu viết sai: Máy phải chạy êm.
Viết lại cho đúng: Khi máy chạy ở mức tải lớn nhất, độ ồn không vượt quá 52 decibel theo trọng số A, đo ở khoảng cách một mét ngang thân máy và cao một mét hai, trong phòng có độ ồn nền dưới 30 decibel. Phòng thử của nhà máy đo, trên ba mẫu lấy ngẫu nhiên từ lô đầu.
Có một cách chữa nửa vời rất hay gặp. Người ta gắn thêm một con số rồi coi là xong: độ ồn không quá 52 decibel. Câu này đã có mức, nhưng vẫn chưa đo lại được, vì thiếu điều kiện. Đo sát vỏ máy hay đo cách ba mét thì ra hai con số lệch rất xa. Thành ra nhà cung cấp đo kiểu của họ và báo đạt, nhà máy đo kiểu của mình và báo không đạt, cả hai đều đọc đúng câu đã ký.
Vì sao người ta sai: chữ chỉ mức độ thì không ai phản đối được trong họp, còn một con số thì phải giải thích ở đâu ra.
Hậu quả rơi vào người làm kiểm tra cuối cùng. Họ nhận một bản đã ký, phải tự nghĩ ra cách đo, và nếu kết quả không ai thích thì người bị hỏi lại là họ.
Một yêu cầu phải đạt hoặc không đạt, không có mức ở giữa. Khi một câu chứa ba việc thì nó đạt được hai phần ba, và lúc ấy không ai trả lời được đạt hay không. Còn một chỗ hỏng nữa: ba việc trong một câu thường thuộc ba người và được kiểm ở ba thời điểm khác nhau, nên gộp lại là cắt mất đường giao việc.
Dấu hiệu thấy ngay: trong câu có chữ và, chữ đồng thời, chữ ngoài ra, hoặc một chuỗi ngăn bằng dấu phẩy.
Một câu viết sai: Máy phải nhẹ, dễ vệ sinh và lắp được vào tủ bếp có sẵn.
Viết lại thành ba câu riêng:
Khối lượng máy khi chưa chứa nước không quá 1,8 kilôgam.
Người dùng tháo được bộ phận tiếp xúc với nước ra để rửa trong vòng hai phút, không cần dụng cụ. Thử với tám người chưa từng dùng máy, ít nhất bảy người làm được.
Máy đặt được vào hốc tủ bếp rộng 300 milimét, sâu 350 milimét, cao 400 milimét, tính cả dây điện và phần nhô ra phía sau.
Tách ra rồi thì thấy ba câu đi ba hướng. Câu thứ nhất là việc của người thiết kế cơ khí, cân lên là biết. Câu thứ hai phải có người dùng thật ngồi thử, nên phải xếp lịch từ sớm. Câu thứ ba cần đi đo mấy cái tủ bếp đang bán trên thị trường trước khi chốt số.
Tách ra còn một cái lợi nữa. Giữa dự án, nếu phải bỏ một trong ba việc để kịp hạn, thì bỏ một câu là quyết định nhìn thấy được, có người ký. Khi ba việc nằm chung một câu, người ta lặng lẽ hạ chuẩn ở chỗ dễ nhất, và đến buổi nghiệm thu mới có người hỏi vì sao máy nặng hơn hứa.
Hai yêu cầu đá nhau (conflicting requirements) nghĩa là không có phương án nào đạt được cả hai cùng lúc. Kiểu này khác bốn kiểu kia: soi từng câu một thì không bao giờ bắt được, vì từng câu đều đo được và đều rõ ràng. Chỉ khi đọc cả bản và làm một phép tính thì mới lộ.
Hai câu nằm trong cùng một bản:
Thời gian đun một lít nước từ 25 lên 100 độ C không quá 4 phút.
Công suất điện lớn nhất của thiết bị không quá 800 oát.
Làm phép tính: đun một lít nước lên thêm 75 độ cần khoảng 314 kilôjun. Chia cho 240 giây thì ra khoảng 1.300 oát, và đó là con số khi không có chút nhiệt nào thoát ra ngoài. Thực tế luôn thoát. Vậy 800 oát không có đường nào đạt 4 phút, dù người thiết kế giỏi đến đâu.
Viết lại thì phải chọn một hướng, và ghi rõ mỗi con số lấy từ nhu cầu nào. Hướng thứ nhất: nếu lý do giữ 4 phút là người dùng cần nước nóng nhanh vào buổi sáng, thì nới công suất lên không quá 1.800 oát. Hướng thứ hai: nếu lý do giữ 800 oát là ổ cắm ở nơi lắp chỉ chịu tới mức đó, thì giữ 800 oát và nới thời gian thành không quá 10 phút. Cả hai hướng đều chừa khoảng một phần tư cho nhiệt thoát ra ngoài.
Hai yêu cầu còn đá nhau về tiền, khi một câu đòi thêm chức năng mà câu khác khoá giá vốn, và đá nhau về kích thước, khi một câu đòi thêm bộ phận mà câu khác giữ nguyên khuôn vỏ cũ.
Vì sao chỗ này hay sai: một bản dài thường do hai ba người viết, mỗi người một phần, và mỗi người chỉ soi phần của mình. Hậu quả rơi vào người thử nghiệm: họ là người đầu tiên biết hai câu đá nhau, biết vào lúc mẫu đã làm xong, lúc sửa đã đắt.
Kiểu này khó thấy hơn bốn kiểu trên, vì câu chép lại thường là một câu viết tốt: có số, có đơn vị, có điều kiện, và đã qua một lượt soát ở dự án cũ. Tài liệu quốc tế gọi những câu như vậy là yêu cầu kế thừa (legacy requirement).
Chỗ hỏng nằm ở thứ không có trong câu. Mỗi con số đều sinh ra trong một hoàn cảnh: sản phẩm bán cho ai, lắp ở đâu, chạy ở điều kiện nào. Hoàn cảnh ấy không viết vào câu, nên câu đi sang dự án mới thì đi một mình.
Một câu chép lại: Thiết bị làm việc trong khoảng nhiệt độ môi trường từ 0 đến 40 độ C. Câu này lấy từ bản yêu cầu của một thiết bị đặt trong nhà. Dự án mới là thiết bị lắp ngoài trời, trên mái, ở một tỉnh phía Nam.
Viết lại cho đúng: Thiết bị giữ đúng chức năng khi nhiệt độ không khí quanh vỏ trong khoảng 5 đến 45 độ C, và khi mặt vỏ bị nắng chiếu trực tiếp lên tới 70 độ C. Hai mức này lấy từ số đo tại ba điểm lắp thật, đo vào tháng nóng nhất.
Ba dấu hiệu nhận ra một câu chép lại chưa soi. Thứ nhất, không ai nói được con số ấy ở đâu ra, chỉ nhớ là bản trước có. Thứ hai, câu nhắc một chi tiết hoặc một tài liệu dự án mới không còn dùng. Thứ ba, đó là câu không ai tranh luận, trong khi câu khác đều có người bàn.
Cách tránh đơn giản mà ít ai làm: mỗi câu chép lại phải thêm một dòng ghi con số đó lấy ở đâu. Không tìm được nguồn thì coi như câu đó chưa có, phải đo lại hoặc bỏ.
Hậu quả rơi vào bộ phận bảo hành. Thiết bị qua hết phép thử trong nhà máy, vì nhà máy đo đúng khoảng 0 đến 40 độ. Nó hỏng ở nhà khách vào tháng nóng nhất, và người đi sửa chưa từng đọc bản yêu cầu.
| Kiểu sai | Dấu hiệu thấy ngay trong câu | Câu hỏi để soi | Hướng viết lại |
|---|---|---|---|
| Viết cách làm | nêu vật liệu, chi tiết, công nghệ, hãng | việc cần đạt ở đây là gì | nêu việc phải đạt cùng phép kiểm; cách làm bắt buộc thì ghi vào phần ràng buộc |
| Không đo lại được | chỉ có chữ chỉ mức độ: êm, bền, dễ dùng | ai đo, mức nào là đạt, điều kiện nào | thêm đủ ba phần: cách đo, mức để so, điều kiện lúc đo |
| Nhiều việc một câu | có chữ và, đồng thời, hoặc chuỗi dấu phẩy | đạt hai phần ba thì ghi đạt hay không đạt | tách ra, mỗi câu một việc, một người kiểm |
| Hai câu đá nhau | từng câu đều ổn, chỉ lộ khi tính thử | có phương án nào đạt cả hai cùng lúc không | giữ câu đến từ nhu cầu thật, nới câu kia, ghi ai quyết |
| Chép lại chưa soi | không ai nói được con số ấy ở đâu ra | hoàn cảnh sinh ra con số còn đúng không | thêm dòng ghi nguồn gốc; không có nguồn thì đo lại hoặc bỏ |
Bảng này để soi một bản yêu cầu đã có, không phải tờ mẫu điền vào là xong. Lớp này cố ý không đưa tờ mẫu nào, vì bản điền theo mẫu mà không hiểu vì sao vẫn mắc đủ năm kiểu sai trên.
Sửa chữ mà không sửa gốc. Người soi thấy một câu không đo được, liền gắn vào đó một con số nghĩ ra ngay trong buổi họp. Câu mới trông đã đạt: có số, có đơn vị. Nhưng mức ấy không đến từ người dùng, không đến từ đối thủ, không đến từ một giới hạn vật lý nào. mà đến từ cảm giác của người ngồi gần nhất. Người ta sai vì phép soi thường được chấm bằng cách đếm xem còn bao nhiêu câu chưa có số, nên gắn số vào là cách nhanh nhất để bản trông sạch. Hậu quả rơi vào người làm thử nghiệm: họ phải chứng minh một mức không ai bảo vệ được, và khi mẫu không đạt thì tranh luận quay về chính con số đó, vào lúc đã muộn. Cách tránh là mỗi con số kèm một dòng ngắn nói nó lấy ở đâu ra. Dòng đó viết không nổi thì con số chưa dùng được.
Soi từng câu một mà không bao giờ đọc cả bản cùng lúc. Cách soi phổ biến là chia bản ra, mỗi người một phần, rồi gom lại. Cách này bắt được bốn kiểu sai đầu, nhưng không bắt được kiểu thứ tư, vì hai câu đá nhau thì từng câu đều đúng. Người ta sai vì chia việc ra thì nhanh hơn và dễ xếp lịch. Hậu quả là hai câu đá nhau chỉ lộ khi đã làm mẫu. Cách tránh là thêm một lượt đọc cả bản từ đầu tới cuối, do một người làm, chỉ tìm đúng một thứ: những câu không thể cùng đạt.
Biến việc soi thành việc bắt lỗi người viết. Buổi soi mà mở đầu bằng việc đếm lỗi của từng người thì lần sau người viết sẽ viết mơ hồ hơn, vì chữ mơ hồ thì không ai bắt được lỗi. Phép soi càng gắt, bản yêu cầu càng mờ. Người ta sai vì đếm lỗi là thứ dễ đo, còn chất lượng một bản yêu cầu thì khó đo. Cách tránh là soi cùng người viết, và chỉ hỏi ba câu cho mỗi dòng: con số này lấy ở đâu, ai sẽ đo, mức này ai đã đồng ý.
Ví dụ dưới đây có bản báo cáo điều tra công khai và được dạy rộng trong giáo trình công nghệ phần mềm, nên bạn tra lại được.
Năm 1996, chuyến bay đầu tiên của tên lửa Ariane 5 của Cơ quan Không gian châu Âu bị phá huỷ khoảng bốn mươi giây sau khi rời bệ. Hội đồng điều tra kết luận nguyên nhân nằm ở một phần mềm đo hướng được lấy nguyên từ dòng tên lửa trước. Phần mềm ấy viết cho một đường bay có vận tốc ngang nhỏ hơn nhiều, nên trên tên lửa mới, con số vượt khỏi khoảng nó xử lý được. Thêm một chi tiết đáng chú ý: chức năng đó không còn cần tới sau khi rời bệ, nhưng vẫn được giữ lại.
Nhìn theo bài này, đây đúng là kiểu sai thứ năm. Một yêu cầu kế thừa được chuyển sang dự án mới cùng với phần mềm, còn điều kiện làm việc sinh ra nó thì không chuyển theo, nên cũng không được soi lại.
Điều rút ra, đúng cho cả những việc nhỏ hơn tên lửa rất nhiều: một câu chép lại chỉ an toàn khi hoàn cảnh sinh ra nó được kiểm lại, chứ không phải khi nó đã qua một lượt soát ở dự án cũ.
Việc cần làm. Mở một bản yêu cầu thật của dự án bạn đang làm. Nếu dự án chưa có bản yêu cầu riêng thì lấy bản đề bài, hoặc lấy đoạn mô tả sản phẩm trong hợp đồng. Chọn mười câu liền nhau, đừng chọn lọc câu dễ. Với mỗi câu, ghi một trong sáu chữ: cách làm, không đo được, nhiều việc, đá nhau, chép lại, hoặc đạt. Sau đó chọn một câu bạn đã ghi là không đo được và viết lại nó cho đủ ba phần: cách đo, mức để so, điều kiện lúc đo. Cuối cùng, thêm một dòng nói con số bạn vừa đặt lấy ở đâu ra.
Cách tự chấm. Dấu hiệu làm đúng: trong mười câu bạn tìm được ít nhất hai câu sai thuộc hai kiểu khác nhau; câu bạn viết lại dài hơn câu cũ, vì nó phải chứa thêm điều kiện đo; và dòng ghi nguồn gốc của bạn chỉ ra được một thứ cụ thể, như một con số trong báo cáo bán hàng, một lần đo tại chỗ lắp đặt, hoặc một mức ghi trong tiêu chuẩn. Dấu hiệu còn sai: cả mười câu đều được ghi là đạt, nghĩa là bạn đang đọc bằng mắt người đã quen với bản đó, hãy đưa cho một người chưa đọc bản này đọc thử; hoặc dòng ghi nguồn gốc của bạn viết là theo thông lệ, theo bản cũ, hay theo kinh nghiệm, thì đó chưa phải nguồn gốc.
Lời giải mẫu. Câu trong bản: Bộ lọc phải có tuổi thọ cao. Ghi: không đo được. Viết lại: Bộ lọc giữ được lưu lượng không thấp hơn 80 phần trăm lưu lượng ban đầu sau khi đã lọc 6.000 lít nước, thử với nước có độ cứng 150 miligam trên lít, ở áp suất đầu vào 2 bar; phòng thử của nhà máy đo trên ba mẫu. Dòng ghi nguồn gốc: con số 6.000 lít lấy từ mức dùng trung bình của một gia đình bốn người trong một năm theo số liệu bán hàng của chính công ty; mức 150 miligam trên lít lấy từ kết quả đo nước máy tại hai khu vực có nhiều khách nhất.
Của MES LAB
Bài 2 của lớp này, nói một yêu cầu viết đúng gồm những phần nào. Đọc lại nếu bạn thấy khó phân biệt kiểu sai thứ nhất với một ràng buộc thật.
Bài 3 của lớp này, nói về việc đo được nghĩa là gì và cách đặt mức. Đọc lại trước khi bạn viết dòng ghi nguồn gốc cho con số của mình, vì đó là phần khó nhất của bài tập trên.
Bên ngoài
"Guide for Writing Requirements", International Council on Systems Engineering — bản chỉ dẫn liệt kê các kiểu câu viết sai trong bản yêu cầu cùng cách viết lại, chi tiết hơn năm kiểu trong bài này.
"Software Requirements", Karl Wiegers và Joy Beatty — sách về cách viết và soi yêu cầu cho phần mềm; đọc để thấy chuyện câu mơ hồ và câu đá nhau xảy ra giống nhau ở cả sản phẩm cứng và phần mềm.
"Product Design and Development", Karl Ulrich và Steven Eppinger — sách giáo trình về đường phát triển sản phẩm; phần đặt đặc tính kỹ thuật mục tiêu cho biết một con số nên lấy từ đâu ra.
"Engineering Design: A Systematic Approach", Gerhard Pahl và Wolfgang Beitz — sách giáo trình về thiết kế kỹ thuật, có phần về danh sách yêu cầu và cách tách yêu cầu bắt buộc khỏi yêu cầu mong muốn.