m.school › Các bước phát triển một sản phẩm mới › bài 3
Mỗi câu bấm một phương án. Đúng hay sai và lời giải thích hiện ngay. Không lưu điểm, không ai xem kết quả của bạn.
Câu 1. Một dự án mà ngay từ đầu ai cũng biết yêu cầu của khách sẽ còn đổi trong lúc làm. Theo bài, giả định gốc của mô hình nào trái hẳn với hoàn cảnh này?
Giả định gốc của mô hình tuần tự là yêu cầu biết đủ ngay từ đầu và không đổi. Mô hình lặp ngắn thì giả định ngược lại, rằng yêu cầu sẽ đổi trong lúc làm. Xem mục 2 và mục 3.
Câu 2. Theo bài, ở mô hình xoắn ốc, thứ quyết định bước tiếp theo của mỗi vòng là gì?
Mỗi vòng của mô hình xoắn ốc bắt đầu bằng câu hỏi rủi ro lớn nhất còn lại là gì, rồi đội làm đúng thứ cần để gỡ rủi ro đó, thường là một mẫu thử. Mô hình này đi theo rủi ro, không theo danh sách tài liệu. Xem mục 3.
Câu 3. Một công ty áp mô hình kim cương đôi cho trọn dự án, từ đầu tới lúc bán. Theo bài, chỗ nào dễ bị bỏ trống?
Kim cương đôi chỉ phủ phần đầu: hình thoi thứ nhất ứng với chặng tìm hiểu người dùng tại chỗ, hình thoi thứ hai ứng với chặng tìm và chọn phương án và phần đầu chặng làm mẫu. Nó không nói gì về chặng thăm dò và chặng đưa ra thị trường. Xem mục 4.
Câu 4. Bạn vẽ lại quy trình thật của công ty và kết luận công ty đang dùng mô hình lặp ngắn, vì đội có họp hằng tuần. Theo bài, kết luận này sai ở đâu?
Họp hằng tuần không làm nên mô hình lặp ngắn. Mô hình này chia việc thành vòng ngắn, cuối mỗi vòng có phần chạy được để xem rồi chỉnh kế hoạch. Bài cũng nêu cách nghĩ đi vòng không của riêng phần mềm. Xem mục 3 và «Thử nhìn lại việc của mình».
Câu 5. Một đội dùng mô hình có cổng thấy một chỗ sai ở chặng đã qua, nhưng không dám quay lại vì nghĩ cổng là một chiều tuyệt đối. Theo bài, hiểu đúng là gì?
Cổng hay được giới thiệu bằng một mũi tên thẳng nên bị hiểu là một chiều. Đọc đúng mô hình thì làm lại là một lối ra chính thức. Hiểu sai dẫn tới chỗ đội giấu chỗ sai để qua cổng. Xem «Chỗ người ta hay làm sai».
Việc cần làm. Chọn dự án gần nhất mà công ty bạn đã đưa ra thị trường. Vẽ lại con đường dự án đó đã đi thật, theo trí nhớ của những người trong cuộc và theo giấy tờ còn lại, không theo quy trình in trên tường. Đánh dấu ba thứ: các chặng thật sự đã có, những chỗ có người dừng lại để quyết, và những lần đội quay lại một chặng trước. Sau đó đặt hình vừa vẽ cạnh sáu hình trong bảng tổng hợp, chọn hình gần nhất, và viết một câu nêu giả định gốc mà dự án đó đã ngầm dựa vào.
Cách tự chấm. Dấu hiệu làm đúng có ba. Một, hình bạn vẽ có ít nhất một chỗ khác với quy trình chính thức của công ty. Hai, mỗi chỗ dừng để quyết có tên người quyết. Ba, câu giả định nói về sản phẩm cụ thể, ví dụ yêu cầu của khách đã rõ từ đầu, không phải một câu chung.
Dấu hiệu còn sai cũng có ba. Một, hình vẽ giống hệt quy trình in sẵn. Hai, bạn chọn được mô hình nhưng không viết được giả định. Ba, bạn kết luận công ty mình dùng mô hình lặp ngắn chỉ vì có họp hằng tuần.
Lời giải mẫu. Sản phẩm: một mẫu ấm đun nước siêu tốc mới. Con đường thật: đội kinh doanh đưa ảnh một mẫu ấm bán chạy, phòng kỹ thuật vẽ, đặt khuôn, làm loạt. Chỉ có một chỗ dừng, là lúc người đứng đầu duyệt giá khuôn. Có một lần quay lại, sau khi mở khuôn, vì nắp không kín. Hình gần nhất là mô hình tuần tự, có một cổng. Giả định ngầm: yêu cầu đã rõ vì đã có mẫu để theo. Giả định này sai ở chỗ không ai kiểm xem người dùng có vướng gì với mẫu được theo hay không.
Bản chữ của video, để đọc lại hoặc tra cứu
Hai bài trước đi qua sáu chặng theo một cách chia. Bài này lùi ra xa hơn. Cùng một con đường từ ý nghĩ tới hàng bán được, mỗi mô hình chia thành chặng theo một kiểu và đi lại giữa các chặng theo một kiểu. Bài này giới thiệu sáu mô hình hay gặp nhất, nói nguồn gốc của từng mô hình, và quan trọng hơn cả là nói mỗi mô hình đặt cược vào điều gì. Bài sau mới bàn chuyện chọn mô hình nào cho sản phẩm nào.
Mô hình phát triển (development model) là một bản mô tả chung cho hai việc. Việc thứ nhất là chia con đường làm sản phẩm thành những chặng nào. Việc thứ hai là đi giữa các chặng theo cách nào: đi thẳng một chiều, đi một chiều nhưng có chỗ dừng để quyết, hay đi vòng nhiều lần.
Mô hình khác với quy trình của một công ty. Quy trình của công ty là bản cụ thể: ai làm, làm gì, nộp tờ nào. Mô hình là cái khung mà nhiều quy trình cụ thể cùng dựa vào. Bài 1 đã tách quy trình với kỹ thuật. Ở đây thêm một tầng nữa phía trên: mô hình.
Các mô hình không xuất hiện cùng lúc. Một trong những mô hình sớm của ngành sản xuất hàng hoá là quy trình bảy bước do công ty tư vấn Booz, Allen và Hamilton công bố năm 1982, rút từ khảo sát nhiều công ty. Sách giáo trình Ulrich và Eppinger mà lớp Nghề phát triển sản phẩm gồm những việc gì, mã SP-01, dùng là một cách chia khác. Sáu chặng của lớp này lại là một cách chia khác nữa. Không có cách chia nào đúng cho mọi trường hợp.
Vậy dựa vào đâu để so các mô hình với nhau? Chúng tôi đề nghị so bằng hai câu hỏi. Đây là cách nhìn của chúng tôi, không phải một phân loại chính thức của ngành.
Câu thứ nhất: sửa về sau tốn bao nhiêu. Với hàng có khuôn, có chứng nhận, có hàng tồn, một thay đổi sau khi mở khuôn tốn gấp nhiều lần thay đổi trên bản vẽ. Với phần mềm phát hành qua mạng, thay đổi tuần sau so với tuần này đắt hơn không đáng kể.
Câu thứ hai: đầu dự án biết chắc được bao nhiêu. Có dự án biết rõ người dùng cần gì và công nghệ đã làm nhiều lần. Có dự án chưa biết người dùng là ai, hoặc chưa biết công nghệ có làm được không.
Mỗi mô hình là một cách trả lời hai câu này. Mô hình nào cũng đúng ở hoàn cảnh nó sinh ra, và mô hình nào cũng hỏng khi đem sang hoàn cảnh mà giả định của nó không còn đúng. Sách cẩm nang của chúng tôi gọi danh sách các mô hình là một thực đơn, và nhắc rằng biết nhiều mô hình chưa đủ: phải chọn mô hình hợp với hoàn cảnh của mình.
Mô hình tuần tự (sequential model, hay được gọi là mô hình thác nước) đi qua các chặng theo thứ tự, chặng trước xong mới sang chặng sau, không quay lại. Mô hình này thường được gắn với bài báo của Winston Royce trình bày ở một hội nghị kỹ thuật tại Mỹ tháng 8 năm 1970, về cách quản lý các dự án phần mềm lớn. Có hai điều ít người biết. Chữ thác nước không có trong bài báo đó. Và chính Royce, ngay sau khi vẽ chuỗi các bước đi một mạch, đã viết rằng cách làm ấy rủi ro và dễ dẫn tới thất bại, rồi đề nghị thêm các vòng phản hồi và làm thử một lần trước. Giả định gốc của mô hình tuần tự: yêu cầu biết đủ ngay từ đầu và không đổi.
Mô hình có cổng (Stage-Gate) do Robert Cooper công bố rộng trong bài báo năm 1990 trên tạp chí Business Horizons. Con đường vẫn đi một chiều, nhưng giữa hai chặng có một cổng (gate): một chỗ dừng mà ở đó một người có quyền nhìn vào bằng chứng rồi quyết cho đi tiếp, bắt làm lại, treo lại hay dừng hẳn. Giả định gốc: sửa về sau rất đắt, nên trước mỗi khoản tiền lớn phải có một quyết định dựa trên bằng chứng. Cách tổ chức một cổng sẽ được dạy ở lớp Quy trình và cổng duyệt trong phát triển sản phẩm, mã TC-02.
Mô hình chữ V (V-model) được Kevin Forsberg và Harold Mooz trình bày năm 1991, tại một hội nghị của giới kỹ thuật hệ thống ở Mỹ. Nhánh trái đi xuống: từ nhu cầu người dùng, tới yêu cầu cho cả sản phẩm, tới thiết kế từng khối, tới chi tiết. Đáy chữ V là lúc làm ra. Nhánh phải đi lên bằng các phép thử, và mỗi tầng bên trái có một phép thử ứng với nó bên phải: chi tiết được thử theo bản vẽ chi tiết, khối được thử theo thiết kế khối, sản phẩm được thử theo bản yêu cầu, và trên cùng là thử với người dùng theo nhu cầu ban đầu. Bạn sẽ nhận ra đây chính là hai loại thử đã học ở bài 2, được đặt thành hình. Giả định gốc: mỗi yêu cầu phải chứng minh được bằng một phép thử, và phải lần ngược được từ phép thử về yêu cầu sinh ra nó.
Mô hình xoắn ốc (spiral model) do Barry Boehm đề xuất. Ông mô tả nó lần đầu năm 1986, rồi đăng bản phổ biến rộng hơn trên tạp chí Computer năm 1988. Dự án đi qua nhiều vòng. Mỗi vòng bắt đầu bằng câu hỏi: rủi ro lớn nhất còn lại là gì. Đội làm đúng thứ cần để gỡ rủi ro đó, thường là một mẫu thử, rồi mới quyết đi tiếp vòng sau. Mô hình này được gọi là đi theo rủi ro: thứ quyết định bước tiếp theo là rủi ro, không phải danh sách tài liệu phải nộp. Giả định gốc: có những điều chưa ai biết, và phải đo bằng mẫu trước khi đổ tiền vào làm thật.
Mô hình lặp ngắn theo kiểu linh hoạt (Agile) gắn với Tuyên ngôn phát triển phần mềm linh hoạt. Tuyên ngôn được mười bảy người làm phần mềm viết ra trong một cuộc gặp ở bang Utah của Mỹ, ngày 11 tới 13 tháng 2 năm 2001. Công việc được chia thành những vòng ngắn vài tuần. Cuối mỗi vòng có một phần chạy được, người dùng hoặc người đại diện cho họ xem, rồi đội chỉnh kế hoạch cho vòng sau. Giả định gốc: yêu cầu sẽ đổi trong lúc làm, và sửa về sau không đắt hơn bao nhiêu.
Có một chỗ đáng biết về nguồn gốc. Một trong những khung làm việc lặp ngắn phổ biến nhất mang tên Scrum, chữ chỉ thế tranh bóng của đội bóng bầu dục. Hình ảnh đó lấy từ bài báo của Hirotaka Takeuchi và Ikujiro Nonaka trên tạp chí Harvard Business Review số tháng 1 năm 1986. Bài báo này viết về các hãng làm sản phẩm phần cứng ở Nhật và Mỹ, không phải phần mềm. Nó so cách làm kiểu chạy tiếp sức, chặng này xong mới trao cho chặng sau, với cách làm kiểu bóng bầu dục, cả đội cùng tiến và các pha gối đầu lên nhau.
Như vậy, cách nghĩ đi vòng không phải của riêng ngành phần mềm. Nó được viết ra lần đầu khi quan sát chính những hãng làm vật cầm được.
Năm mô hình trên phủ cả con đường. Mô hình thứ sáu thì chỉ phủ phần đầu, và đi sâu vào một việc: tìm cho đúng vấn đề trước khi tìm lời giải.
Mô hình kim cương đôi (Double Diamond) do Hội đồng Thiết kế Vương quốc Anh (Design Council) hệ thống hoá và phổ biến vào giữa những năm 2000. Theo trang của chính Hội đồng, việc này bắt đầu năm 2003, khi họ cần một cách nói chung về quy trình thiết kế. Hình của nó là hai hình thoi đặt cạnh nhau. Mỗi hình thoi là một lần mở rộng rồi thu hẹp. Hình thoi thứ nhất dành cho vấn đề: khám phá (Discover) thật rộng, rồi xác định (Define) một vấn đề cụ thể. Hình thoi thứ hai dành cho lời giải: phát triển (Develop) nhiều hướng, rồi chuyển giao (Deliver) một hướng đã thử.
Đặt cạnh sáu chặng của lớp này, hình thoi thứ nhất ứng với chặng tìm hiểu người dùng tại chỗ, hình thoi thứ hai ứng với chặng tìm và chọn phương án và phần đầu chặng làm ra mẫu chạy được. Sách giáo trình của chúng tôi cũng đặt năm nhịp tư duy thiết kế của trường thiết kế thuộc Đại học Stanford cạnh các chặng theo cách tương tự. Chỗ đáng để ý là cả hai mô hình này không nói gì về quyết định có nên làm hay không ở chặng thăm dò, và không nói gì về chặng đưa ra thị trường. Chúng là mô hình cho một khúc, không phải cho cả con đường. Giả định gốc: ở đầu dự án, vấn đề chưa rõ, và chọn sai vấn đề thì lời giải tốt tới đâu cũng vô ích.
Các nhịp bên trong của cách làm này sẽ được dạy ở lớp Các nhịp của tư duy thiết kế, làm từng nhịp ra sao, mã DM-02.
Có một mô hình đi vòng nữa hay được nhắc khi thị trường còn chưa rõ: cách làm khởi nghiệp tinh gọn (Lean Startup) mà Eric Ries trình bày trong cuốn sách năm 2011. Mỗi vòng gồm làm ra một phiên bản nhỏ nhất đủ để thử, đo phản ứng của người dùng, rồi học từ số đo đó. Bạn có thể coi nó là một biến thể của mô hình đi vòng, dùng cho câu hỏi có người cần sản phẩm này không.
| Mô hình | Giả định gốc | Hình dạng | Đi lại giữa các chặng | Dùng sai chỗ thì sao |
|---|---|---|---|---|
| Tuần tự (Royce 1970) | yêu cầu biết đủ từ đầu và không đổi | một chuỗi thẳng | không quay lại | chỗ sai ở đầu chỉ lộ ra khi đã làm xong |
| Có cổng (Cooper 1990) | sửa về sau rất đắt | chuỗi chặng xen cổng | quyết ở mỗi cổng, được làm lại | cổng làm cho có, hoặc quá nhiều cổng cho việc nhỏ |
| Chữ V (Forsberg và Mooz 1991) | mỗi yêu cầu phải có phép thử ứng với nó | hai nhánh xuống và lên | mỗi tầng trái nối với một phép thử bên phải | tốn công giấy tờ cho sản phẩm không cần truy ngược |
| Xoắn ốc (Boehm 1988) | có rủi ro chưa ai biết | các vòng nở dần | mỗi vòng gỡ rủi ro lớn nhất còn lại | vòng không có điểm kết, dự án kéo dài |
| Lặp ngắn (Tuyên ngôn 2001) | yêu cầu sẽ đổi, sửa về sau rẻ | các vòng ngắn đều nhau | chỉnh kế hoạch sau mỗi vòng | đem sang hàng có khuôn thì mỗi vòng là một lần sửa khuôn |
| Kim cương đôi (Hội đồng Thiết kế Vương quốc Anh) | vấn đề chưa rõ | hai hình thoi | mở rộng rồi thu hẹp hai lần | tưởng nó phủ cả dự án, nên bỏ trống chặng thăm dò và chặng đưa ra thị trường |
Bạn nên chụp lại bảng này. Cột giả định gốc là cột quan trọng nhất: khi giả định đó sai với dự án của bạn, cả mô hình hỏng theo.
Tưởng phải chọn một mô hình cho cả công ty. Ban lãnh đạo đi học về một mô hình, rồi ra quyết định từ nay mọi dự án đi theo mô hình đó. Người ta sai vì một mô hình chung trông gọn gàng và dễ quản lý, và vì các tài liệu giới thiệu mô hình thường viết như thể nó dùng được cho mọi việc. Hậu quả rơi vào những dự án không hợp giả định của mô hình. Dự án chỉ đổi bao bì bị bắt đi qua đủ cổng nên người ta bỏ qua cho nhanh. Dự án có rủi ro công nghệ lớn lại không có vòng thử nào trước khi mở khuôn. Cách tránh là chọn mô hình theo từng dự án, hoặc ghép nhiều mô hình cho từng khúc của một dự án. Bài 4 sẽ dạy cách chọn.
Tưởng làm theo kiểu linh hoạt nghĩa là không có kế hoạch. Một đội tuyên bố chuyển sang làm lặp ngắn, rồi bỏ luôn bản yêu cầu, bỏ lịch, bỏ các buổi duyệt. Người ta sai vì đọc vội bốn câu của Tuyên ngôn năm 2001 và chỉ nhớ vế được coi trọng hơn, quên câu cuối nói vế kia vẫn có giá trị. Hậu quả rơi vào người đứng đầu và người giữ tiền: họ không còn biết dự án đang ở đâu, tốn bao nhiêu, bao giờ xong. Cách tránh là nhớ rằng làm lặp ngắn vẫn có kế hoạch, chỉ là kế hoạch được viết lại sau mỗi vòng thay vì viết một lần cho cả dự án. Mỗi vòng vẫn có mục tiêu viết ra trước và một phần chạy được để xem ở cuối.
Tưởng mô hình có cổng thì không được lặp. Nhiều người hiểu cổng là một chiều tuyệt đối: đã qua thì không được quay lại, và bên trong một chặng phải làm theo đúng thứ tự giấy tờ. Người ta sai vì cổng thường được giới thiệu bằng một hình mũi tên thẳng. Hậu quả rơi vào chất lượng sản phẩm: đội thấy chỗ sai mà không dám quay lại, hoặc giấu chỗ sai để qua cổng. Cách tránh là đọc đúng mô hình. Ở mỗi cổng, làm lại là một lối ra chính thức, ngang hàng với đi tiếp. Và bên trong một chặng, đội được chạy nhiều vòng thử nhỏ. Chính Cooper về sau cũng đã viết về cách ghép cổng với vòng lặp ngắn, bài 4 sẽ nói tới.
Ví dụ dưới đây là một văn bản có thật, bạn đọc được trọn ở trang agilemanifesto.org.
Tuyên ngôn phát triển phần mềm linh hoạt năm 2001 chỉ có bốn câu chính. Mỗi câu đặt hai thứ cạnh nhau và nói nhóm tác giả coi trọng vế đầu hơn vế sau. Dịch sát nghĩa, bốn câu đó là: cá nhân và sự tương tác hơn quy trình và công cụ, phần mềm chạy được hơn tài liệu đầy đủ, cộng tác với khách hàng hơn đàm phán hợp đồng, và ứng phó với thay đổi hơn bám theo kế hoạch. Câu kết nói rõ các vế sau vẫn có giá trị, chỉ là vế đầu được coi trọng hơn.
Nhìn theo bài này: mỗi vế sau gắn với một giả định của mô hình tuần tự, rằng yêu cầu chốt được từ đầu và kế hoạch đúng tới cuối. Bốn câu nói thẳng là nhóm tác giả không tin giả định đó, trong ngành của họ.
Điều rút ra: một mô hình đáng tin khi nó nói rõ giả định của mình. Giả định ấy đúng với phần mềm, nơi sửa về sau rẻ, và không tự đúng với hàng có khuôn.
Của MES LAB
Bài 4 của chính lớp này: chọn mô hình nào và độ dày quy trình bao nhiêu cho từng loại sản phẩm.
Lớp Các nhịp của tư duy thiết kế, làm từng nhịp ra sao, mã DM-02, hiện chưa mở. Khi mở, lớp đó sẽ đi vào bên trong các nhịp mở rộng rồi thu hẹp của mô hình kim cương đôi.
Bên ngoài
Winston W. Royce, "Managing the Development of Large Software Systems", kỷ yếu hội nghị WESCON, tháng 8 năm 1970 — bài báo thường được gắn với mô hình tuần tự, đọc để thấy chính tác giả đã cảnh báo đi một mạch là rủi ro.
Robert G. Cooper, "Stage-Gate Systems: A New Tool for Managing New Products", tạp chí Business Horizons, năm 1990 — bài báo giới thiệu rộng mô hình có cổng.
Thấy bài này có ích cho ai, gửi cho người đó.