m.schoolKT-01Bài 2học không mất phí

m.school › Từ điều khách muốn tới yêu cầu kỹ thuật đo được › bài 2

Bài 2 · Thế nào là một yêu cầu viết đúng

Học xong bài này bạn sẽ soi một dòng yêu cầu và nói được nó đạt hay chưa đạt, kèm lý do chỉ ra được ngay trên chính dòng đó. Viết lại được một dòng chưa đạt thành một dòng đạt. Nhận ra ba kiểu viết sai hay gặp nhất khi chúng nằm lẫn trong một bản yêu cầu thật.

Bài 1 đã tách hai thứ hay bị lẫn vào nhau. Nhu cầu là điều khách muốn, nói bằng chữ của khách. Yêu cầu là điều sản phẩm phải làm được, viết bằng chữ của người làm. Bài này trả lời câu hỏi đến ngay sau đó: yêu cầu đã viết ra rồi, thì căn cứ nào nói nó viết đúng hay viết sai? Câu trả lời không nằm ở văn phong, cũng không nằm ở chỗ bản yêu cầu dài hay ngắn. Nó nằm ở chỗ một người khác đọc dòng đó rồi có kết luận được là đạt hay chưa đạt, mà không phải quay lại hỏi người viết.

1 · Một dòng yêu cầu viết đúng phải trả lời được bốn câu hỏi

Trước hết cần một định nghĩa đặt ngay tại chỗ. Yêu cầu (requirement) là một câu viết ra điều sản phẩm phải làm được, viết cho người thiết kế và người nghiệm thu cùng đọc, và viết sao cho hai người đó đọc xong hiểu giống nhau. Câu nào hai người đọc ra hai nghĩa thì câu đó chưa phải một yêu cầu, dù nó đang nằm trong bản yêu cầu và đã có người ký.

Một dòng đạt thì trả lời được bốn câu hỏi.

Câu thứ nhất: sản phẩm phải làm được việc gì. Phần này viết bằng việc, không viết bằng tính chất. Vỏ máy phải cứng là một tính chất, và tính chất thì mỗi người hình dung một mức khác nhau. Vỏ máy phải chịu được cú rơi khi công nhân mang máy từ bàn xuống sàn là một việc.

Câu thứ hai: đo bằng đại lượng nào, mức nào là đạt. Phần việc ở trên vẫn còn rộng, nên phải có một đại lượng và một mức kèm đơn vị. Rơi từ độ cao bao nhiêu, xuống mặt gì, sau khi rơi thì còn phải chạy được hay chỉ cần không nứt vỏ. Chọn mức bằng căn cứ nào, ai đo, đo lúc nào là việc của bài 3. Ở đây bạn chỉ cần nhận ra một điều: dòng thiếu hẳn đại lượng và mức là dòng chưa viết xong.

Câu thứ ba: mức đó phải đúng trong hoàn cảnh nào. Mức không kèm hoàn cảnh thì sớm muộn hai bên tranh nhau về hoàn cảnh. Thiết bị chạy đúng mức trong phòng điều hoà của phòng kỹ thuật, nhưng xưởng dùng nó là xưởng nóng và nhiều bụi. Dòng yêu cầu sai, vì nó không nói mức đó phải giữ được ở đâu.

Câu thứ tư: dòng này là bắt buộc hay là mong muốn. Hai loại phải nằm ở hai chỗ khác nhau và phải nói thẳng ra loại nào. Trộn chung thì tới lúc phải cắt bớt để kịp giao hàng, người cắt sẽ tự chọn, và thường chọn chỗ nào dễ cắt nhất chứ không chọn chỗ nào ít thiệt hại nhất.

Bốn câu hỏi này là bốn chỗ để soi một dòng đã viết, không phải bốn ô để điền cho xong.

2 · Vì sao mỗi dòng yêu cầu chỉ được nói đúng một việc

Luật này đến từ chỗ nghiệm thu.

Nghiệm thu một dòng yêu cầu chỉ có hai kết quả: đạt, hoặc chưa đạt. Lấy một dòng gộp ba việc, kiểu máy phải nhẹ, chạy êm và dễ vệ sinh. Người thử đo xong thấy máy nhẹ đúng mức, êm đúng mức, còn vệ sinh thì phải tháo bốn con vít mới chạm được chỗ bẩn. Dòng này đạt hay chưa đạt? Không ai trả lời được, và câu hỏi sẽ trôi lên người đứng đầu dự án đúng vào tuần cuối, lúc không còn thời gian sửa.

Có hai lý do nữa, nhẹ hơn nhưng gặp thường xuyên hơn.

Ba việc trong một câu thường thuộc ba người khác nhau. Nhẹ là việc của người chọn vật liệu và tính kết cấu, êm là việc của người làm phần truyền động, dễ vệ sinh là việc của người thiết kế vỏ. Một dòng chung thì không giao được cho ai, nên nó thành việc của tất cả, và việc của tất cả là việc không ai theo tới cùng.

Dòng gộp che mất chỗ hai yêu cầu đánh nhau. Nhẹ hơn và êm hơn thường kéo nhau về hai phía, vì cách làm êm hay gặp nhất là thêm khối lượng. Nằm riêng hai dòng thì chỗ đánh nhau lộ ra sớm và có người phải quyết đánh đổi. Nằm chung một câu thì câu đó đọc rất êm tai và không ai thấy có gì phải quyết.

Phép soi nhanh: đọc dòng đó rồi hỏi, nếu nửa đầu đạt mà nửa sau không đạt thì dòng này đạt hay chưa đạt. Không trả lời được bằng một chữ thì chẻ ra.

Một chỗ cần nói rõ, kẻo thành chẻ quá tay. Không phải chữ và nào cũng là dấu hiệu gộp. Hai mức của cùng một đại lượng vẫn là một việc: nhiệt độ nước ra phải nằm trong khoảng từ một mức dưới tới một mức trên là một dòng, không phải hai. Dấu hiệu gộp thật là hai đại lượng khác nhau, hoặc hai việc phải làm hai lần thử khác nhau mới kết luận được.

3 · Vì sao yêu cầu nói việc cần đạt mà không nói cách làm

Yêu cầu nói sản phẩm phải làm được gì. Cách làm ra sao là việc của người thiết kế. Nhưng trong bản yêu cầu thật, hai thứ này lẫn vào nhau rất nhiều, và thường lẫn ở những dòng nhìn như dòng kỹ thuật nghiêm túc nhất.

Một ví dụ dễ thấy, bối cảnh là một xưởng làm đồ nhựa gia dụng ở Việt Nam, không nêu tên ai. Bản yêu cầu từ phía đặt hàng viết: vỏ sản phẩm dày hai milimét. Dòng này trông rất rõ, có số, có đơn vị. Nhưng nó là một cách làm. Việc cần đạt nằm phía sau nó: vỏ phải không nứt khi sản phẩm rơi từ mặt bàn xuống sàn.

Viết cách làm vào chỗ của yêu cầu thì ba chuyện xảy ra.

Người thiết kế mất quyền tìm cách rẻ hơn. Có thể gân tăng cứng ở mặt trong giải được đúng việc đó với một phẩy hai milimét nhựa. Dòng yêu cầu đã khoá con số nên phương án ấy không được bàn tới.

Nghiệm thu đo sai thứ. Người thử lấy thước đo độ dày, thấy đủ hai milimét thì ghi đạt. Sản phẩm vẫn nứt khi rơi, nhưng bản yêu cầu không có dòng nào nói về rơi, nên trên giấy tờ không có lỗi nào. Lỗi chỉ xuất hiện ở tay người dùng.

Không còn ai chịu trách nhiệm về việc cần đạt. Phía đặt hàng nói họ đã ghi rõ hai milimét. Người thiết kế nói họ làm đúng dòng được ghi. Cả hai đều nói thật, và việc sản phẩm nứt thì không thuộc về ai.

Phép soi: hỏi dòng đó câu vì sao phải thế. Nếu trả lời được bằng một việc ở tầng trên, thì chính việc ở tầng trên mới là yêu cầu, còn dòng đang viết là một phương án.

Có một ngoại lệ thật, và phải gọi đúng tên nó. Nhiều khi cách làm bị chốt sẵn vì lý do ngoài thiết kế: một tiêu chuẩn bắt buộc, một chi tiết phải dùng chung với dòng sản phẩm đang bán, một nhà cung cấp đã ký hợp đồng. Những thứ đó phải ghi vào, nhưng chúng là ràng buộc (constraint), không phải yêu cầu, và phải ghi ở chỗ riêng kèm một câu nói rõ chúng đến từ đâu, ai đặt ra. Trộn vào giữa các dòng yêu cầu thì sáu tháng sau không ai phân biệt được đâu là ràng buộc thật, đâu là ý thích của một người đã rời dự án.

4 · Cách viết cho rộng mà người thiết kế vẫn biết đạt là đạt cái gì

Đọc hết mục 3, nhiều người rút ra một kết luận ngược: vậy cứ viết thoáng ra cho người thiết kế tự do. Rồi bản yêu cầu thành một trang toàn chữ chỉ tính chất, và người thiết kế không biết mình phải đạt cái gì.

Chỗ gỡ nằm ở chỗ phân biệt hai loại mơ hồ.

Mơ hồ về cách làm là đúng và cần thiết. Bản yêu cầu nên để trống phần này, vì đó là phần người thiết kế được trả tiền để lấp.

Mơ hồ về việc cần đạt là lỗi. Dòng nào mà người thiết kế đọc xong vẫn không biết thứ gì sẽ được đem ra thử, thử trong hoàn cảnh nào, mức nào thì ghi đạt, thì dòng đó chưa viết xong.

Hai loại này trông giống nhau khi cùng nhìn vào một câu ngắn, nên có một phép soi để tách. Lấy dòng yêu cầu rồi hỏi: có nhiều hơn một cách làm thoả được dòng này không? Kể ra được ít nhất hai cách khác hẳn nhau thì dòng đang viết ở tầng việc cần đạt, và nó rộng đúng mức. Nghĩ mãi chỉ ra đúng một cách thì dòng đó đang là cách làm đội mũ yêu cầu.

Ba việc nữa làm cho dòng rộng mà vẫn rõ.

Đi lên một tầng, rồi dừng ở tầng cao nhất mà vẫn còn thử được. Từ vỏ dày hai milimét đi lên thành vỏ không nứt khi rơi từ mặt bàn xuống sàn: rộng hơn, mà vẫn thử được. Đi lên tiếp thành sản phẩm phải bền: rộng hơn nữa, nhưng hết thử được. Tầng đúng là tầng ngay trước chỗ không còn thử được.

Ghi lại lý do của mức, một dòng là đủ. Người thiết kế đọc được lý do thì khi vướng, họ quay lại thương lượng mức bằng lập luận. Không có lý do thì họ chỉ còn hai lối: đạt bằng mọi giá, hoặc lặng lẽ bỏ qua dòng đó.

Tách phần bắt buộc với phần mong muốn. Không phân biệt thì cả bản yêu cầu thành bắt buộc, và không còn chỗ nào để làm hơn được tính điểm.

Còn một nửa của câu đạt là đạt cái gì, bài này cố ý chưa trả lời: đo bằng cách nào, ai đo, đo ở điều kiện nào, mức lấy ở đâu ra. Đó là bài 3 của lớp này.

Bảng tổng hợp bốn phần của một dòng yêu cầu

PhầnCâu hỏi nó trả lờiViết đúng thì thấy gìViết sai thì thấy gì
Việc cần đạtsản phẩm phải làm được việc gìmột việc cụ thể xảy ra với sản phẩm, kể ra được ít nhất hai cách làm thoả nómột tính chất: tốt, nhanh, bền, tiện. Hoặc một cách làm đã bị chốt sẵn
Đại lượng và mứcđo cái gì, mức nào là đạtmột đại lượng, một con số, một đơn vịkhông có số. Hoặc có số mà thiếu đơn vị, thiếu chiều so sánh
Điều kiện áp dụngmức đó phải đúng ở đâu, lúc nàohoàn cảnh dùng thật được nói rađể trống, nên mỗi bên tự hiểu một hoàn cảnh
Mức độ bắt buộcđây là bắt buộc hay mong muốnhai loại nằm riêng, nói thẳng loại nàotrộn chung, nên lúc phải cắt thì người cắt tự chọn

Chụp lại bảng này. Một dòng thiếu hẳn một trong bốn phần thì chưa viết xong, chứ chưa cần bàn tới chuyện nó đúng hay sai về nội dung.

Phần giá trị nhất của bài

Chỗ người ta hay làm sai

Viết yêu cầu kèm luôn giải pháp. Dòng yêu cầu ghi một cách làm cụ thể: dùng loại động cơ này, vỏ dày mức này, bố trí nút theo kiểu kia. Người ta sai không vì không biết luật, mà vì nghĩ bằng giải pháp thì nhanh hơn nghĩ bằng việc cần đạt, và vì một cách làm cụ thể cho cảm giác chắc chắn, còn một việc cần đạt nghe như còn bỏ ngỏ. Hậu quả rơi vào hai phía. Người thiết kế mất chỗ để tìm cách rẻ hơn. Người dùng cuối nhận một sản phẩm đạt hết các dòng trên giấy mà vẫn không dùng được, vì thứ cần đạt chưa bao giờ được viết ra. Cách tránh là hỏi mỗi dòng câu vì sao phải thế, rồi viết lại bằng câu trả lời. Nếu cách làm đó thật sự bị chốt từ bên ngoài thì chuyển nó sang chỗ dành cho ràng buộc, kèm một dòng nói rõ ai chốt và chốt vì lý do gì.

Gộp ba việc vào một câu. Một dòng kiểu máy phải nhẹ, êm và dễ vệ sinh. Người ta sai vì bản yêu cầu gộp đọc gọn hơn, ít dòng hơn, và một danh sách ngắn trông như một bản được viết kỹ. Hậu quả rơi vào người làm nghiệm thu: họ cầm một dòng không kết luận được, và câu hỏi trôi lên người đứng đầu dự án vào đúng tuần cuối. Cách tránh là tách mỗi đại lượng một dòng, rồi đọc lại cả nhóm dòng vừa tách xem có hai dòng nào kéo nhau về hai phía không. Có thì ghi thẳng ra đây là chỗ phải đánh đổi, và ghi ai được quyền quyết.

Dùng chữ tốt, nhanh, bền mà không có số. Kiểu sai này sống lâu vì những dòng như vậy không ai phản đối trong buổi họp. Người ta sai vì ba chữ đó đúng với mọi người, mà đúng với mọi người nghĩa là chưa nói gì cả. Sai cũng vì đặt một con số ra là tự nhận trách nhiệm về con số ấy, còn viết chữ bền thì không phải chịu gì. Hậu quả rơi vào người ký nghiệm thu: họ phải tự dựng ra một mức cho dòng đó rồi chịu luôn mức mình vừa dựng. Cách tránh là phép thử một phút: với mỗi dòng, thử viết thêm một đại lượng và một mức. Dòng nào viết không ra, hoặc hai người ngồi cạnh viết riêng ra hai mức khác nhau, thì dòng đó chưa phải yêu cầu.

Ví dụ để khái niệm sáng ra

Ví dụ minh hoạ

Ví dụ dưới đây dùng được vì nó đã cũ, đã có phân tích công khai đăng trên một tạp chí của giới nghề, và được dạy rộng trong giáo trình về an toàn thiết bị, nên bạn tra lại được.

Những năm tám mươi của thế kỉ trước, máy xạ trị Therac-25 gây ra một loạt ca chiếu quá liều. Phân tích công bố sau đó chỉ ra một nguyên nhân nằm ở chỗ đặt yêu cầu. Các đời máy trước có khoá an toàn bằng cơ khí chặn chùm tia khi các bộ phận trên đường tia chưa vào đúng vị trí. Đời máy mới bỏ khoá cơ khí và giao hẳn việc chặn đó cho phần mềm tự kiểm.

Nhìn theo bài này: việc cần đạt là chùm tia không được phát khi các bộ phận chưa vào đúng vị trí. Nhưng thứ được chốt trên giấy là một cách làm: phần mềm tự kiểm. Khi cách làm ấy có lỗi thì không còn dòng nào nhắc tới điều đáng ra phải đạt, nên không còn gì để đem ra thử.

Điều rút ra: một yêu cầu bị gắn chặt vào đúng một cách làm thì lúc cách làm ấy hỏng, thứ đáng ra phải đạt cũng biến mất khỏi giấy tờ.

Bài tập tự chấm

Thử nhìn lại việc của mình

Việc cần làm. Mở bản yêu cầu của một sản phẩm bạn đang làm, hoặc một bản đề bài khách vừa gửi. Đừng lấy cả bản, hãy lấy đúng năm dòng liền nhau, ở giữa bản chứ không phải ở đầu. Với từng dòng, làm ba việc. Việc một, chấm nó theo bốn phần trong bảng tổng hợp, mỗi phần ghi có hoặc không. Việc hai, hỏi dòng đó câu vì sao phải thế; nếu câu trả lời là một việc ở tầng trên thì dòng đang chấm là một cách làm, ghi lại việc ở tầng trên ấy. Việc ba, chọn một dòng chấm xấu nhất trong năm dòng và viết lại thành một dòng mới, hoặc thành hai dòng nếu nó đang gộp.

Cách tự chấm. Dấu hiệu làm đúng: trong năm dòng có ít nhất một dòng thiếu phần điều kiện áp dụng, vì phần này bị bỏ nhiều nhất ở mọi bản yêu cầu; dòng bạn viết lại kể ra được ít nhất hai cách làm khác hẳn nhau mà vẫn thoả nó; và người ngồi cạnh bạn đọc dòng mới, tự nói ra được sẽ đem thứ gì ra thử. Dấu hiệu còn sai: cả năm dòng đều đủ bốn phần, nghĩa là bạn đang chấm quá nhẹ tay, hãy thử viết mức ra giấy xem có viết được không; dòng viết lại của bạn chỉ còn đúng một cách làm thoả được, nghĩa là bạn vừa đổi một cách làm thành một cách làm khác; hoặc dòng viết lại dài hơn ba dòng chữ, nghĩa là nó vẫn đang gộp nhiều việc.

Lời giải mẫu. Dòng gốc: tay cầm phải chắc chắn và thoải mái. Chấm: việc cần đạt có, nhưng là tính chất chứ không phải việc; đại lượng và mức không có; điều kiện áp dụng không có; bắt buộc hay mong muốn không rõ. Hỏi vì sao phải chắc chắn, ra câu để tay cầm không gãy khi người dùng xách sản phẩm đã đổ đầy. Vậy tách thành hai dòng. Dòng một, bắt buộc: tay cầm không được gãy hay biến dạng thấy được khi xách sản phẩm đã đổ đầy, nhấc lên đặt xuống lặp lại nhiều lần, ở điều kiện nhiệt độ của một gian bếp thường. Dòng hai, mong muốn: lực tay phải bóp để giữ chặt sản phẩm đã đổ đầy nằm dưới một mức mà người lớn tuổi vẫn làm được. Mức cụ thể của cả hai dòng chưa đặt ở đây, vì đặt mức là việc của bài 3.

Nguồn

Đọc thêm

Của MES LAB

Bài 1 của lớp này, nói về chỗ khác nhau giữa nhu cầu và yêu cầu — nên đọc lại nếu bạn thấy khó tách phần việc cần đạt ra khỏi lời khách nói.

Bài 3 của lớp này, nói về chuyện đo được nghĩa là gì và mức lấy ở đâu ra — đó là nửa còn lại của câu hỏi đạt là đạt cái gì mà bài này cố ý để ngỏ.

Bên ngoài

"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, có một chương riêng về cách đặt đặc tả kỹ thuật cho sản phẩm; đọc để thấy cùng một nhu cầu thì ra những đại lượng nào.

"Guide for Writing Requirements", hội nghề International Council on Systems Engineering phát hành — tập hợp các luật viết một dòng yêu cầu, trong đó có luật mỗi dòng chỉ nói một việc và luật không viết cách làm vào chỗ của yêu cầu.

Tiêu chuẩn ISO/IEC/IEEE 29148 về công việc làm yêu cầu trong vòng đời hệ thống và phần mềm — đọc để thấy một tiêu chuẩn quốc tế định nghĩa thế nào là một yêu cầu viết đạt, và nó đòi những phần nào.

"An Investigation of the Therac-25 Accidents", Nancy Leveson và Clark Turner, tạp chí IEEE Computer — bản phân tích công khai của chính ca nêu trong phần ví dụ, đọc để thấy một yêu cầu an toàn bị thay bằng một cách làm thì kéo theo những gì.