วันจันทร์นี้ Maxine เดินเข้าตึกด้วยความรู้สึกกระปรี้กระเปร่าเป็นพิเศษ ไม่ใช่เพราะการประชุมที่ Dockside หรอกนะ แต่เพราะวันนี้คือ "วันแห่งการทดสอบ" (Testing Day)! ในที่สุดโค้ดของเธอก็จะได้ถูกทดสอบและนำขึ้น production เสียที
เธอถือกล่องโดนัท Vandal Doughnuts ห้ากล่องที่แวะซื้อระหว่างทางมาด้วย เธอถึงขั้นซื้อ "cronuts" ซึ่งเป็นลูกผสมระหว่างครัวซองต์กับโดนัทที่เป็นของโปรดของเธอมาด้วย
เธอรู้สึกดีมากจนสงสัยว่ากลิ่นหอมของโดนัทสดใหม่หกสิบชิ้นนี้กำลังทำให้ระดับน้ำตาลในเลือดของเธอพุ่งสูงขึ้นหรือเปล่า นี่เป็นวิธีที่ยอดเยี่ยมในการทำความรู้จักกับคนที่จะมาทดสอบโค้ดของเธอ เธอคิด การผูกมิตรกับเพื่อนใหม่นั้นง่ายกว่าเสมอเมื่อมีของอร่อยติดไม้ติดมือมาด้วย
ไม่ว่าจะเดินไปทางไหน ผู้คนต่างพากันถามเธอว่า “นั่นของผมหรือเปล่าครับ?”
เธอตอบกลับอย่างร่าเริงว่า “เปล่าค่ะ สำหรับวัน Testing Day ค่ะ!”
เธอวางโดนัททั้งหมดลงบนโต๊ะใกล้โต๊ะทำงานแล้วพาดกระเป๋าไว้ที่เก้าอี้ Tom นั่งอยู่ที่นั่นแล้ว กำลังเปิด editor และพิมพ์งานอย่างขะมักเขม้น
“ไชโย วันนี้วัน Testing Day!” Maxine ประกาศอย่างมีความสุข “ในที่สุดก็มาถึงเสียที”
“คุณนี่แปลกคนจริงๆ” Tom พูดโดยไม่แม้แต่จะเงยหน้าจากจอมอนิเตอร์ เขาสูดกลิ่นในอากาศ “ว้าว นั่นโดนัท Vandal เหรอครับ?”
“ใช่ค่ะ มาฉลอง Testing Day กัน!” เธอตอบพร้อมรอยยิ้มกว้าง “ฉันว่ามันน่าตื่นเต้นสุดๆ เลยนะที่จะได้เห็นว่าสิ่งที่เราแก้ไปมันใช้งานได้จริงหรือเปล่า” Maxine กล่าว “แล้วพวกเขาจะเริ่มกันเมื่อไหร่คะ? เราไปดูได้ไหม?”
Tom หันมามองเธอพลางดูนาฬิกา “ผมเดาว่าพวกเขาน่าจะเริ่มวันนี้แหละครับ แต่ไม่ได้มีแค่โค้ดของเรานะ พวกเขากำลังทดสอบการเปลี่ยนแปลงของชิ้นส่วนใหญ่ๆ ทั้งหมดของ Phoenix—ของเราเป็นแค่เศษเสี้ยวของงานที่พวกเขาต้องทำเอง วันนี้พวกเขาอาจจะยังไม่เริ่มดูของเราด้วยซ้ำ”
“อะไรนะคะ!?” Maxine ขัดจังหวะด้วยความตกใจ เธอรอคอยเรื่องนี้มาทั้งวันหยุดสุดสัปดาห์เลยนะ! “เราดูคิวได้ไหมคะว่าเราอยู่อันดับที่เท่าไหร่? เราช่วยอะไรได้บ้างไหม? แล้วพวก QA นั่งกันอยู่ที่ไหนคะ? ฉันซื้อโดนัทมาฝากพวกเขาเพียบเลย!”
Tom ดูประหลาดใจ “เอิ่ม ผมเคยเจอพวกเขาบ้าง บางคนอยู่เอาท์ซอร์สต่างประเทศ บางคนอยู่ที่นี่ แต่ผมไม่ได้คุยกับพวกเขาโดยตรงมานานมากแล้ว ปกติเราจะเจอผู้จัดการ QA ตอนปลายสัปดาห์หน้า ตอนที่พวกเขานำเสนอผลการทดสอบน่ะครับ”
“สัปดาห์หน้า? สัปดาห์หน้าเนี่ยนะ?!” Maxine อ้าปากค้าง “แล้วช่วงที่รอนี่เราต้องทำอะไรกันคะ? เฮ้ เราติดตามงานตอนที่เขาทำอยู่ได้ไหม? เราจะได้รับการแจ้งเตือนใน Ticket ฟีเจอร์ของเราใช่ไหมคะ?”
“เอ่อ ไม่เชิงครับ” Tom กล่าวพร้อมขมวดคิ้ว “ทีม QA ใช้ระบบ Ticket อีกตัวหนึ่ง มันเอาไว้จัดการตารางงาน รายงานผล และจัดการเคสทดสอบ (test cases) ทั้งหมดของพวกเขา พวกเราเข้าถึงไม่ได้หรอกครับ—อย่างน้อยก็พนักงานระดับเราน่ะนะ หลังจากผ่านไปสองสัปดาห์ เขาจะส่งสเปรดชีตที่มีรายการ defect ทั้งหมดที่เขาเจอมาให้เรา โดยระบุหมายเลข Ticket ฟีเจอร์กำกับไว้ เราก็จะมาไล่ดู ก๊อปปี้ข้อมูลพวกนั้นลงในระบบ Ticket ของเรา แล้วก็แก้ไขสิ่งที่ต้องแก้ครับ”
“...แล้วยังไงต่อคะ?” Maxine ถามพลางเตรียมใจรับฟังสิ่งที่แย่ที่สุด
“QA ก็จะรวบรวมสิ่งที่ทุกคนแก้แล้วกลับไปทดสอบใหม่อีกรอบครับ” Tom ตอบ
“งั้นสมมติว่าโค้ดที่เราแก้ไปทำงานได้สมบูรณ์แบบ 100% เลย—เร็วที่สุดที่ลูกค้าจะได้ใช้งานสิ่งที่เราเขียนคือเมื่อไหร่คะ?” เธอถาม
Tom เริ่มนับนิ้ว “อีกสองสัปดาห์สำหรับรอบการทดสอบถัดไป จากนั้นพวกเขาก็จะเปิด Ticket หาฝ่าย Operations เพื่อขอให้ deploy การเปลี่ยนแปลงขึ้น production บางครั้งมันก็ต้องใช้เวลาสักพักกว่าพวกเขาจะแทรกงานเราลงในตารางได้... นั่นอาจจะกินเวลาอีกสามสัปดาห์” เขามองที่นิ้วตัวเอง “รวมแล้วก็น่าจะอีกเจ็ดสัปดาห์นับจากตอนนี้ครับ”
Maxine ทรุดตัวลงไปข้างหน้า ครางออกมาพลางเอามือกุมหน้า หน้าผากแนบไปกับโต๊ะ
“ฉันนี่มันไร้เดียงสาจริงๆ” เธอคิดในใจ โดยที่หน้ายังฟุบอยู่กับโต๊ะ เธอถามต่อว่า “แล้วตลอดเวลาที่รอนั่น เราต้องนั่งแก้ defect เพิ่มไปเรื่อยๆ อย่างนั้นเหรอคะ?”
“ใช่ครับ” เธอได้ยินเสียง Tom ตอบ “คุณโอเคไหม Maxine?”
“อืม ฉันโอเคค่ะ” เธอกล่าว พยายามไม่ให้ตัวเองรู้สึกหดหู่ นี่มันคือสิ่งที่ตรงข้ามกับอุดมคติข้อที่สองโดยสิ้นเชิง เธอคิด พวกเราเป็นแค่โรงงานผลิตฟีเจอร์งี่เง่า ที่คอยปั๊มชิ้นส่วนที่ลูกค้าอาจจะสนใจหรือไม่ก็ได้ออกมา การทำงานมันไม่สนุกและไม่มีความสุขอย่างที่มันควรจะเป็นเลย ไม่มีกระแสการไหลของฟีเจอร์ (flow of features) ไม่มีผลตอบรับ (feedback) และที่แน่นอนคือไม่มีการเรียนรู้ใดๆ เลย เธอคิดในใจ
เธอได้ยิน Tom ถามว่า “เอิ่ม... ผมขอกินโดนัทสักชิ้นได้ไหมครับ?”
“ไม่ได้ค่ะ” Maxine ตอบ ทันใดนั้นเธอก็มีความคิดบางอย่าง เธอเงยหน้าขึ้นมอง Tom แล้วยิ้ม “แต่คุณช่วยฉันเอาโดนัทพวกนี้ไปส่งให้พวก QA หน่อยได้ไหมคะ?”
การหาตัวพวกคน QA นั้นยากกว่าที่เธอคิดไว้มาก Tom ไม่ได้อยู่ในห้องเดียวกับพวกเขามาเป็นปีแล้ว ปฏิสัมพันธ์หลักของเขากับพวก QA คือการผ่านพิธีกรรมที่เป็นทางการ—เขาส่งมอบโค้ดแล้วก็นั่งรอรายการสิ่งที่ต้องแก้ไขในสเปรดชีต ทำซ้ำไปซ้ำมาจนกว่าทีมจะได้รับจดหมายยืนยันอย่างเป็นทางการว่า release นี้พร้อมสำหรับ production แล้ว
แน่นอนว่ามันไม่เคยง่ายขนาดนั้น มักจะมีการแจ้งเรื่องด่วน (escalations) ไปตามลำดับชั้นการบริหารของ Dev และ QA เสมอ เพราะความเห็นที่ไม่ตรงกันและสารพัดปัญหา defect นี้เป็นระดับ Priority 1 หรือ Priority 2 กันแน่? เมื่อนักพัฒนาจำลองปัญหา (reproduce) ไม่ได้ พวกเขาก็จะปิด defect นั้นทิ้งไป เพียงเพื่อให้ทีม QA มาเปิดมันใหม่อีกครั้งในภายหลัง หรือถ้า QA ไม่สามารถยืนยันวิธีแก้ปัญหาได้ เรื่องก็จะถูกตีกลับมาที่ Dev อีก
Maxine และ Tom แวะที่โต๊ะของ Kurt เพื่อบอกเล่าภารกิจของพวกเขา “โดนัทเยอะจัง เป็นวิธีผูกมิตรที่ยอดเยี่ยมมากครับ” Kurt กล่าว “คุณไปด้วยเหรอครับ?” เขาถาม Tom
“แน่นอนครับ” เขาตอบ “ผมสงสัยมาตลอดว่างานของเรามันหายไปไหนหลังจากที่ทำเสร็จแล้ว มันให้ความรู้สึกเหมือนการกดชักโครกเลยครับ—คุณเอาโค้ดใส่ลงไปในโถ กดคันโยก แล้วมันก็หายไปจากสายตา...”
Kurt พ่นลมหายใจออกมา “เมื่อพิจารณาจากคุณภาพโค้ดที่เราเห็นใน Phoenix คำอุปมาของคุณนี่ดูเหมาะสมทีเดียวครับ Roy คือผู้จัดการ QA ที่ได้รับมอบหมายให้ดูแล Data Hub และเขาจะติดธุระไปอีกอย่างน้อยเก้าสิบนาที” เขากล่าวพลางหยิบโทรศัพท์ขึ้นมาพิมพ์ข้อความหาใครบางคน “ไปที่อาคาร 7 เพื่อส่งโดนัทพวกนั้นตอนที่เขากำลังยุ่งอยู่เถอะครับ เดี๋ยวผมจะประสานงานกับ Charlotte ให้ เธอเป็น (หรือเคยเป็น) ผู้ช่วยของ William เธอเหมือนเป็นแม่ไก่ที่คอยดูแลพวกคน QA ทั้งหมดนั่นแหละ”
Kurt พิมพ์เสร็จแล้ว “เธอกำลังรอพวกคุณอยู่ครับ ผมว่าสามกล่องน่าจะพอกับทีม Data Hub นะ ลองถาม Charlotte ดูว่าอีกสองกล่องที่เหลือจะเอาไป ‘deploy’ ที่ไหนถึงจะสร้างผลกระทบเชิงกลยุทธ์ได้มากที่สุด” เขากล่าวเสริมพร้อมรอยยิ้ม
“เธอจะจองห้องประชุมให้พวกคุณและพาทีม Data Hub QA มาหาครับ” Kurt กล่าว “คุณจะมีโอกาสได้เจอพวกเขาทั้งหมด และบางทีคุณอาจจะเจอใครบางคนที่กำลังมองหาความช่วยเหลืออยู่ก็ได้”
Maxine ยิ้ม นี่แหละคือแรงสนับสนุนที่เธอกำลังมองหาอยู่ “ขอบคุณค่ะ Kurt พวกเราจะไปผูกมิตรกับพวกเขาเอง ความจริงแล้ว เราน่าจะสั่งพิซซ่ามาส่งเป็นมื้อเที่ยงด้วยเลยดีไหมคะ จะได้มีข้ออ้างอยู่คุยกันให้นานขึ้นอีกหน่อย?”
“เจ๋งเลยครับ” Kurt ตอบ “บอก Charlotte ให้ลงบัญชีแผนก QA เก่าของผมได้เลย ในเมื่อ William ไม่อยู่แล้ว ผมมั่นใจว่าคงต้องใช้เวลาสักพักกว่าพวกเขาจะปิดงบส่วนนั้นไป พวกเรามาใช้ประโยชน์จากมันกันเถอะ” เขากล่าวเสริมพร้อมรอยยิ้มกว้าง “แต่ก่อนจะไป... ผมขอกินโดนัทสักชิ้นได้ไหม?” เขาถาม
“ไม่ได้ค่ะ เสียใจด้วยนะ ของพวกนี้สำหรับเพื่อนใหม่ฝ่าย QA ของเราค่ะ” Maxine กล่าว
Maxine และ Tom เดินข้ามลานกว้างไปยังอาคาร 7 พร้อมกับกล่องโดนัท พวกเขาทักทายเจ้าหน้าที่รักษาความปลอดภัย เมื่อ Maxine แตะบัตรพนักงานลงบนเครื่องอ่านบัตรอิเล็กทรอนิกส์ข้างประตูที่ปิดสนิท ไฟยังคงเป็นสีแดง
Maxine รูดบัตรอีกครั้ง แต่ไฟก็ยังเป็นสีแดงเหมือนเดิมเธอถอนหายใจ เธอไม่ได้คาดคิดเลยว่าจะเข้าตึกไม่ได้
“น่าสนใจนะที่นักพัฒนาเข้าตึก QA ไม่ได้” Tom กล่าว “นั่นหมายความว่าพวก QA ก็ไม่ได้รับอนุญาตให้เข้าตึก Dev ด้วยหรือเปล่าครับ?”
Maxine กำลังจะโทรหา Kurt ตอนที่เธอได้ยินเสียงประตูเปิดออก หญิงสาวผู้ร่าเริงและดูคล่องแคล่วเปี่ยมไปด้วยพลังเดินออกมาทักทายพวกเขา Maxine รู้สึกชอบเธอทันทีตั้งแต่แรกเห็น
“คุณต้องเป็น Maxine ใช่ไหมคะ? และนี่คุณ Tom? Kurt เล่าเรื่องพวกคุณให้ฉันฟังเยอะเลยค่ะ! เข้ามาข้างในก่อนสิคะ... ฉันค่อนข้างมั่นใจว่าบัตรของคุณจะใช้กับตึกนี้ไม่ได้ อีกไม่นานบัตรของ Kurt ก็คงจะใช้ไม่ได้เหมือนกัน พวกเราทุกคนดีใจกับเขามากค่ะ—เอิ่ม หมายถึงพวกเราส่วนใหญ่น่ะนะ หลายคนรู้อยู่แล้วว่าเขาถูกกำหนดมาเพื่อสิ่งที่ยิ่งใหญ่และดีกว่าการบริหารทีม QA”
คำพูดของ Charlotte ที่ว่า “ถูกกำหนดมาเพื่อสิ่งที่ยิ่งใหญ่และดีกว่า” ทำให้ฝ่าย QA ฟังดูเหมือนเป็นพลเมืองชั้นสอง เหมือนกับว่า Kurt เพิ่งหนีออกมาจากสลัม (ghetto) อย่างนั้นแหละ Maxine คิดในใจ
“ช่างเป็นไอเดียที่วิเศษมากค่ะที่จะจัดปาร์ตี้ให้พวก QA! ฉันไม่แน่ใจว่าเคยมีใครทำแบบนี้มาก่อนหรือเปล่า ทุกคนต้องชอบแน่ๆ ค่ะ ฉันจองห้องประชุมใหญ่ที่สุดไว้ให้ทั้งวันเลย—ใครว่างจากการประชุมตอนไหนก็แวะมาได้ตลอด และฉันก็สั่งพิซซ่าให้ทุกคนที่ห้องอาหารด้วยค่ะ” Maxine ทึ่งที่ Charlotte จัดการทุกรายละเอียดได้อย่างรวดเร็วขนาดนี้ ในห้องประชุม Maxine เห็นว่า Charlotte เขียนบนไวท์บอร์ดไว้แล้วว่า “พวกเราซาบซึ้งในตัว QA!!!” พร้อมรูปหัวใจล้อมรอบตัวอักษรขนาดใหญ่
หลังจากมองดูอยู่ครู่หนึ่ง Maxine ถามว่าเธอขอแก้ไขอะไรบางอย่างได้ไหม
“ได้แน่นอนค่ะ” Charlotte ตอบอย่างกระตือรือร้น
Maxine แก้ไขข้อความใหม่เป็น: “พวกเราซาบซึ้งในตัวสมาชิกทีม QA ของเราทุกคน!!!”
จากนั้นเธอก็เพิ่มชื่อของ Tom, ตัวเธอเอง, Kurt และสมาชิกอีกห้าคนของทีมพัฒนา Data Hub ไว้ที่ด้านล่าง
“ไอเดียดีครับ” Maxine ได้ยินเสียง Tom พูดจากข้างหลัง “ผมว่าเราควรชวนนักพัฒนา Data Hub ทุกคนมาทานมื้อเที่ยงด้วยกันเลยดีไหมครับ? จะให้ผมส่งอีเมลบอกพวกเขาไหม?”
Maxine รีบเห็นด้วยทันที พร้อมเสริมว่า “เราคงต้องสั่งพิซซ่าเพิ่มแล้วล่ะค่ะ...”
“ไม่มีปัญหาค่ะ เดี๋ยวฉันจัดการเอง” Charlotte กล่าวพร้อมรอยยิ้มกว้าง
ในอีกไม่กี่นาทีต่อมา สมาชิกทีม QA เริ่มทยอยเข้ามาในห้องประชุม Maxine แนะนำตัวกับทุกคน เธอสังเกตว่ากลุ่มคน QA มีลักษณะประชากรแตกต่างจากกลุ่มนักพัฒนาเล็กน้อย คือไม่มีใครอยู่ในวัยยี่สิบต้นๆ เลย Maxine สงสัยว่าอาจเป็นเพราะนักศึกษาจบใหม่แห่กันไปสมัครงานตำแหน่งนักพัฒนากันหมดหรือเปล่า?
“เอ้อ การฉลองนี้เนื่องในโอกาสอะไรเหรอคะ?” หญิงสาวที่มีสำเนียงแบบอินเดียถามขึ้น
“วันนี้วัน Testing Day ค่ะ!” Maxine ยิ้ม เธอดีใจที่ถูกถาม “ฉันตื่นเต้นมากค่ะที่ฟีเจอร์ที่เราตั้งใจทำมาหลายสัปดาห์จะได้ฤกษ์ทดสอบเสียที ฉันเลยคิดว่ามันน่าจะสนุกถ้าได้จัดปาร์ตี้เล็กๆ เพื่อที่เราจะได้เจอคนที่ทำงานสำคัญนี้ และเพื่อให้พวกคุณรู้ว่าเรายินดีจะช่วยในทุกทางที่ทำได้ค่ะ”
“ตายจริง นั่นเป็นเรื่องที่น่ายินดีมากเลยค่ะ” หญิงคนนั้นกล่าวพลางยิ้มตอบ “ฉันไม่แน่ใจว่าเรื่องแบบนี้เคยเกิดขึ้นมาก่อนหรือเปล่านะคะ”
Charlotte ตะโกนมาจากอีกฟากของห้อง “ฉันอยู่ที่นี่มาเจ็ดปีแล้ว และไม่เคยเห็นอะไรแบบนี้เกิดขึ้นเลยค่ะ เป็นไอเดียที่น่ารักมากเลยนะคะ Maxine เดี๋ยวฉันแนะนำให้ทุกคนรู้จักกันนะคะ นี่ Purna เป็นหนึ่งในหัวหน้าทีม QA และนี่คือสมาชิกในทีมของเธอค่ะ...”
จากนั้นความเงียบก็ปกคลุมห้อง Maxine สงสัยว่าทุกคนกำลังรอให้เธอพูดอะไรบางอย่างหรือเปล่า ในฐานะเจ้าภาพปาร์ตี้ บางทีเธอก็ควรจะพูด
“เอิ่ม... ค่ะ ก็ต้องขอขอบคุณทุกคนอีกครั้งนะคะ เดี๋ยวเราจะมีพิซซ่ามาส่งเป็นมื้อเที่ยง และเหล่านักพัฒนาจาก Data Hub จะมาร่วมแจมกับเราตอนนั้นด้วยค่ะ” Maxine กล่าว “ช่วงนี้พวกคุณกำลังทำอะไรกันอยู่บ้างคะ?” นั่นเป็นประโยคเปิดการสนทนา (ice breaker) ที่ดีเสมอ
พวกเขาเล่าถึงโปรเจกต์ที่กำลังทำอยู่ ซึ่งช่วยให้เห็นภาพรวมของงานที่ทำร่วมกัน จากนั้นเธอจึงถามว่าสิ่งที่พวกเขารู้สึกหงุดหงิดที่สุดในกระบวนการทดสอบคืออะไร
เขื่อนแตกทันที จุดที่พวกเขาเจ็บปวด (pain points) และเรื่องราวที่เล่าออกมาฟังดูคุ้นหูเธอมาก: การรอคอย environment, environment ที่ทำความสะอาดไม่เรียบร้อยจากงานก่อนหน้า, ปัญหาที่ส่งผลกระทบต่อเนื่องเป็นทอดๆ เมื่อมีอะไรผิดพลาด, และการไม่สามารถระบุได้ว่าปัญหาเกิดจากบั๊กในโค้ดหรือเกิดจากความผิดปกติของ environment กันแน่
ทันใดนั้น เธอและ Tom ก็พบว่ามีเรื่องให้คุยกับพวกเขาเยอะมาก เพราะยังไงซะ ทุกคนก็ชอบบ่นเรื่องงานเหมือนกัน Maxine เริ่มจดบันทึก และปาร์ตี้ก็ดำเนินไปอย่างเต็มรูปแบบ
หลังจากผ่านไปเก้าสิบนาที เป็นที่แน่ชัดสำหรับ Maxine ว่าปัญหาไม่ได้อยู่ที่ทีม Dev ปะทะทีม QA แต่เป็นเรื่องที่ความต้องการทางธุรกิจของ Phoenix เปลี่ยนแปลงบ่อยเกินไป ซึ่งเกือบทุกครั้งต้องการการแก้ไขโค้ดอย่างเร่งด่วน สิ่งนี้ทำให้เวลาที่เหลือสำหรับการทดสอบลดน้อยลง ส่งผลให้คุณภาพแย่ลง ดังที่เห็นได้จากหายนะของ Phoenix ครั้งล่าสุด
ทุกคนเข้าใจว่าการเปลี่ยนแปลงเป็นเรื่องปกติของชีวิต แต่โปรเจกต์ Phoenix ดูเหมือนจะไม่เหมาะกับจังหวะการเปลี่ยนแปลงที่รวดเร็วขนาดนี้ และทุกคน ทุกคนจริงๆ ต่างก็แสดงความกังวลอย่างมากเกี่ยวกับคุณภาพที่ลดลงของโปรเจกต์ Phoenix และผลกระทบที่อาจเกิดขึ้นกับ Parts Unlimited มีคนพูดว่า “ในงาน Town Hall Steve พูดถึงสิ่งที่เขาต้องการจากเรา แต่พวกเราส่งมอบสิ่งที่เขาต้องการไม่ได้—และเมื่อเราเจอสิ่งผิดปกติ เราก็มีเวลาไม่พอที่จะแก้ไขมัน”
มีความตื่นเต้นอย่างมากเกี่ยวกับการแช่แข็งฟีเจอร์ (feature freeze) แม้จะยังมีความคลุมเครือว่าอะไรกันแน่ที่จะถูกแช่แข็ง ผู้คนรู้สึกตื่นเต้นเพราะนี่เป็นสัญญาณของการเปลี่ยนแปลงค่านิยมจากระดับบน ซึ่งเป็นเรื่องดีแน่นอน อย่างไรก็ตาม ผู้จัดการหลายคนยังคงปักใจเชื่อว่าพวกเขาจะได้รับการยกเว้นจากการแช่แข็งครั้งนี้
ในที่สุด ปาร์ตี้ก็ย้ายไปที่ห้องอาหารที่มีพิซซ่าถาดใหญ่สิบห้าถาดหลากชนิดวางเรียงรายอยู่ กลิ่นของมันทำให้ Maxine รู้สึกหิว—เธอเริ่มรู้สึกสั่นนิดๆ จากการกินโดนัทพวกนั้นเข้าไปเยอะเกินไป หัวใจเธอเต้นเร็วและเริ่มมีเหงื่อซึม ในฐานะคนที่น้ำตาลในเลือดต่ำ (hypoglycemic) เธอจำเป็นต้องกินโปรตีนเข้าไปด่วน ไม่อย่างนั้นเธอจะปวดหัวและน้ำตาลในเลือดจะตกลงอย่างรุนแรง
ถึงตอนนี้ มีคน QA จำนวนมากมาร่วมงานแล้ว Maxine ไม่รู้จริงๆ ว่าใครดูแล Data Hub และใครไม่ได้ดูแล แต่เธอไม่สนหรอก เป้าหมายของวันนี้คือการผูกมิตร การมีคนคอยคัดคนเข้างาน (bouncer) อยู่ที่ประตูคงจะทำลายบรรยากาศนั้นไปหมด
Maxine กินพิซซ่าหน้าเปปเปอโรนีชิ้นที่สองเสร็จแล้วทิ้งจานกระดาษลงในถังขยะรีไซเคิล หลังจากล้างมืออย่างสะอาดแล้ว เธอจึงตาม Purna ไปที่โต๊ะทำงาน Purna ยินดีที่จะแสดงให้ Maxine ดูว่าเธอทำงานประจำวันอย่างไร Maxine เห็นโต๊ะทำงานที่วางเรียงรายกันแน่นหนากว่าในส่วนของนักพัฒนา แต่ก็ไม่หนาแน่นเท่ากับส่วนของ helpdesk ที่เธอไปเจอ Derek
บนโต๊ะของ Purna มีจอมอนิเตอร์ขนาดใหญ่สองจอ รูปถ่ายเธอกับลูกๆ และเหล้าซิงเกิลมอลต์สก็อตช์ (single malt scotch) อายุแปดปีหนึ่งขวด Maxine บุ้ยปากไปทางขวดเหล้า “แบรนด์โปรดเหรอคะ?”
Purna หัวเราะ “ยังไม่ใกล้เคียงเลยค่ะ แต่ก็ดีพอสำหรับการฉลองแถวนี้แหละค่ะ คุณต้องใช้มันแน่ๆ ถ้าทำงานโปรเจกต์ Phoenix” เธอสลับหน้าต่างบนหน้าจอและโชว์ให้ Maxine ดูโปรเจกต์การปล่อยตัว (release project) ที่เธอสร้างขึ้นในเครื่องมือจัดการ Ticket ของฝ่าย QA
“ในที่สุด” Maxine คิดในใจ เธออยากเห็นเวิร์กโฟลว์ (workflow) ของทีม QA มานานแล้ว แต่เมื่อเห็นเครื่องมือนั้น Maxine ถึงกับชะงักไปครู่หนึ่ง
“นั่นคือ IE6 (Internet Explorer 6) เหรอคะ?” Maxine ถามด้วยความลังเล ครั้งสุดท้ายที่เธอเห็น IE เวอร์ชันนั้นคือนสมัย Windows XP โน่นเลย
Purna ยิ้ม ราวกับว่าเธอชินแล้วที่ต้องอธิบายเรื่องนี้ให้คนอื่นฟัง “ใช่ค่ะ เราใช้เครื่องมือนี้มานานกว่าสิบปีแล้ว และตอนนี้เราต้องรัน client ภายใน Windows VM (Virtual Machine) รุ่นเก่าด้วย มันเก็บโปรเจกต์ทดสอบทั้งหมดของเราและรันการทดสอบฟังก์ชันแบบอัตโนมัติ (automated functional tests) บางส่วน ในนี้มีแผนการทดสอบ (test plans) เป็นพันๆ อย่างที่เราสร้างขึ้นมาตลอดสิบปีเลยล่ะค่ะ”
“แต่ทำไมต้องเป็น IE6 คะ?” Maxine ถามต่อ
“ผู้ขายมีเวอร์ชันอัปเกรดที่รองรับเบราว์เซอร์สมัยใหม่แล้วค่ะ แต่มันต้องอัปเกรดเซิร์ฟเวอร์ที่รันระบบนี้ด้วย” Purna กล่าว “ในที่สุดเราก็ได้งบประมาณมาแล้ว แต่ตอนนี้ยังคงรอฝ่าย Operations จัดเตรียมเครื่อง (provision) ให้เราอยู่ค่ะ”
นี่ไม่ใช่ครั้งแรกที่ Maxine เห็นคนต้องใช้ Internet Explorer เวอร์ชันเก่าๆ ในงานเก่าของเธอมีระบบสนับสนุนโรงงานบางตัวที่ผู้ขายเลิกกิจการไปนานแล้ว พวกเขาจัดการย้ายออกจากระบบเหล่านั้นได้เกือบหมด ยกเว้นเพียงเครื่องเดียว พวกเขาต้องสร้างเน็ตเวิร์กที่แยกขาดจากโลกภายนอก (air-gapped network) โดยสิ้นเชิง เรียกว่า “6.6.6.6” สำหรับเซิร์ฟเวอร์ที่สำคัญระดับภารกิจเครื่องหนึ่ง มันรันบน SunOS เวอร์ชันที่มีช่องโหว่ที่รู้กันอยู่แล้ว ซึ่งไม่สามารถลงแพตช์ (unpatchable) แก้ไขได้อีกต่อไป
“ช่วงเวลาที่ดีจริงๆ” เธอประชดในใจ
ขณะที่ Purna พาเธอชมระบบ Maxine เห็นว่าแม้จะเก่ามาก แต่แอปพลิเคชันจัดการเวิร์กโฟลว์ของ QA ก็ถูกจัดระเบียบมาอย่างดีและใช้งานได้จริง
Purna เปิดโฟลเดอร์เครือข่ายที่มีเอกสาร Word กว่าสองร้อยฉบับบรรจุแผนการทดสอบ (test plans) ไว้ เมื่อ Maxine ถาม เธอจึงสุ่มเปิดขึ้นมาดูสองสามฉบับ บางฉบับอธิบายขั้นตอนการทดสอบสำหรับสถานการณ์ผู้ใช้งาน (user scenario) ที่กำหนด: ไปที่ URL นี้, กรอกฟอร์มนี้ด้วยค่าเหล่านี้, คลิกปุ่มนี้, ตรวจสอบความถูกต้องของค่าที่แสดงที่ URL อีกอันหนึ่ง...
เอกสารฉบับอื่นอธิบายแผนการทดสอบสำหรับการตรวจสอบความถูกต้องของข้อมูลนำเข้า (input validation) เพื่อให้แน่ใจว่าทุกฟิลด์ในแต่ละฟอร์มจะปฏิเสธข้อมูลที่ไม่เป็นไปตามกำหนด การอ่านสิ่งเหล่านี้ทำให้ Maxine นึกถึงความทรงจำเมื่อหลายสิบปีก่อน เพราะงานแรกของเธอคือการทำซอฟต์แวร์ QA การจะเป็น QA ที่เก่งได้นั้นต้องการสัญชาตญาณที่ดูประหลาดและบางครั้งก็ดูเหมือนพวกซาดิสต์นิดๆ ในการหาว่าอะไรที่จะทำให้ซอฟต์แวร์ระเบิด แครช หรือค้างไปตลอดกาล
Maxine เคยได้ยินมุกตลกหนึ่ง: “วิศวกร QA เดินเข้าไปในบาร์ สั่งเบียร์หนึ่งแก้ว สั่งเบียร์ศูนย์แก้ว สั่งเบียร์ 999,999,999 แก้ว สั่งจิ้งจกหนึ่งตัว สั่งเบียร์ติดลบหนึ่งแก้ว สั่ง ‘sfdeljknesv’”
คน QA ที่เก่งๆ นั้นขึ้นชื่อเรื่องการทำลายโค้ดของคนอื่น พวกเขาจะกรอกฟอร์มด้วยตัวอักษรเป็นพันๆ ตัว อักขระ Unicode ที่พิมพ์ไม่ได้และอีโมจิ (emojis) ใส่ตัวเลขติดลบในช่องวันที่ และเรื่องที่คาดไม่ถึงอื่นๆ อีกมากมาย ผลที่ตามมาคือโปรแกรมแครชหรือทำงานผิดปกติอย่างรุนแรง ซึ่งมักจะทำให้นักพัฒนาต้องเอามือตบหน้าผากตัวเอง และทึ่งกับเคสทดสอบที่แสนจะโหดร้ายนั้น
ข้อผิดพลาดจากการแทรกข้อมูล (injection errors) เหล่านี้บางอย่างอาจถูกแฮ็กเกอร์นำไปใช้เพื่อเข้าถึงระบบทั้งหมดและขโมยข้อมูลไปได้เลย นี่คือสิ่งที่นำไปสู่เหตุการณ์ขโมยข้อมูลที่ระบุตัวตนบุคคล (Personally Identifiable Information - PII) ครั้งที่เลวร้ายที่สุดในประวัติศาสตร์
การค้นหาข้อผิดพลาดและช่องโหว่ (vulnerabilities) เหล่านี้เป็นงานที่สำคัญมาก Maxine รู้สึกแย่ที่ Purna และทีมของเธอต้องดำเนินการทดสอบเหล่านี้ด้วยมือ (manually) ตลอดสองสัปดาห์ข้างหน้า พวกเขาจะต้องล้างข้อมูลจากการทดสอบครั้งก่อน เริ่มต้นสถานะแอปพลิเคชัน Phoenix ใหม่ ไปที่ URL ที่ถูกต้อง พิมพ์ข้อมูลเดิมซ้ำๆ ลงในช่องฟิลด์... กี่ครั้งกันนะ?
Purna แสดงการทดสอบอื่นๆ เพื่อเช็กว่าฟีเจอร์ทำงานได้ตามที่ออกแบบไว้หรือไม่ บ่อยครั้งที่มันหมายถึงการเชื่อมต่อกับระบบธุรกิจอื่นๆ ในสภาพแวดล้อมการทดสอบแบบรวม (integrated test environment) ที่ถูกสร้างขึ้นอย่างระมัดระวังเพื่อให้เหมือนกับสิ่งที่รันอยู่ใน production ณ ปัจจุบัน
Maxine อดคิดไม่ได้ว่าการทดสอบที่ยอดเยี่ยมเหล่านี้สามารถทำให้เป็นอัตโนมัติ (automate) ได้มากแค่ไหน มันจะช่วยปลดปล่อยทีม QA จากงานที่น่าเบื่อ กินเวลา และเสี่ยงต่อความผิดพลาด และเปิดโอกาสให้พวกเขาได้ใช้ความอัจฉริยะในการหาวิธีใหม่ๆ เพื่อทำลายโค้ด
ยิ่งไปกว่านั้น การทดสอบอัตโนมัติเหล่านี้จะถูกรันทุกครั้งที่นักพัฒนาเช็กอิน (check in) โค้ด ซึ่งจะให้ผลตอบรับที่รวดเร็วและทันทีแบบที่ Maxine และนักพัฒนาคนอื่นๆ หลงรัก พวกเขาสามารถพบข้อผิดพลาดได้ทันทีและไม่ต้องทำผิดซ้ำแล้วซ้ำเล่าวันแล้ววันเล่า สัปดาห์แล้วสัปดาห์เล่า
Maxine ไม่ได้พูดสิ่งที่คิดออกไป สิ่งสุดท้ายที่คน QA อยากได้ยินจากนักพัฒนาที่เพิ่งรู้จักกัน คือไอเดียที่ว่าจะทำยังไงให้งานของพวกเขาถูกแทนที่ด้วยระบบอัตโนมัติ
เกือบชั่วโมงต่อมา Maxine ยังคงจดบันทึกอย่างขะมักเขม้น Purna เป็นคนดีมาก แต่ Maxine เริ่มรู้สึกกระสับกระส่าย เธอมาที่นี่เพื่อดูโค้ดของเธอรัน และช่วยทีม QA ตรวจสอบความถูกต้องของมัน
Purna หันมาหาเธอแล้วพูดว่า “เอาล่ะ นั่นคือทั้งหมดที่เราทำได้ตอนนี้ค่ะ สภาพแวดล้อม QA1 ยังไม่ได้ถูกรีเซ็ต (reset) เรากำลังรอชุดข้อมูลทดสอบลูกค้าจากทีม Data Warehouse และทีมพัฒนา Phoenix ก็ยังไม่เริ่มทำการรวมโค้ด (merge)... จนกว่าเราจะได้สิ่งเหล่านั้น เราก็ทำอะไรไม่ได้จริงๆ ค่ะ”
“นักพัฒนายังไม่เริ่ม merge อีกเหรอคะ?” Maxine ถามพลางรู้สึกหัวใจหล่นวูบ “ปกติมันใช้เวลานานแค่ไหนคะ?”
“ปกติเราจะได้รับโค้ดภายในสองหรือสามวันค่ะ... ฉันรู้ว่าพวกเขามักจะพยายามอย่างเต็มที่แล้ว...” Purna กล่าว
Maxine ครางออกมา ในช่วงเวลาสั้นๆ ที่เธออยู่กับโปรเจกต์ Phoenix เธอได้สัมผัสกับทุกแง่มุมของกระบวนการจัดการ Ticket ในการที่จะทำให้ Phoenix build รันได้ เธอต้องเปิด Ticket หาคนเกือบครึ่งหนึ่งขององค์กร QA และ Operations และต้องรอนิ่งๆ อย่างทำอะไรไม่ได้ในขณะที่พวกเขาจัดการสิ่งที่เธอต้องการ
เธอสนุกกับการทำงานใน Ticket พัฒนาของ Data Hub เพราะมันคือสิ่งที่ลูกค้าต้องการ พวกเขาทำเครื่องหมายให้ QA ว่า “พร้อมทดสอบ” (ready to test) แต่ตอนนี้พอเธอมาอยู่ที่ฝั่ง QA เธอกลับพบว่า QA กำลังรองานที่ยังทำค้างอยู่ที่ฝั่ง Dev
และพวกเขาก็ยังต้องรอให้คนอื่นใช้สภาพแวดล้อมการทดสอบเสร็จก่อนถึงจะเข้าไปใช้ต่อได้ พวกเขากำลังรอให้ฝ่าย Ops จัดเตรียมเซิร์ฟเวอร์เพื่อให้พวกเขาสามารถอัปเกรดระบบจัดการการทดสอบได้ และพวกเขากำลังรอข้อมูลทดสอบที่อัปเดตใหม่จากทีม Data Warehouse ความบ้าคลั่งนี้มันจะไปสิ้นสุดที่ตรงไหนกันแน่!?
“คุณต้องการอะไรจากทีม Data Warehouse กันแน่คะ?” เธอถาม พลางนึกถึงปัญหาข้อมูลของ Brent ในช่วงการปล่อยตัว Phoenix และที่ Shannon เคยเล่าถึงความหงุดหงิดห้าปีที่เธอต้องเจอในทีมนั้น
“โอ้ ทุกคนก็ต้องรอพวกเขาหมดแหละค่ะ” เธอกล่าว “พวกเขามีหน้าที่ดึงข้อมูลมาจากเกือบทุกที่ในบริษัท นำมาล้างข้อมูลและแปลงรูปแบบ (transform) เพื่อให้ส่วนอื่นๆ ของธุรกิจนำไปใช้งานได้ พวกเราต้องรอข้อมูลลูกค้าที่ผ่านการทำ anonymize (ปกปิดตัวตน) มาเกือบปีแล้ว และเรายังไม่มีข้อมูลทดสอบที่รวมถึงสินค้าล่าสุด ราคา และโปรโมชั่นที่กำลังรันอยู่เลย พวกเรามักจะถูกลดลำดับความสำคัญลงไปอยู่ท้ายๆ เสมอ ดังนั้นข้อมูลทดสอบของเราเลยเก่าเก็บมาหลายปีแล้วล่ะค่ะ”
น่าสนใจแฮะ Maxine คิดในใจ จริงๆ แล้ว Data Hub นี่แหละคือช่องทางที่ทีม Data Warehouse ได้รับข้อมูลส่วนใหญ่มา
สิ่งที่ต้องพึ่งพากัน (dependencies) มีเพิ่มขึ้นเรื่อยๆ เท่าที่ตาจะมองเห็นได้ เธอคิด ไม่มีจุดไหนในระบบที่พังพินาศนี้ที่คุณจะสามารถทำอะไรให้สำเร็จได้เลย ไม่ว่าคุณจะเป็นคนสร้าง Ticket, คนประมวลผล Ticket, คนที่รอ Ticket หรือคนที่ลงมือทำงานตาม Ticket มันไม่สำคัญเลย คุณติดกับอยู่ในใยแมงมุมของ dependencies จนไม่สามารถทำอะไรให้ลุล่วงได้เลย ไม่ว่าคุณจะอยู่ตรงไหนก็ตาม
“ห่วยแตกจริงๆ” ในที่สุด Maxine ก็พูดออกมาพลางถอนหายใจเสียงดัง “ฉันเกลียดการรอคอยแบบนี้ที่สุดเลย...”
“จริงๆ แล้วมันดีกว่าเมื่อก่อนเยอะเลยนะคะ” Purna กล่าว ซึ่งนั่นยิ่งทำให้ Maxine รู้สึกแย่ลงไปอีก
Purna จ้องมอง Maxine Maxine รู้สึกว่าเธอต้องอธิบายว่าทำไมเธอถึงอารมณ์เสีย: “ฉันหงุดหงิดที่ฝั่ง Dev จัดการงานตัวเองได้ไม่ดีพอ เราต้องทำให้ได้ดีกว่านี้ค่ะ” ในที่สุด Maxine ก็โพล่งออกมา
“ฉันรู้ค่ะว่าบางครั้งพวกเราเองก็มีส่วนทำให้เกิดปัญหาเหมือนกัน” Purna กล่าว
ทันใดนั้นเอง เธอได้ยินเสียงเอะอะโวยวายดังมาจากห้องอาหารข้างหลังเธอ ชายร่างสูงในวัยห้าสิบต้นๆ กำลังตะโกนใส่ Charlotte อย่างโกรธจัด พร้อมกับชี้ไปที่พิซซ่า แล้วก็ชี้ไปที่ Tom และนักพัฒนา Data Hub คนอื่นๆ
“เอาแล้วไง” นั่นต้องเป็น Roy แน่ๆ เธอคิดในใจ เธอรีบส่งข้อความหา Kurt ทันที: “Roy มาแล้วค่ะ คุณรีบมาด่วนเลย!”
“ขอตัวสักครู่นะคะ” เธอบอก Purna แล้วรีบเดินตรงไปที่ห้องครัว
“...เราจะปล่อยให้คนนอกเข้ามาวุ่นวายและขัดขวางการทำงานของเราแบบนี้ไม่ได้ แน่นอนว่าผมซาบซึ้งในน้ำใจนะ แต่นี่มันควรจะผ่านการอนุมัติจากผมก่อน คราวหน้าต้องมาขอผมก่อนนะ Charlotte!”
“โอ้ แต่ฉันว่ามันเป็นเจตนาที่ดีมากเลยนะคะ” Charlotte ตอบกลับ “แบบว่า มีโดนัทกับพิซซ่าด้วย! ไม่เคยมีใครทำแบบนี้ให้พวก QA มาก่อนเลยนะคะ เป็นเรื่องที่น่ารักมากเลยที่ Kurt ทำแบบนี้”
“Kurt! Kurt น่ะชอบวางแผนอะไรอยู่เรื่อย นี่มันก็แค่แผนการบางอย่างที่เขากำลังสร้างขึ้นมาเท่านั้นแหละ” Roy พ่นลมหายใจด้วยความโกรธพลางกวัดแกว่งคลิปบอร์ดไปมา มีคนประมาณสิบห้าคนยืนนิ่งตาโตเฝ้าดูเหตุการณ์อยู่ บางคนดูหวาดกลัว บางคนก็ดูเหมือนจะขบขัน
“เขาคงจะเอาค่าอาหารพวกนี้มาลงงบแผนกผมแน่ๆ!” Roy พูดพลางหันกลับไปหา Charlotte “ถ้าเป็นแบบนั้นล่ะก็ ได้เห็นดีกันแน่”
Maxine เดินเข้าไปในห้องอาหารอย่างมั่นใจและยื่นมือออกไป “สวัสดีค่ะ Roy ฉันชื่อ Maxine เป็นหนึ่งในนักพัฒนาทีม Data Hub ค่ะ ต้องขอโทษด้วยนะคะ ทั้งหมดนี้เป็นความผิดของฉันเองค่ะ เป็นไอเดียของฉันเองที่เอาโดนัทมาเลี้ยงเมื่อเช้านี้ ฉันแค่ต้องการมาฉลองวัน Testing Day กับพวกคุณและเสนอตัวมาช่วยงานค่ะ”
Roy จับมือที่ Maxine ยื่นมาแต่จ้องมองเธอด้วยสายตาว่างเปล่า ในที่สุดเขาก็ถามว่า “ฉลองเรื่องอะไรนะ?”
“วัน Testing Day ค่ะ” Maxine ตอบสั้นๆ โดยไม่สามารถหุบยิ้มได้เลย สีหน้าของ Roy แทบจะเหมือนกับของ Tom ตอนที่เธอพูดเรื่อง Testing Day ให้เขาฟังเมื่อเช้านี้ไม่มีผิด “ฉันสนุกกับการทำฟีเจอร์ให้ Data Hub มากค่ะ เลยคิดว่ามันน่าจะสนุกเหมือนกันถ้าได้มาช่วยทดสอบโค้ดด้วย”
Maxine ชี้ไปที่ไวท์บอร์ดในห้องประชุมข้างหลังเธอ ซึ่งทุกคนในห้องอาหารมองเห็นได้ชัดเจน โดยเฉพาะรูปหัวใจสีชมพูดวงใหญ่ที่ Charlotte วาดไว้
Roy จ้องมองเธอแบบพูดไม่ออก ในที่สุดเขาก็ปล่อยมือเธอแล้วพูดเสียงดังว่า “โอ้ ไม่ล่ะ ผมไม่หลงกลหรอก ผมไม่รู้ว่าพวกคุณกำลังวางแผนอะไรกันอยู่” เขาชี้ไปที่ Maxine, Tom และนักพัฒนา Data Hub อีกห้าคนที่ยืนเด่นอยู่ในชุดเสื้อยืดและเสื้อฮู้ด “ผมค่อนข้างมั่นใจว่า Kurt ต้องมีแผนร้ายเหมือนเคย นี่คงจะเป็นแผนสร้างอาณาจักรของเขาละมั้ง หลังจากที่เขาเพิ่งสร้างตำแหน่งให้ตัวเองในแผนก Development ผมจะสืบเรื่องนี้ให้ถึงที่สุด มั่นใจได้เลย”
ขณะที่ Roy หันหลังจะเดินจากไป Maxine สงสัยว่าเธอจะย้ำข้อความที่ว่า “พวกเรามาอย่างสันติ” ได้อย่างไรดี
ในขณะที่เธอกำลังตัดสินใจว่าจะทำอย่างไรต่อไป เธอก็เห็น Kurt ก้าวเข้ามาในห้อง “โอ้ สวัสดีครับ Roy! ดีใจจังที่คุณยังอยู่ที่นี่ ต้องขอโทษด้วยนะครับที่ไม่ได้แจ้งคุณล่วงหน้า พวกเราแค่คิดว่ามันน่าจะสนุกถ้าได้จัดเซอร์ไพรส์ปาร์ตี้เล็กๆ ทีม QA คือส่วนสำคัญถัดไปในกระบวนการ และพวกเราอยากจะทำทุกอย่างที่ช่วยได้ครับ”
เมื่อได้ยินเสียง Kurt Roy ก็หันกลับมาด้วยใบหน้าแดงก่ำ “โอ้โห มาแล้วเรอะ! ผมมีเรื่องจะคุยกับคุณหน่อย เดี๋ยวนี้เลยครับ”
Kurt กำลังจะตอบโต้ตอนที่ Kirsten เดินเข้ามาในห้องตามหลังเขามา พร้อมกับพูดว่า “สวัสดีค่ะ Kurt สวัสดีค่ะ Roy ขอฉันร่วมวงด้วยคนนะคะ? โอ้ ฉันชอบพิซซ่าจังเลยค่ะ”
Maxine ประหลาดใจที่เห็น Kirsten คนอื่นๆ เริ่มทยอยเดินเข้ามาในห้องอาหาร เพื่อรอดูเรื่องราวดราม่าที่กำลังเกิดขึ้น
“ดีใจมากครับที่มาได้ Kirsten” Kurt หันไปหาทุกคน “ตอนที่เราเดินมาที่นี่ เรากำลังคุยกันว่างาน QA นั้นสำคัญเพียงใด และเสียงของ QA ควรจะได้รับความสำคัญมากขึ้น Kirsten คะ ช่วยแบ่งปันสิ่งที่คุณบอกผมเมื่อกี้หน่อยได้ไหมคะ? ฉันว่าทุกคนที่นี่อยากฟังค่ะ”
“แน่นอนค่ะ Kurt” Kirsten กล่าวพลางถือจานกระดาษที่มีพิซซ่าหน้าไส้กรอกสับปะรดอยู่หนึ่งชิ้น “อย่างที่ทุกคนทราบ โปรเจกต์ Phoenix คือความคิดริเริ่มที่สำคัญที่สุดในประวัติศาสตร์ของบริษัท หายนะเมื่อสองสัปดาห์ก่อนเป็นบทเรียนครั้งใหญ่สำหรับทุกคน โดยเฉพาะในระดับบริหารสูงสุด เรามีการเดิมพันสูงมากในการปล่อยตัวครั้งถัดไป เรามีสัญญาที่ให้ไว้กับตลาดมาตลอดสามปีที่เราเพิ่งจะเริ่มทำมันให้เป็นจริงได้ในที่สุด”
“เราเพิ่งประกาศโปรเจกต์ Inversion ซึ่งเป็นครั้งแรกที่เรามีการแช่แข็งฟีเจอร์เพื่อเสริมสร้างคุณภาพ” เธอกล่าวต่อ “นี่คือการแสดงความมุ่งมั่นจากระดับสูงสุดของบริษัท ไม่ใช่แค่การทำในสิ่งที่ถูกต้อง แต่คือการทำสิ่งที่ถูกต้องให้ถูกวิธี และการส่งมอบโค้ดให้พวกคุณได้ทันตามกำหนดเวลาก็เป็นส่วนหนึ่งในนั้น ฉันรู้ดีว่าทีม Development มักจะส่งงานรวมโค้ด (merge) ล่าช้าอยู่บ่อยๆ”
“ในการประชุมของเรากับผู้นำทีม Dev และ QA ทั้งหมด พวกเขาให้คำมั่นสัญญาว่าจะส่งมอบงานให้พวกคุณทดสอบภายในห้าโมงเย็นวันนี้ค่ะ” เธอกล่าว “เรารู้ว่ามันสำคัญแค่ไหนที่พวกคุณต้องมีโค้ดที่เสถียรเพื่อทดสอบ และนั่นต้องอาศัยกระบวนการพัฒนาที่ยอดเยี่ยม การปรับปรุงกระบวนการเหล่านั้นจะเป็นส่วนหนึ่งของโปรเจกต์ Inversion เช่นกันค่ะ”
ผู้คนส่งเสียงเชียร์ พนักงาน QA ปรบมือกันเสียงดังเป็นพิเศษ
“เรากำลังอยู่ในการวิ่งผลัด และเราต้องส่งไม้ต่อให้ถึงมือพวกคุณให้ได้ค่ะ” เธอกล่าวต่อพลางผายมือ “งานของพวกคุณมีความสำคัญ และงานของฉันคือการช่วยให้พวกคุณได้รับทุกสิ่งที่จำเป็นเพื่อความสำเร็จ ขอบคุณล่วงหน้าสำหรับความทุ่มเทของทุกคนนะคะ และโปรดบอกฉันได้เลยถ้ามีอะไรที่ฉันพอจะช่วยได้” ห้องทั้งห้องระเบิดเสียงปรบมืออีกครั้ง และ Maxine ก็ร่วมปรบมือด้วย เธอทำให้นึกถึงปาร์ตี้หรูในชิคาโกที่เธอเคยไป ซึ่งเธอเห็นนายกเทศมนตรีเมืองกล่าวสุนทรพจน์ เธอทึ่งที่เขามีพรสวรรค์ในการสื่อสาร ทำให้ทุกคนไม่เพียงแต่รู้สึกสบายใจ แต่ยังรู้สึกว่าตัวเองมีคุณค่าและเป็นส่วนหนึ่งของสิ่งที่พิเศษ
Kirsten เองก็มีพรสวรรค์นั้นเช่นกัน Maxine คิดในใจ เธอไม่เคยเห็นมุมนี้ของ Kirsten มาก่อนและรู้สึกประทับใจมาก
ฝูงชนเริ่มแยกย้ายกันไป หลายคนเดินเข้าไปหา Kirsten ส่วนคนอื่นๆ ก็เข้าไปหา Kurt เพื่อจับมือและแสดงความยินดีกับบทบาทใหม่ของเขา
Roy ยืนอยู่ที่ด้านหลังห้องอาหาร จ้องมอง Kirsten และ Kurt ด้วยสายตาอาฆาต
ในตอนนั้นเอง Charlotte ก็มาปรากฏตัวข้างๆ เธอ “ชีวิตรอบๆ ตัว Kurt นี่น่าสนใจเสมอเลยนะคะเนี่ย? เดี๋ยวฉันจะเข้าไปแนะนำตัวกับ Kirsten หน่อยค่ะ ฉันอยากเจอเธอมานานแล้ว เธอเท่มากเลยนะคะ วันนี้มีคนน่าสนใจแวะมาหาพวกเราที่ QA เยอะจริงๆ!”
Maxine เห็น Roy เดินเข้าไปหา Kurt เธอขยับเข้าไปใกล้พอที่จะได้ยินเขาพูดว่า “...เรื่องนี้ยังไม่จบหรอกนะ แกหาผู้อุปถัมภ์มาได้ก็จริง แต่เธอปกป้องแกไม่ได้ตลอดไปหรอก แกคิดว่าแกเก่งกว่าพวกเราเหรอ? คิดว่าจะเดินเข้ามาที่นี่ ทำมาเป็นวางท่า แล้วก็ทำระบบอัตโนมัติมาแย่งงานทุกคนงั้นเรอะ? ตราบใดที่ฉันยังอยู่ แกไม่มีวันทำสำเร็จแน่ ฉันจะขัดขวางแกทุกทาง คอยดูแล้วกัน”
Roy เดินกระทืบเท้าออกจากห้องไป Maxine มองไปที่ Kurt ซึ่งมีรอยยิ้มที่ดูไม่ทุกข์ร้อนอยู่บนใบหน้า เขาพูดกับ Maxine และ Tom ที่เพิ่งเดินมาสมทบว่า “อืม สนุกดีนะครับ ไม่ต้องกังวลอะไรหรอก ผมเห็นท่าทีแบบนี้มาแต่ไกลแล้วล่ะ”
“กังวลเหรอครับ?” Tom ตอบพลางหัวเราะ “ผมไม่กังวลอะไรเลยครับ เรื่องนี้มันน่าตื่นเต้นกว่าวันเขียนโค้ดปกติเยอะเลย แล้วจะเกิดอะไรขึ้นต่อครับ?”
“ดูเหมือนนักพัฒนาจะกำลังรีบปั่นโค้ดเพื่อ merge ให้ทันเส้นตายตอนห้าโมงเย็นมั้งคะ” Maxine พูดด้วยสีหน้าเรียบเฉย
รอยยิ้มของ Tom หายวับไปทันที “ไปดูกันเถอะครับ” Kurt ยิ้ม