要件定義:「という理解で合っていますか」
「〜したい」を「〜できること」に直していく回。ずれが見つかったら、まずお礼を言ってから直します。そして現場の一言が、そのまま優先度の高い要件になります。第二幕の、開幕。
The episode where “we want to…” gets turned into “it must be possible to…”. When a gap turns up, you thank them first and fix it second. And a single line from the floor becomes a high-priority requirement. Act Two opens here.
把「想要…」改写成「能够…」的一集。发现落差时,先道谢,再修改。而现场的一句话,就直接变成了高优先度的需求。第二幕,开幕。
把「想要…」改寫成「能夠…」的一集。發現落差時,先道謝,再修改。而第一線的一句話,就直接變成了高優先度的需求。第二幕,開幕。
Tập mà “chúng tôi muốn…” được đổi thành “phải làm được…”. Khi phát hiện một chỗ lệch, ta cảm ơn trước, rồi mới sửa. Và một câu nói từ hiện trường trở thành một yêu cầu ưu tiên cao. Màn Hai mở ra.
前回まで:契約が決まり、キックオフで約束をした。柳さんは一言も話さず、資料から目を上げただけだった。今日から、作る話が始まる。
The story so far: the contract came through, and at the kickoff she made her promise. Yanagi-san said nothing at all — he only lifted his eyes from the papers. From today, the work of building begins.
前情提要:合同定下来了,在启动会上她许下了承诺。柳先生一句话也没说,只是从资料上抬起了眼睛。从今天起,开始谈「做」的事。
前情提要:合約定下來了,在啟動會上她許下了承諾。柳先生一句話也沒說,只是從資料上抬起了眼睛。從今天起,開始談「做」的事。
Chuyện trước đó: hợp đồng đã được thông qua, và ở buổi khởi động cô đã đưa ra lời hứa. Yanagi-san không nói một lời — ông chỉ ngẩng mắt lên khỏi xấp tài liệu. Từ hôm nay, câu chuyện của việc xây dựng bắt đầu.
フォーマルな場の日本語
The scene: a meeting room at Harukaze Transport — the requirements workshop. Mei leads, Miura-san corrects her once, and Sasaki the floor supervisor speaks up for the first time.
場面:Harukaze Transport の会議室、要件定義のワークショップ。メイが進めます。三浦さんが一度、認識を直してくれます。そして現場監督の佐々木さんが、初めて自分から発言します。
场景:Harukaze Transport 的会议室,需求定义的工作坊。梅主持。三浦先生纠正了她一次。然后,现场主管佐佐木第一次主动开口。
場景:Harukaze Transport 的會議室,需求定義的工作坊。梅主持。三浦先生糾正了她一次。然後,現場主管佐佐木第一次主動開口。
Bối cảnh: phòng họp ở Harukaze Transport — buổi làm việc về yêu cầu. Mei dẫn dắt, Miura-san chỉnh lại cho cô một lần, và Sasaki, người quản lý hiện trường, lần đầu tiên tự mình lên tiếng.
Mei: “Today we take the requests you gave us the other day and turn them into the language of the system. For example, ‘we want fewer redeliveries’ is a request. Turned into something where you can measure whether it is done or not — ‘it must be possible to take a redelivery request in chat’ — that is a requirement.” — Miura: “I see.” — Mei: “So, starting with taking redelivery requests. My understanding is that the customer enters the tracking number — is that right?” — Miura: “Well, actually, we get a lot of calls where they do not know the number.” — Mei: “Thank you. Then: ‘where the tracking number is unknown, it must be possible to look it up by phone number and address.’ We add that as a requirement too.” — Sasaki (supervisor): “Er, may I? One thing from the floor. We want to be able to see what the AI answered, on the screen of the operator who takes over. If we make a customer say the same thing twice, that is where we get shouted at.” — Mei: “…That is a very important requirement. I will put it in at high priority. ‘At handover, the conversation history must be displayed.’” — Sasaki: (looking slightly surprised) “…Please do.” — Mei: “On the non-functional side, the design will send nothing but the tracking number to the AI. I will go through the details separately with the person in charge of security.” — Miura: “I think Yanagi is looking forward to it. (laughs)” — Mei: (her laugh comes out just slightly stiff)
梅:「今天,我们把前几天听到的需求,改写成系统的语言。比如『想减少重新投递』,这是需求。把它变成能衡量做没做到的形式——『能够在聊天中受理重新投递』——这就是要件。」——三浦:「原来如此。」——梅:「那先从重新投递的受理开始。我的理解是,客户输入运单号码,这样对吗?」——三浦:「呃,其实,说不知道号码的电话也很多。」——梅:「谢谢您。那么:『在运单号码不明时,能够以电话号码和地址查询』。这个也加进要件。」——佐佐木(主管):「那个,我可以说吗。现场有一点。AI 回答了什么,希望在接手的接线员画面上能看到。如果让客户把同样的话说两遍,就会在那里挨骂。」——梅:「……那是非常重要的要件。以高优先度放进去。『交接时,会话的历史要能显示』。」——佐佐木:(有点惊讶的表情)「……拜托了。」——梅:「在非功能方面,设计上除了运单号码之外,不把个人信息交给 AI。详细内容,我会另外向负责安全的人说明。」——三浦:「我想柳先生正期待着呢。(笑)」——梅:(笑的样子,稍微有点僵)
梅:「今天,我們把前幾天聽到的需求,改寫成系統的語言。比如『想減少重新配送』,這是需求。把它變成能衡量做沒做到的形式——『能夠在聊天中受理重新配送』——這就是要件。」——三浦:「原來如此。」——梅:「那先從重新配送的受理開始。我的理解是,客戶輸入貨運單號,這樣對嗎?」——三浦:「呃,其實,說不知道號碼的電話也很多。」——梅:「謝謝您。那麼:『在貨運單號不明時,能夠以電話號碼和地址查詢』。這個也加進要件。」——佐佐木(主管):「那個,我可以說嗎。現場有一點。AI 回答了什麼,希望在接手的接線人員畫面上能看到。如果讓客戶把同樣的話說兩遍,就會在那裡挨罵。」——梅:「……那是非常重要的要件。以高優先度放進去。『交接時,對話的歷史要能顯示』。」——佐佐木:(有點驚訝的表情)「……拜託了。」——梅:「在非功能方面,設計上除了貨運單號之外,不把個人資料交給 AI。詳細內容,我會另外向負責資安的人說明。」——三浦:「我想柳先生正期待著呢。(笑)」——梅:(笑的樣子,稍微有點僵)
Mei: “Hôm nay, chúng ta lấy những yêu cầu quý vị đưa ra hôm trước và chuyển thành ngôn ngữ của hệ thống. Ví dụ, ‘muốn giảm giao lại’ là một mong muốn. Biến nó thành thứ đo được là đã làm hay chưa — ‘phải tiếp nhận được yêu cầu giao lại qua chat’ — đó là một yêu cầu kỹ thuật.” — Miura: “Ra vậy.” — Mei: “Vậy bắt đầu từ việc tiếp nhận giao lại. Tôi hiểu là khách hàng nhập mã vận đơn — có đúng không ạ?” — Miura: “À, thật ra, có rất nhiều cuộc gọi mà họ không biết mã.” — Mei: “Cảm ơn ông. Vậy thì: ‘khi không rõ mã vận đơn, phải tra cứu được bằng số điện thoại và địa chỉ.’ Chúng tôi thêm cả điều đó vào yêu cầu.” — Sasaki (quản lý): “À, tôi nói được không. Một điều từ hiện trường. Chúng tôi muốn nhìn thấy AI đã trả lời gì, trên màn hình của nhân viên tiếp nhận lại. Nếu để khách hàng phải nói lại cùng một điều hai lần, chính chỗ đó chúng tôi bị mắng.” — Mei: “…Đó là một yêu cầu rất quan trọng. Tôi sẽ đưa vào với mức ưu tiên cao. ‘Khi bàn giao, lịch sử hội thoại phải được hiển thị.’” — Sasaki: (vẻ hơi ngạc nhiên) “…Nhờ cô.” — Mei: “Về phía phi chức năng, thiết kế sẽ không gửi gì cho AI ngoài mã vận đơn. Chi tiết, tôi sẽ trình bày riêng với người phụ trách an toàn thông tin.” — Miura: “Tôi nghĩ Yanagi đang mong lắm đấy. (cười)” — Mei: (nụ cười của cô hơi cứng một chút)
心の中の日本語
The scene: after the workshop, walking to the station. One word from the floor keeps turning over in her head — and changes what she thinks a requirement is.
場面:ワークショップのあと、駅までの道。現場の人が使った一つの言葉が、頭の中で回り続けて、要件とは何かの見方を変えます。
场景:工作坊结束后,去车站的路上。现场的人用的一个词,在她脑子里一直转,改变了她对「要件」的看法。
場景:工作坊結束後,去車站的路上。第一線的人用的一個詞,在她腦子裡一直轉,改變了她對「要件」的看法。
Bối cảnh: sau buổi làm việc, trên đường ra ga. Một từ mà người ở hiện trường đã dùng cứ lật đi lật lại trong đầu cô — và thay đổi cách cô nghĩ về “yêu cầu”.
(In the margin of her notebook, Sasaki-san’s words written down exactly as he said them: “if we make them say it twice, we get shouted at.”) — …He said “shouted at.” Not “it is inconvenient.” — Behind that one line are 180 people who have actually been shouted at. — And the irritation on the other side too: a customer made to start again from the beginning, after already saying it once on the phone. — A requirement is not a line in a specification. — It is a translation of somebody’s pain. — (…“Yanagi is looking forward to it.” Looking forward. What kind of looking forward is that. — Something around her stomach tightened, just slightly.)
(笔记本的边上,原封不动地记着佐佐木先生的话。「让人说两遍,就会挨骂」)——……他说的是「挨骂」。不是「为难」。——那一句话的背后,有 180 个真的挨过骂的人。——还有在电话另一头已经说过一次,却被迫从头再说一次的客人那一侧的烦躁。——所谓要件,不是规格书上的一行。——是某个人的痛的翻译。——(……「柳先生正期待着」。期待着。那是什么样的期待呢。——胃的那一带,稍微,紧了一下。)
(筆記本的邊上,原封不動地記著佐佐木先生的話。「讓人說兩遍,就會挨罵」)——……他說的是「挨罵」。不是「為難」。——那一句話的背後,有 180 個真的挨過罵的人。——還有在電話另一頭已經說過一次,卻被迫從頭再說一次的客人那一側的煩躁。——所謂要件,不是規格書上的一行。——是某個人的痛的翻譯。——(……「柳先生正期待著」。期待著。那是什麼樣的期待呢。——胃的那一帶,稍微,緊了一下。)
(Ở lề cuốn sổ, lời của Sasaki-san được ghi lại nguyên vẹn: “bắt họ nói hai lần là bị mắng.”) — …Ông ấy nói “bị mắng.” Không phải “phiền toái.” — Đằng sau câu đó là 180 người đã thật sự bị mắng. — Và cả sự bực bội ở phía bên kia: một khách hàng đã nói một lần qua điện thoại, rồi bị bắt kể lại từ đầu. — Yêu cầu không phải là một dòng trong bản đặc tả. — Nó là bản dịch nỗi đau của một ai đó. — (…“Yanagi đang mong lắm.” Đang mong. Là kiểu mong gì vậy. — Vùng quanh dạ dày cô, chỉ một chút, thắt lại.)
開発定例の日本語
The scene: the standup the day after the workshop. Everything they accepted in the room gets checked against what can actually be built — because promising something you cannot build is the worst outcome of all.
場面:ワークショップの翌日の定例。会議で受けた要件を、本当に作れるかどうか当たり直します。約束したまま作れないのが、いちばんまずいからです。
场景:工作坊隔天的例会。把会议上接下的要件,逐条去核对到底做不做得出来。因为答应了却做不出来,是最糟的。
場景:工作坊隔天的例會。把會議上接下的要件,逐條去核對到底做不做得出來。因為答應了卻做不出來,是最糟的。
Bối cảnh: buổi họp ngày sau buổi làm việc. Mọi yêu cầu đã nhận trong phòng họp đều được đối chiếu với cái thực sự làm được — vì hứa rồi không làm được mới là điều tệ nhất.
Mei: “Checking the requirements that came in yesterday. First FR-002, lookup without a tracking number.” — Souta: “If the core lookup API only takes a tracking-number argument, we are stuck.” — Infrastructure: “I read the specification they disclosed. A search endpoint that takes phone number and postcode was added in v2.3. It exists.” — Mei: “Good. Any personal data in the response?” — Infrastructure: “What comes back is a masked number and a one-time token, nothing else. It fits our design well.” — Mei: “Next, FR-003, showing conversation history. The operator screen is an integration into their existing system — is there an entry point?” — Souta: “Their existing call-centre system has a way to push into the queue. How wide the fields are, for carrying the history, we measure at the connection test next week.” — Mei: “Then FR-003 goes back into the list as feasible, with field width pending verification.” — Infrastructure: “There is one risky item. Low priority, FR-015, the estimated wait time. Their existing queue does not expose the number of people waiting.” — Mei: “Settle ‘we may not be able to build this’ before the end of this week. If we cannot, we go back to Miura-san about how the requirement is worded. Promising something and then not building it is the worst thing there is.”
梅:「昨天新增要件的核实。先是 FR-002,没有运单号码的查询。」——颯太:「核心系统的查询 API,如果只有运单号码这个参数,那就完了。」——基础设施:「我看了他们公开的规格书。用电话号码和邮编来查的检索接口,在 v2.3 里加进去了。有的。」——梅:「太好了。回应里有个人信息吗?」——基础设施:「回来的只有遮蔽过的号码和一次性令牌。和我们的设计很合。」——梅:「接下来,FR-003 的会话历史显示。接线员的画面是嵌进既有系统,有接口吗?」——颯太:「既有的呼叫中心系统里,有往队列投入的接口。能带多少历史项目,下周的连接验证时来测。」——梅:「那 FR-003 就写回要件清单:可实现,但项目宽度待验证。」——基础设施:「有一件危险的。优先度低的 FR-015,等待时间的估计。既有队列没有把等待人数放出来。」——梅:「『可能做不出来』这件事,这周内定下来。不行的话,就和三浦先生商量要件的写法。答应了却做不出来,是最糟的。」
梅:「昨天新增要件的核實。先是 FR-002,沒有貨運單號的查詢。」——颯太:「核心系統的查詢 API,如果只有貨運單號這個參數,那就完了。」——基礎架構:「我看了他們公開的規格書。用電話號碼和郵遞區號來查的檢索介面,在 v2.3 裡加進去了。有的。」——梅:「太好了。回應裡有個人資料嗎?」——基礎架構:「回來的只有遮蔽過的號碼和一次性權杖。和我們的設計很合。」——梅:「接下來,FR-003 的對話歷史顯示。接線人員的畫面是嵌進既有系統,有介面嗎?」——颯太:「既有的客服中心系統裡,有往佇列投入的介面。能帶多少歷史欄位,下週的連線驗證時來量。」——梅:「那 FR-003 就寫回要件清單:可實現,但欄位寬度待驗證。」——基礎架構:「有一件危險的。優先度低的 FR-015,等待時間的估計。既有佇列沒有把等待人數放出來。」——梅:「『可能做不出來』這件事,這週內定下來。不行的話,就和三浦先生商量要件的寫法。答應了卻做不出來,是最糟的。」
Mei: “Kiểm chứng các yêu cầu phát sinh hôm qua. Trước hết là FR-002, tra cứu không có mã vận đơn.” — Souta: “Nếu API tra cứu của hệ thống lõi chỉ nhận tham số mã vận đơn thì mình chịu.” — Kỹ sư hạ tầng: “Em đã đọc bản đặc tả họ công bố. Điểm tìm kiếm nhận số điện thoại và mã bưu chính đã được thêm ở v2.3. Có ạ.” — Mei: “May quá. Trong phản hồi có dữ liệu cá nhân không?” — Kỹ sư hạ tầng: “Trả về chỉ có số đã che và một token dùng một lần. Rất hợp với thiết kế của mình.” — Mei: “Tiếp theo, FR-003, hiển thị lịch sử hội thoại. Màn hình nhân viên tổng đài là tích hợp vào hệ thống sẵn có của họ — có đầu vào không?” — Souta: “Hệ thống tổng đài sẵn có của họ có chỗ để đẩy vào hàng đợi. Độ rộng của các trường để mang lịch sử thì tuần sau khi kiểm thử kết nối sẽ đo.” — Mei: “Vậy FR-003 ghi lại vào danh sách yêu cầu: khả thi, nhưng độ rộng trường còn chờ kiểm chứng.” — Kỹ sư hạ tầng: “Có một mục nguy hiểm. Ưu tiên thấp, FR-015, ước lượng thời gian chờ. Hàng đợi sẵn có của họ không đưa ra số người đang chờ.” — Mei: “Chốt trong tuần này chuyện ‘có thể không làm được’. Nếu không được thì bàn lại với Miura-san về cách viết yêu cầu. Hứa rồi không làm được là điều tệ nhất.”
定例の即答ドリル(6問)
Standup speed: the pause equals the answer, with no extra room. Numbers and nouns, fast. Off the page, this is the register engineers actually live in.
定例の速さ:間は答えと同じ長さで、余白はありません。数字と名詞で速く。ページの外では、エンジニアが実際に生きている文体です。
例会的速度:停顿和答案一样长,没有多余的空间。用数字和名词,快。在页面之外,这才是工程师每天真正生活的语体。
例會的速度:停頓和答案一樣長,沒有多餘的空間。用數字和名詞,快。在頁面之外,這才是工程師每天真正生活的語體。
Tốc độ của buổi họp: khoảng lặng chỉ dài đúng bằng câu trả lời, không có chỗ dư. Con số và danh từ, thật nhanh. Ngoài trang giấy, đây mới là văn thể mà các kỹ sư thực sự sống trong đó.
01 〔実現性を仕様書で当たる〕Q:FR-002、作れます?A:作れます。開示された照会APIの仕様書に、電話番号と郵便番号で引く検索の口があります。
02 〔根拠の場所を言う〕Q:それ、確かですか。A:仕様書のv2.3で確認しました。応答は伏せた番号と一時トークンだけで、個人情報の設計とも合います。
03 〔条件つきの実現性〕Q:FR-003 は?A:実現性ありです。ただし、履歴を運べる項目の幅は、来週の接続検証で測ります。
04 〔危ない要件を先に言う〕Q:全部いけそう?A:一件危ないです。FR-015 の待ち時間の目安。既存キューが待ち人数を出していません。今週中に確定します。
05 〔説明を言わせる〕Q:なぜ、会議の直後に裏取りするんですか。A:約束したまま作れないのが一番まずいからです。だめなら早く、要件の書き方から相談し直せます。
06 〔書き戻しの作法〕Q:結果はどうします?A:要件一覧に書き戻します。実現性あり、条件つき、要相談、の三色で分けます。
この定例の語
Words that stay unrephrased in this meeting. The plain phrasing sits in parentheses.
この定例では言い換えない語。かっこの中は、同じことの平たい言い方です。
在这个例会上不换说法的词。括号里是同一个意思的平实说法。
在這個例會上不換說法的詞。括號裡是同一個意思的平實說法。
Những từ không được diễn đạt lại trong buổi họp này. Trong ngoặc là cách nói giản dị của cùng một ý.
この回のことば
Meanings are written for how each word is used in this scene.
意味は、この場面での使われ方で書いてあります。
词义按照这个场景中的用法来写。
詞義按照這個場景中的用法來寫。
Nghĩa của từ được viết theo cách dùng trong chính cảnh này.
即答ドリル(8問)
The manager asks; you answer as Mei, out loud. In the audio, every question is followed by a pause — the length of the answer plus a little more. Say yours into the pause; the model answer follows.
部長が聞き、あなたがメイとして声に出して答えます。音声では、質問のあとに答えの長さより少し長い間があります。その間に自分の答えを言うと、見本の答えが続きます。
部长提问,你作为梅出声回答。音频里每个问题后面都留了一段停顿,比答案稍长一点。在停顿里说出你的答案,示范答案随后就来。
部長提問,你作為梅出聲回答。音檔裡每個問題後面都留了一段停頓,比答案稍長一點。在停頓裡說出你的答案,示範答案隨後就來。
Trưởng phòng hỏi; bạn trả lời thành tiếng trong vai Mei. Trong file âm thanh, sau mỗi câu hỏi có một khoảng lặng — dài hơn câu trả lời một chút. Hãy nói câu trả lời của bạn vào khoảng lặng đó; câu trả lời mẫu sẽ theo sau.
01 〔会の目的を言う〕Q:今日は、何を決める会ですか。A:先日のご要望を、システムの言葉、要件に直していく会です。
02 〔確認の型・この回でいちばん大事な一問〕状況:自分の理解が正しいか、確かめてください。Q例:お客様は伝票番号を入力する、という理解で合っていますか。
03 〔ずれが見つかったら・感謝して直す〕Q:実は、番号が分からないという電話も多いんですよ。A:ありがとうございます。では、電話番号と住所で照会できること、を要件に加えます。
04 〔説明を言わせる〕Q:なぜ要件は「測れる形」にするんですか。A:あとで、できたかどうかを誰でも確認できるようにするためです。
05 〔現場の声を受ける〕Q:AI の回答を、引き継いだ画面で見えるようにしてほしいんです。A:とても大事な要件です。優先度高で入れます。
06 〔規模を聞かれる・確度つき〕Q:全部で、いくつくらいの要件になりますか。A:機能要件が80前後、非機能が40弱の見込みです。来週、一覧でお持ちします。
07 〔非機能を説明する〕状況:個人情報の扱いの方針を、一言で伝えてください。Q例:個人情報は、伝票番号以外を AI に渡さない設計にします。
08 〔説明を言わせる〕Q:なぜ現場の方の要件を、優先度高にしましたか。A:毎日お使いになる方の困りごとは、システムの成否を決めるからです。
この回の言い方
Five lines worth keeping. The shelf grows by one episode at a time.
持ち帰る価値のある5行。棚は一話ずつ増えていきます。
值得记下的五句话。这个架子每集增加一层。
值得記下的五句話。這個架子每集增加一層。
Năm câu đáng ghi nhớ. Chiếc kệ này mỗi tập cao thêm một tầng.
問いかけ
あなたの現場の「これだけは直してほしい」は何ですか。それを、要件の形(〜できること)で言えますか。
One question per episode. By the end, your answers add up to an interview deck of your own.
一話に一問。最終話まで貯めると、あなた自身の面接デッキになります。
每集一个问题。攒到最后一集,就是一副属于你自己的面试卡组。
每集一個問題。攢到最後一集,就是一副屬於你自己的面試卡組。
Mỗi tập một câu hỏi. Đến tập cuối, các câu trả lời của bạn sẽ thành một bộ thẻ phỏng vấn của riêng bạn.
この回を、レッスンで深めるなら
On this page you read the scene and answer into the pause. The worksheet is where the episode becomes yours. For this episode, it looks like this:
このページでは、場面を読み、間に向かって答えます。この回が自分のものになるのは、ワークシートの上です。この回では、こう進みます:
在这个页面上,你读场景、在停顿里作答。而让这一集真正变成你自己的,是练习册。这一集的练习是这样的:
在這個頁面上,你讀場景、在停頓裡作答。而讓這一集真正變成你自己的,是練習冊。這一集的練習是這樣的:
Trên trang này, bạn đọc cảnh và trả lời vào khoảng lặng. Còn nơi tập phim này thực sự trở thành của bạn là cuốn bài tập. Với tập này, nó như sau:
The worksheet carries all of this with model answers, and the drill audio has a human voice. It works alone at your desk, and it works with a teacher.
ワークシートには、この全部が見本の答えつきで入っていて、ドリル音声は人の声です。机で一人でも、先生とでも使えます。
练习册包含以上全部内容,并附示范答案,跟读音频是真人声音。一个人在书桌前能用,跟老师一起也能用。
練習冊包含以上全部內容,並附示範答案,跟讀音檔是真人聲音。一個人在書桌前能用,跟老師一起也能用。
Cuốn bài tập chứa tất cả những điều trên kèm câu trả lời mẫu, và phần âm thanh luyện tập là giọng người thật. Dùng một mình ở bàn học cũng được, học cùng giáo viên cũng được.
一回だけ、本物の場面で
誰かの要望を一つ、「〜できること」の形に言い直して返してみてください。「つまり、◯◯できるようにしたい、ということですね」。相手の顔が明るくなったら成功です。
This course is built to leave the page. One real use beats ten rehearsals.
この講座は、ページの外で使われるために作られています。本物の一回は、練習の十回に勝ちます。
这门课就是为了走出页面而设计的。真实场景里用一次,胜过排练十次。
這門課就是為了走出頁面而設計的。真實場景裡用一次,勝過排練十次。
Khóa học này được tạo ra để rời khỏi trang giấy. Một lần dùng thật hơn mười lần tập dượt.
← Episode 7 · About the course · Episode 9 →
The written side of this episode — the point sheet, the longer answers, the model answers, a human voice on the drill, and the project’s documents — lives in the workbook. About the course →