เช้าวันรุ่งขึ้น Maxine ยังคงรู้สึกถึงชัยชนะจากความสำเร็จหลายอย่างเมื่อวานนี้ แต่เป็นไปตามที่ Kurt คาดการณ์ไว้ ทุกคนกำลังสติแตก อย่างที่ไม่มีใครอยากเชื่อ การเปิดตัว (launch) จะไม่ถูกยกเลิกหรือเลื่อนออกไป แต่โปรเจกต์ Phoenix จะถูกปล่อยตัวพรุ่งนี้ตอนห้าโมงเย็น

กัปตัน Kirk ดูเหมือนจะกดปุ่มวาร์ป (warp speed) ทั้งที่ต้นหน Scotty บอกเขาว่าผลึก dilithium กำลังจะระเบิดแล้ว ดังนั้นวันนี้จะไม่มีการประชุมรายงานสถานะที่น่าเบื่ออีกต่อไป แต่ทุกการประชุมกลับกลายเป็นพายุแห่งความวุ่นวาย (shitstorm) ของจริง ผู้คนตกอยู่ในอาการใกล้จะตื่นตระหนก การประชุมหนึ่งกลายเป็นความโกลาหลและวุ่นวาย เต็มไปด้วยคำถาม ข้อคัดค้าน และความตกตะลึง ผู้คนต่างพิมพ์ข้อความบนโทรศัพท์และแล็ปท็อปอย่างบ้าคลั่ง และหนึ่งในสามของคนในห้องกำลังโทรศัพท์ประสานงานกัน มันเหมือนกับกำลังดูหนังเก่าจากยุค 40 ที่เหล่านักข่าวต่างวิ่งกรูออกจากห้องพิจารณาคดีไปยังตู้โทรศัพท์สาธารณะหรือรีบกลับไปที่ออฟฟิศ เพื่อแย่งกันรายงานข่าวให้ได้เป็นคนแรก

Maxine หันไปหาคนที่อยู่ข้างๆ แล้วตะโกนถามเสียงดังว่า “Phoenix เคยถูก deploy ขึ้น production มาก่อนหรือเปล่า?!”

“ไม่เคย!” เขาตะโกนตอบกลับมา

“แล้วมีทีมปล่อยตัว (release team) หรือยัง?” Maxine ถามต่อ

“ยัง! วันนี้ Chris, Kirsten และ Bill กำลังรวบรวมทีมปล่อยตัวอย่างเป็นทางการอยู่ แต่ผมไม่รู้เลยว่าใครจะมาเป็นคนคุมงาน” เขาตอบพลางทำท่ากัดเล็บด้วยความประหม่าและหวาดกลัว

Maxine มองเขากลับไปแบบพูดไม่ออก

Maxine ไม่ได้มีความสุขบนความทุกข์ของคนอื่นหรอกนะ แต่การเฝ้าดูความโกลาหลรอบๆ โปรเจกต์ Phoenix นั้นน่าตื่นเต้นกว่าการรอคนมาจัดการ Ticket ของเธอเยอะเลย เธอครางออกมาเมื่อนึกขึ้นได้ว่าในวิกฤตแบบนี้ คงไม่มีใครมีเวลามาจัดการ Ticket ของเธอแน่ๆ

สายวันนั้น Chris ประกาศว่า William ผู้อำนวยการฝ่าย QA จะเป็นคนคุมทีมปล่อยตัว เป้าหมายของเขาคือ: เตรียมทุกอย่างให้อยู่ในสถานะที่พร้อมปล่อยตัว และประสานงานกับฝ่าย Ops ที่ก็ถูกจู่โจมแบบไม่ทันตั้งตัวเหมือนกัน

น่าสงสารจริงๆ เธอรู้ว่าพวกเขากำลังเจอปัญหาใหญ่ นักพัฒนาของ Phoenix ยังไม่สามารถรวมโค้ด (merge) ของตัวเองเข้าด้วยกันได้เลยโดยไม่เผลอทิ้งบางส่วนไว้ข้างหลังหรือทำ build พัง การจะทำ production deployment ให้สำเร็จดูเป็นเรื่องที่มองโลกในแง่ดีเกินไป หรือไม่ก็บ้าไปแล้วชัดๆ เธอคิด

“William ทีมปล่อยตัวจะประชุมกันเมื่อไหร่คะ?” Maxine ถามเขาขณะที่เขากำลังวิ่งผ่านไป เธอวิ่งตามเพื่อให้ทัน “ฉันช่วยอะไรได้บ้างไหมคะ?”

“ประชุมครั้งแรกในอีกหนึ่งชั่วโมงครับ เราต้องการความช่วยเหลือทุกอย่างเท่าที่จะหาได้” เขาพูดโดยไม่แม้แต่จะผ่อนความเร็ว Maxine ดีใจมาก ในที่สุดก็จะได้ใช้ทักษะและประสบการณ์ของเธอเสียที

นี่จะเป็นการประชุมที่น่าสนใจมาก เธอคิด Maxine เคยเห็นว่าทีม Dev และ Ops โต้ตอบกันอย่างไรเกี่ยวกับ Phoenix แทนที่จะทำงานเหมือนเป็นทีมเดียวกัน พวกเขากลับทำตัวเหมือนรัฐอธิปไตยที่จวนจะทำสงครามกัน โดยมีนักการทูตพยายามปะติดปะต่อสันติภาพที่ง่อนแง่น พร้อมด้วยสถานทูต พิธีการ และระเบียบการที่เป็นทางการ แม้แต่การนัดประชุมระหว่างสองกลุ่มนี้ยังต้องมีการประชุมสุดยอดและมีนักกฎหมายเข้าร่วมด้วย

อย่างไรก็ตาม เธอตื่นเต้นที่จะได้เข้าสู่สนาม ในทางที่ดูแปลกๆ นี่เป็นเรื่องที่สนุกที่สุดที่เธอได้เจอในโปรเจกต์ Phoenix จนถึงตอนนี้ เธอเพิ่งรู้ตัวว่าเธอกำลังยิ้มแก้มปริ “นี่มันทำให้ฉันกลายเป็นคนไม่ดีหรือเปล่านะ?” เธอสงสัย แต่เธอก็ยิ้มอีกครั้งโดยไม่สนใจคำตอบ

แม้จะพยายามมาให้เร็วแล้ว แต่ Maxine ก็ยังมาสายที่ห้องวอร์รูม (war room) พวกเขาต้องย้ายที่ประชุมถึงสองครั้งเพราะจำนวนคนเพิ่มขึ้นเรื่อยๆ จนล้นพื้นที่

อุณหภูมิในห้องร้อนกว่าทางเดินถึงสิบห้าองศา และอากาศก็อับชื้น คนเกือบห้าสิบคนเบียดเสียดกันอยู่ในพื้นที่ที่ออกแบบมาสำหรับคนเพียงครึ่งเดียว เธอเห็น Chris, Kirsten, William และกลุ่มนักพัฒนาหลักรวมถึงผู้จัดการหลายคน Kurt ซึ่งนั่งข้าง William โบกมือให้เธอ

ที่อีกฝั่งของโต๊ะคือ Bill Palmer แวดล้อมไปด้วยกลุ่มใบหน้าที่เธอไม่คุ้นเคย เธอสังเกตเห็นว่ามีบางอย่างที่... แตกต่างไปเกี่ยวกับพวกเขา

คนที่ตัวใหญ่ที่สุดทางซ้ายของ Bill กอดอกและมีใบหน้าที่บึ้งตึงอย่างมาก เขาพยักหน้าอย่างไม่อยากจะเชื่อ “พวกคุณเป็นอะไรกันไปหมด? คุณกำลังจะบอกผมว่าคุณไม่รู้ว่าต้องใช้ Windows server กี่เครื่อง นอกเหนือจาก Linux server อีกหยิบมือ... บอกผมอีกทีซิว่า ‘เซิร์ฟเวอร์หยิบมือ’ (handful of servers) นี่มันคือจำนวนเท่าไหร่กันแน่? เป็นหน่วยเมตริกหรือหน่วยอิมพีเรียล? แล้วในขณะที่เรากำลังคุยกันอยู่นี้ คุณมี Kumquat boxes ที่ต้องการ หรืออาจจะเป็น Tandem ด้วยไหมล่ะ?”

ขนาบข้างเขาคือผู้หญิงคนหนึ่งและชายหนุ่มอีกคน วิธีที่พวกเขาหัวเราะคิกคักทำให้ Maxine นึกถึง Crabbe และ Goyle ลูกสมุนใจร้ายสองคนที่ถวายตัวเป็นเพื่อนสนิทกับ Malfoy คู่ปรับของ Harry Potter จากบ้าน Slytherin ทันที

“เอิ่ม...” หนึ่งในผู้จัดการฝ่ายพัฒนากล่าว “จริงๆ แล้วมีส่วนประกอบหนึ่งที่รันได้เฉพาะบน Kumquat server เท่านั้นครับ มันเป็นส่วนขยายที่เราต้องสร้างต่อจาก message bus ที่มีอยู่เดิม แต่มันเป็นการแก้ไขเพียงเล็กน้อยเท่านั้น ไม่น่าจะสร้างปัญหาอะไร และน่าจะเพิ่มโหลด (load) เพียงเล็กน้อยจนแทบไม่รู้สึก...”

Maxine ได้ยินเสียงครวญครางจากทั่วห้อง และไม่ใช่แค่จากพวก Slytherin ที่อยู่อีกฝั่งของโต๊ะ ชายหนุ่มที่นั่งข้างชายตัวใหญ่ ซึ่ง Maxine เริ่มเรียกเขาในใจว่า Big Malfoy ถอนหายใจ “ในทางเทคนิค Kumquat ไม่มีปัญหาอะไรหรอกครับ—เรามีประสบการณ์รัน production workload บนนั้นมาเป็นสิบปี และเราเข้าใจลักษณะการทำงานของมันดีพอสมควร ปัญหาคือเวลาที่ใช้ในการรีบูต (reboot time) สำหรับคลัสเตอร์นั้นคือเกือบแปดชั่วโมง เราแค่ต้องระวังเกี่ยวกับอะไรก็ตามที่ต้องมีการรีสตาร์ท เช่น การลงแพตช์ความปลอดภัย (security patching) ผมกังวลว่าการเปลี่ยนแปลงบางอย่างจะต้องการการรีบูตหลายครั้ง ซึ่งอาจหมายถึงการหยุดทำงาน (downtime) เป็นวัน... หรือพวกมันอาจจะไม่กลับมารันได้อีกเลย...”

นี่คือพวกฝ่าย Ops ทั้งหมด Maxine นึกได้ มิน่าล่ะเธอถึงไม่ค่อยเห็นพวกเขาแถวนี้

“Wes เชื่อผมสิ พวกเราก็กลัวสถานการณ์นั้นพอๆ กับคุณนั่นแหละ” ผู้จัดการฝ่ายพัฒนาตอบจากฝั่งตรงข้าม “พวกเราพยายามมาสามปีแล้วที่จะเปลี่ยนแพลตฟอร์ม (re-platform) แอปพลิเคชันนี้ แต่มันมักถูกลดความสำคัญลงเพราะมีอย่างอื่นที่สำคัญกว่าเสมอ”

“ใช่ พวกคุณนักพัฒนามักจะให้ความสำคัญกับฟีเจอร์ก่อนเสมอ และไม่เคยล้างหนี้ทางเทคนิค (technical debt) ที่พวกคุณสร้างขึ้นมาเลย... ขยะเดิมๆ” Big Malfoy พูดพร้อมกับทำท่าทางหงุดหงิด

Bill พูดกับ Big Malfoy โดยไม่ได้หันไปมอง “หยุดได้แล้ว Wes แก้ปัญหาที่อยู่ตรงหน้า จดจ่อกับงานเข้าไว้”

“ครับๆ รับทราบครับบอส” Wes (Big Malfoy) กล่าว “Linux server หยิบมือหนึ่ง, Windows server อีกหยิบมือหนึ่ง และ Kumquat server หนึ่งเครื่อง รับทราบครับ คราวนี้ใครช่วยนิยามคำว่า ‘หยิบมือ’ ให้ผมหน่อยได้ไหม?”

Maxine เฝ้าดูผู้จัดการฝ่ายพัฒนาทุกคนสุมหัวกัน คำนวณความต้องการทรัพยากรประมวลผล (compute needs) สำหรับแต่ละส่วนประกอบ เห็นได้ชัดว่าพวกเขาก็แค่ใช้สัญชาตญาณ (gut feeling) ไม่ได้มีการทำแบบฝึกหัดวางแผนกำลังการผลิต (capacity-planning) อย่างถี่ถ้วนเลย

Maxine ตระหนักว่าการปล่อยตัวครั้งนี้มีปัญหาหนักกว่าที่เธอคิดเสียอีก นักพัฒนายังรวบรวมโค้ดทั้งหมดเข้าด้วยกันไม่ได้ และพวกเขาก็ยังไม่ได้กำหนดสภาพแวดล้อม production ที่แอปพลิเคชันจำเป็นต้องรันเลย—การอธิบาย environment ของคุณด้วยคำว่า “หยิบมือ” นั้นใช้ไม่ได้ผลแน่นอน

เธอจึงส่งเสียงถามดังขึ้นว่า “เราคาดหวังจำนวนธุรกรรมต่อวินาที (transactions per second) เท่าไหร่สำหรับการแสดงสินค้าและการสั่งซื้อคะ? และในปัจจุบัน build ล่าสุดสามารถรองรับธุรกรรมได้กี่รายการต่อวินาที? ข้อมูลนี้จะบอกเราได้ว่าเราต้องการเซิร์ฟเวอร์กี่เครื่องสำหรับส่วนที่ขยายขนาดในแนวนอน (horizontally scalable) และเรายังขาดอีกเท่าไหร่สำหรับส่วนประกอบที่ขยายขนาดในแนวตั้ง (vertically scaled) อย่างเช่น ฐานข้อมูล (database)”

ห้องทั้งห้องเงียบกริบ ทุกคนหันมามอง Maxine พวกเขาดูเหมือนจะตกใจกับคำถามที่เป็นสามัญสำนึกพื้นฐานของเธอ ผู้หญิงที่นั่งทางซ้ายของ Wes พูดขึ้นว่า “ขอบคุณค่ะ! นั่นคือสิ่งที่เราจำเป็นต้องรู้พอดีเลย!”

Maxine พยักหน้านิดๆ และขยิบตาให้

Chris ยืนขึ้น “นี่คือการปล่อยตัว (release) ที่มีการโฆษณาประชาสัมพันธ์สูงสุดในประวัติศาสตร์ของบริษัท ฝ่ายการตลาดทุ่มสุดตัว พวกเขากำลังจะใช้เงินเกือบล้านดอลลาร์เพื่อประกาศเรื่องการเปิดตัว Phoenix ผู้จัดการร้านค้าทุกคนได้รับคำสั่งให้บอกลูกค้าทุกคนให้ดาวน์โหลดแอปและเข้าเว็บไซต์ในวันเสาร์นี้—พวกเขายังมีการจัดประกวดว่าร้านไหนจะมียอดผู้ใช้แอปใหม่สูงสุดด้วย พวกเขาติดต่อสื่อในอุตสาหกรรมและธุรกิจทั้งหมด และกำลังพยายามให้ Sarah หรือ Steve ไปออกรายการข่าวทุกช่อง—แม้กระทั่ง Good Morning America”

“นี่คือตัวเลขการคำนวณที่ดีที่สุดที่ผมได้จากฝ่ายการตลาด” Chris พูดต่อพลางเปิดสมุดจดของเขา “คาดว่าจะมีคนหนึ่งล้านคนเข้ามาที่เว็บไซต์และแอปมือถือของ Parts Unlimited ถ้าทุกอย่างเป็นไปด้วยดี เราควรเตรียมพร้อมรับคำสั่งซื้ออย่างน้อยสองร้อยรายการต่อวินาที”

Maxine ได้ยินเสียงพึมพำและเสียงสบถจากทั่วห้อง

Wes กวาดสายตาไปรอบห้องแล้วหันไปหา Chris ความขี้เล่นหายไปจนหมด “โอเค นั่นเป็นข้อมูลที่ดี” เขาบุ้ยปากไปทาง Maxine “สถาปนิกคนเก่งของเราเพิ่งถามว่า Phoenix รองรับธุรกรรมได้เท่าไหร่ในตอนนี้ ว่าไงล่ะ?”

Chris มองไปที่ William ผู้ซึ่งหยิบเอกสารที่พิมพ์ออกมา “เพิ่งออกมาจากเครื่องเมื่อเช้านี้เลยครับ ในการทดสอบของเรา ตอนนี้ Phoenix รองรับได้ประมาณห้าธุรกรรมต่อวินาที (transactions per second) อะไรที่มากกว่านั้นจะทำให้ database client เริ่มแครช (crash) เพราะเกิด timeout รวมถึงแอปมือถือด้วย... ผมคิดว่าเราขาดดัชนีฐานข้อมูล (database indexes) ไปหลายตัว แต่เรายังหาไม่เจอว่าตัวไหนบ้าง...”

William เงยหน้าขึ้น “มันแย่มาก แย่สุดๆ เลยครับ Chris”

Wes นั่งเงียบด้วยความตกตะลึงอยู่ครู่หนึ่ง แล้วพูดกับ Chris ด้วยเสียงที่ทื่อๆ และเหนื่อยหน่ายกับโลก “เราไปไม่รอดหรอก ใช่ไหม?”

ไม่มีใครพูดอะไร ในที่สุด Bill ก็ถามว่า “Wes คุณต้องการความช่วยเหลืออะไรบ้าง?”

“...ผมยังไม่รู้เลยครับ” เขาตอบ “บางทีแค่ช่วยกันคน (air cover) ให้ทีมงานสามารถจดจ่อกับงานได้ก็พอ”

ในขณะนั้นเอง Maxine ก็ได้ยินเสียงดังมาจากทางประตู “เพื่อความอยู่รอดของ Parts Unlimited เราต้องทำให้มันสำเร็จ และแน่นอนว่าเราจะต้องทำมันให้ได้”

“เอาแล้วไง” Maxine คิดในใจ Sarah Moulton มาแล้ว

เธอมาในชุดสูทสีเหลืองสดใสที่ดูราคาแพง และใบหน้าของเธอก็ดูเปล่งปลั่งจน Maxine สงสัยว่าเป็นไปได้อย่างไร แสงไฟฟลูออเรสเซนต์ในออฟฟิศมักจะทำให้คนดูเหมือนซากศพและซีดเซียว Maxine สงสัยว่าเธออาจจะใส่เรเดียมลงในเครื่องสำอางเพื่อให้ตัวเองเรืองแสงเหมือนนาฬิกาตั้งโต๊ะยุค 50 หรือเปล่า Sarah มีเสน่ห์ที่ดูอันตรายบางอย่าง และทุกคนในห้องก็ดูจะตกอยู่ในภวังค์เหมือนกัน

“เราอยู่ในตลาดที่กำลังหดตัว โดยมีคู่แข่งที่ดุเดือดกำลังแย่งส่วนแบ่งการตลาดไปจากเรา” Sarah กล่าว “ยังไม่รวมถึงยักษ์ใหญ่ทางเทคโนโลยีอย่าง Amazon และสตาร์ทอัพใหม่อีกยี่สิบแห่งที่กำลังจะเข้ามาทำลาย (disrupt) หมวดหมู่ธุรกิจนี้ทั้งหมด อย่างที่ Steve ได้พูดไว้ในงาน Town Hall เรามีเวลาเตรียมตัวมาสามปีแล้ว ตอนนี้ถึงเวลาที่เราต้องออกไปรบและปกป้องสิ่งที่เป็นของเราโดยชอบธรรม”

เธอมองไปรอบๆ ห้อง กวาดสายตาหาเบาะแสของการขัดขืนหรือการกบฏ “นี่คือกลยุทธ์ที่ผู้บริหารของบริษัทนี้ได้ตัดสินใจแล้ว ใครมีปัญหาอะไรไหม?” เธอท้าทาย

ที่น่าเหลือเชื่อคือ Maxine ได้ยินเสียงตัวเองหัวเราะออกมา ด้วยความตกใจเธอจึงรีบเอามือปิดปาก “ตั้งสติไว้ Maxine!” เธอรีบปั้นหน้านิ่งเหมือนนักเรียนที่ถูกจับได้ว่าทำความผิดในโรงเรียนมัธยม ตั้งแต่เมื่อไหร่กันที่เธอเริ่มแคร์ว่าผู้มีอำนาจจะคิดอย่างไรกับเธอ? เธอสงสัย

“ตั้งแต่ตอนที่ Chris เตือนให้ฉันทำตัวไม่ให้เป็นที่สนใจนั่นแหละ” เธอตระหนักได้ Maxine ฝืนตัวเองให้มองไปที่ Sarah อย่างสงบด้วยสีหน้าแบบ Lieutenant Saavik (ตัวละครใน Star Trek) ที่แผ่ซ่านไปด้วยตรรกะที่เยือกเย็นและไร้อารมณ์

“มีอะไรตลกเป็นพิเศษสำหรับคุณเหรอคะ... เอิ่ม ขอโทษทีค่ะ คุณชื่ออะไรนะ?” Sarah ถามพลางมองมาที่ Maxine อย่างเย็นชา

“Maxine ค่ะ” เธอตอบอย่างสงบ “ฉันหัวเราะเพราะคุณกำลังพูดถึงเหตุผลที่คุณคิดว่า Phoenix สำคัญ แต่ในห้องนี้ เรากำลังพยายามหาทางว่าจะ deploy Phoenix ให้สำเร็จได้อย่างไรต่างหากค่ะ”

“ซึ่งมันก็ยังไปได้ไม่ค่อยดีเท่าไหร่ด้วย” Wes พึมพำออกมาดังพอที่จะได้ยิน ตามมาด้วยเสียงหัวเราะที่ดูประหม่าของบางคน

“ฉันเห็นว่าพวกคุณบางคนยังไม่ยอมรับในภารกิจของเรา” Sarah กล่าวพลางประเมินทุกคนในห้อง “เอาล่ะ อย่างที่ฉันได้พูดไว้ในงาน Town Hall ทักษะที่พาเรามาถึงจุดนี้ ไม่จำเป็นต้องเป็นทักษะเดิมที่จะพาเราไปยังจุดที่เราต้องการจะไป ในฐานะผู้นำ เราจำเป็นต้องพิจารณาว่าเรามีคนที่ใช่รันอยู่บนรถบัสคันนี้หรือเปล่า ฉันจะคอยรายงานความคืบหน้าให้ Steve ทราบเรื่อยๆ ฉันรู้ว่าการปล่อยตัวครั้งนี้มีความสำคัญต่อเขามากเป็นการส่วนตัว”

เมื่อได้ยินชื่อของ Steve Chris ก็มอง Maxine ด้วยสายตาไม่อยากจะเชื่อแล้วเอามือกุมหน้าทั้งสองข้าง “ทำตัวไม่ให้เป็นจุดเด่นได้ดีมากเลยนะ Maxine” เธอประชดตัวเองในใจ

“โอเค พอได้แล้ว Sarah” Bill พูดพลางลุกขึ้น “ไปรายงาน Steve เกี่ยวกับปัญหาพวกนี้กันเถอะ แล้วปล่อยให้ทีมงานหาทางดำเนินการปล่อยตัวกันต่อไป พวกเราอยู่ที่นี่ก็มีแต่จะขวางทางเปล่าๆ”

“ใช่ค่ะ Steve ต้องได้รับรู้เรื่องนี้” เธอพูด Sarah หันหลังเตรียมจะออกไป แต่แล้วก็หันกลับมามอง Maxine “ฉันชอบที่คุณพูดในสิ่งที่คิดนะ ถ้าคุณว่างช่วงไหนในสัปดาห์นี้ มาทานมื้อเที่ยงกันเถอะ ฉันอยากรู้จักคุณให้มากขึ้น”

“อะไรกันเนี่ย...” Maxine ตัวแข็งทื่อเหมือนกวางที่จ้องไฟหน้ารถ

“ในฐานะผู้หญิงด้วยกัน เราต้องสามัคคีกันไว้ จริงไหมคะ?” Sarah พูดพร้อมกับขยิบตาให้

ด้วยรอยยิ้มที่แข็งค้าง Maxine ตอบว่า “เอิ่ม... ขอบคุณค่ะ... ฉัน... ฉันยินดีมากค่ะ” ทันทีที่พูดออกไปเธอก็เกลียดตัวเองขึ้นมาทันที และรู้สึกอับอายที่มีคนจำนวนมากเห็นเธอโกหกหน้าตายแบบนั้น

“ตกลงตามนั้นค่ะ” Sarah ตอบกลับด้วยรอยยิ้มที่อบอุ่น “และถ้าคุณต้องการใครสักคนมาเป็นที่ปรึกษา (mentor) ฉันก็ยินดีมากค่ะ”เธอมองโทรศัพท์แล้วพูดว่า “นั่น Steve โทรมาพอดี เขาต้องการอะไรบางอย่างจากฉัน ฉันขอตัวก่อนนะคะ จำไว้นะคะ เราทุกคนต้องการความมองโลกในแง่ดี”

เมื่อ Sarah จากไป Maxine ก็พ่นลมหายใจออกมาแรงๆ ไม่อยากจะเชื่อเลยว่าเกิดอะไรขึ้น เธอรู้ดีว่าการมีเครือข่าย (network) ที่ดีนั้นสำคัญเพียงใด การรู้จักคนที่สามารถช่วยให้งานสำคัญลุล่วงได้นั้นเป็นเรื่องดี แต่เธอก็ไม่ได้ตื่นเต้นสักเท่าไหร่ที่จะต้องมาพัวพันกับ Sarah ไม่ว่าเธอจะมีอิทธิพลมากแค่ไหนก็ตาม Maxine เป็นคนเลือกคบคนอย่างพิถีพิถันมาก

ในชั่วโมงถัดมา Maxine เดินดูไปตามกลุ่มต่างๆ ขณะที่ทีมปล่อยตัวขนาดใหญ่พยายามทำความเข้าใจอย่างถ่องแท้ว่าต้องใช้อะไรบ้างเพื่อรองรับการเปิดตัว Phoenix มีเทคโนโลยีอย่างน้อยสิบสองชุด (technology stacks) ที่ต้องถูก deploy ซึ่งมากกว่าที่ Maxine เคยคาดการณ์ไว้ตอนที่เธอทำ "โบราณคดีการ build" (build archaeology)

เธอรู้เกี่ยวกับแอปพลิเคชันเซิร์ฟเวอร์ต่างๆ ทั้งบน Windows และ Linux รวมถึงแอปพลิเคชันฝั่งหน้าบ้าน (front-end) ที่รันบนเว็บ แต่เธอลืมไปสนิทเลยว่ามีแอปมือถืออีกสองแอป (ตัวหนึ่งสำหรับ iPhone และอีกตัวสำหรับ Android) และพวกมันทั้งหมดต่างก็เรียกใช้งานระบบหลังบ้าน (back-end systems) อย่างน้อยสิบระบบที่กระจายอยู่ทั่วทั้งธุรกิจ ซึ่งทุกระบบจำเป็นต้องมีการแก้ไขเพื่อให้รองรับ Phoenix

เธอกันลืมไปอีกว่าเมื่อรวมทีมปฏิบัติการ (Operations) เข้ามาด้วย จำนวนทีมที่เกี่ยวข้องจะเพิ่มขึ้นมากกว่าสองเท่า เพราะการจะทำให้แอปพลิเคชันทั้งหมดรันได้ใน production นั้นต้องอาศัยทีมบริหารจัดการเซิร์ฟเวอร์ (server administration), ทีมจัดการระบบเสมือน (virtualization), ทีมคลาวด์ (cloud), ทีมพื้นที่จัดเก็บข้อมูล (storage), ทีมเครือข่าย (networking)...

ทั้งหมดนี้ทำให้ Maxine นึกขึ้นได้ว่าทำไมการรันระบบใน production (production deployments) ถึงเป็นหนึ่งในกิจกรรมที่ซับซ้อนที่สุดขององค์กรเทคโนโลยี เพราะมันต้องการการประสานงานอย่างมากระหว่างส่วนงานต่างๆ มากมาย และ Phoenix ก็ไม่ใช่การ deployment ธรรมดาๆ แต่มันถูกออกแบบมาเพื่อเปลี่ยนวิธีที่เกือบทุกส่วนขององค์กรใช้โต้ตอบกับลูกค้า

ยิ่ง Maxine ได้ยินมากเท่าไหร่ เธอก็ยิ่งรู้สึกแย่ลงเท่านั้น มันดูเหมือนจะเป็นไปไม่ได้เลยที่พวกเขาจะทำทุกอย่างให้ถูกต้องได้ในครั้งแรกด้วยชิ้นส่วนที่เคลื่อนไหวมากมายขนาดนี้ แค่การจะขอ environment สักตัว Maxine ยังต้องเปิด Ticket เป็นสิบๆ ใบและยังไม่สำเร็จเลย เธอคาดเดาว่าการ deploy Phoenix คงต้องใช้ Ticket เป็นร้อยหรืออาจจะถึงพันใบเลยทีเดียว

ผู้จัดการโครงการในกลุ่มที่เธอนั่งอยู่พูดว่า “เราต้องเปลี่ยนกฎในไฟร์วอลล์ (firewall changes) กองโตด้วยไม่ใช่เหรอ? ไม่ใช่แค่ทราฟฟิก (traffic) ภายนอกนะ ฉันไม่คิดว่าระบบพวกนี้บางส่วนเคยคุยกันมาก่อนเลยด้วยซ้ำ...”

Maxine เลิกคิ้วขึ้น เธอได้ยินเสียงครวญครางรอบๆ กลุ่ม “โอ้ เยี่ยมเลย ทีมไฟร์วอลล์มักจะใช้เวลาอย่างน้อยสี่สัปดาห์ในการดำเนินการตามคำขอแก้ไข (change requests)” ผู้หญิงที่ Maxine เพิ่งรู้ว่าชื่อ Patty กล่าว “คุณคิดว่ากระบวนการจัดการการเปลี่ยนแปลง (change management) ของเราช้านักเหรอ? เรานี่เร็วกว่านรกเลยนะถ้าเทียบกับฝ่ายความปลอดภัยข้อมูล (Information Security)”

ทันใดนั้น Maxine ก็ได้ยินเสียงประตูเปิดกระแทกดังปังจากข้างหลังเธอ Patty เงยหน้าขึ้นมอง “นั่นไง พูดถึงผี ผีก็มาเลย นี่คือ John หัวหน้าฝ่ายความปลอดภัยข้อมูล (CISO) ของเรา งานนี้สนุกแน่...” เธอพูด

John อายุสามสิบปลายๆ เขาดูอวบเกินมาตรฐานไปสักยี่สิบปอนด์ แต่เสื้อผ้าของเขาก็ยังดูหลวมโพรกเหมือนในหนังคาวบอยตะวันตก John ขนาบข้างด้วยวิศวกรสองคน—ชายหนึ่งคนและหญิงหนึ่งคนที่เธอดูคุ้นหน้าคุ้นตา “ในที่สุดผมก็เจอพวกคุณเสียที” John พูดเยาะๆ พลางมองไปรอบๆ ราวกับว่าเขาเป็นนายอำเภอที่เพิ่งตามล่านักล่าค่าหัวเจอ “ผมมาที่นี่เพื่อคุยเรื่องแผนบ้าๆ ที่จะ deploy แอปพลิเคชัน Phoenix การปล่อยตัวครั้งนี้จะเกิดขึ้นได้ก็ต่อเมื่อข้ามศพผมไปก่อนเท่านั้น”

ผู้หญิงที่อยู่ข้างหลัง John ดูมีสีหน้าอับอายทันที ราวกับว่าเธอเคยเห็น John พูดอะไรแบบนี้มาก่อน John พูดต่อ “โปรเจกต์ Phoenix มีโค้ดใหม่เป็นล้านบรรทัด และเราไม่สามารถปล่อยมันออกไปได้อย่างมีความรับผิดชอบโดยที่ทีมของผมยังไม่ได้ทดสอบหาช่องโหว่ (vulnerabilities) เลย เราเพิ่งออกมาจากการประชุมที่น่าสนใจมากๆ กับทีมตรวจสอบ (auditors) และเชื่อผมเถอะ พวกเขาจะไม่ใจดีแน่ถ้าเราเอาอะไรบางอย่างขึ้น production ที่จะทำให้สถานะการปฏิบัติตามกฎเกณฑ์ (compliance) ของเราตกอยู่ในอันตราย”

“ผมได้รับข้อมูลที่ค่อนข้างน่าเชื่อถือว่า CIO และ VP of IT Operations เพิ่งถูกไล่ออกเพราะผลการตรวจสอบด้าน compliance ที่ไม่สามารถยอมรับได้อีกต่อไป” John กล่าวต่อ “ขอให้เรื่องนี้เป็นคำเตือนสำหรับพวกคุณว่า compliance ไม่ได้เป็นเพียงข้อผูกมัดทางศีลธรรมหรือสัญญาจ้างงานเท่านั้น... แต่มันคือกฎหมายด้วย”

Maxine สงสัยว่า John ซ้อมพูดประโยคนี้มาแล้วกี่ครั้ง แต่มันก็เป็นประโยคที่ฟังดูดีจริงๆ เธอต้องยอมรับ

Kirsten พูดจากหน้าห้อง “อย่างที่คุณทราบ การตัดสินใจส่งมอบ Phoenix มาจากระดับบนสุดโดยตรง—Steve Masters ซีอีโอ และ Sarah Moulton รองประธานฝ่ายปฏิบัติการร้านค้า อันที่จริง Sarah เพิ่งอยู่ที่นี่เพื่อย้ำเตือนพวกเราเรื่องนี้ การปล่อยตัวมีกำหนดเริ่มตอนห้าโมงเย็นพรุ่งนี้ เพื่อให้ทุกอย่างออนไลน์พร้อมตอนที่ร้านค้าเปิดในเช้าวันเสาร์”

“นั่นคือสิ่งที่คุณคิดนะ Kirsten” John กล่าว “ผมกำลังจะไปคุยกับ Steve เดี๋ยวนี้แหละ มั่นใจได้เลยว่าผมจะหยุดความบ้าคลั่งนี้เอง”

เขาหันไปหา Wes “คุณก็อยู่ในที่ประชุมกับพวก auditor—บอกพวกเขาไปสิว่าเรื่องนี้ซีเรียสแค่ไหน และทำไมไม่มีทางที่การ release ขึ้น production จะเกิดขึ้นได้ในวันพรุ่งนี้!”

Wes ตอบกลับอย่างรวดเร็ว “ไม่เอาล่ะ อย่าดึงผมเข้าไปเกี่ยวเลย John รถไฟขบวนนั้นออกจากสถานีไปแล้ว และคุณบีบยาสีฟันกลับเข้าหลอดไม่ได้หรอก สิ่งเดียวที่เราทำได้คือหาวิธีไม่ให้จรวดลำนี้ระเบิดคาแท่นยิงและฆ่าเราทุกคนตายเกลี้ยง ขออภัยที่ใช้คำอุปมามั่วไปหน่อยนะ” เขาพูดพร้อมกับหัวเราะเสียงดัง พลางมองไปรอบๆ ห้องเพื่อดูว่าใครจะเห็นด้วยกับเขาบ้าง

“หรือว่านั่นจะเป็นคำอุปไมย (simile) นะ?” จู่ๆ Wes ก็ถามขึ้นมาพร้อมสีหน้าสงสัย

ผู้หญิงที่อยู่ข้างหลัง John ตอบด้วยเสียงเรียบเฉย “มันคือคำอุปมา (metaphor) ค่ะ Wes เมื่อคุณพูดว่าบางอย่าง ‘คือกองขยะ’ นั่นคืออุปมา แต่ถ้าคุณพูดว่าบางอย่าง ‘เหมือนกองขยะ’ นั่นคืออุปไมยค่ะ”

“ขอบใจนะ Shannon” เขาพูดพร้อมรอยยิ้มกว้าง “ฉันมักจะสับสนสองคำนี้อยู่เรื่อยเลย”

John จ้องเขม็งไปที่ Shannon แล้วพูดด้วยความโกรธใส่ Wes “ผมไม่ปล่อยคุณไว้แน่ Wes มันคือความรับผิดชอบทางศีลธรรมของคุณที่จะต้องหยุดการปล่อยตัวครั้งนี้!” เขาหันไปตะโกนใส่ทุกคนในห้อง “มันคือความรับผิดชอบทางศีลธรรมของพวกคุณทุกคนที่จะต้องหยุดการปล่อยตัวครั้งนี้! พวกคุณทุกคนรู้ว่าผมยืนอยู่จุดไหน—อย่างที่ผมบอก การปล่อยตัวครั้งนี้จะเกิดขึ้นได้ก็ต่อเมื่อข้ามศพผมไปก่อนเท่านั้น”

Wes พึมพำเบาๆ “เราก็ได้แต่หวังแบบนั้นแหละ”

Maxine ได้ยินเสียงหัวเราะคิกคักอย่างประหม่าขณะที่ John และกลุ่มของเขาเดินออกไป Kirsten ยืนขึ้นด้วยท่าทางที่ดูอึดอัดเล็กน้อย “เอาล่ะ ฉันควรใช้โอกาสนี้บอกว่าเราได้ให้คำมั่นสัญญาว่าจะ deploy Phoenix ในวันศุกร์ แต่ถ้าใครในที่นี้รู้สึกว่ามี... เอิ่ม พันธะทางศีลธรรมที่จะไม่เข้าร่วมในการปล่อยตัวครั้งนี้ โปรดแจ้งให้ฉันทราบด้วยนะคะ”

Wes หัวเราะเบาๆ “Kirsten การเลือกเดินเส้นทางนี้เกือบจะเรียกได้ว่าเป็นสิ่งที่โง่ที่สุดที่ผมเคยเห็นมาตลอดอาชีพการงานของผมเลย... แต่เพื่อสนับสนุนทีม ผมสัญญาว่าพวกเราทุกคนจะทำเท่าที่ทำได้” ด้วยท่าทางที่เหนื่อยล้าและยอมจำนน เขาพูดต่อว่า “รีบจัดการมันให้จบๆ ไปเถอะ”

Maxine มองไปรอบๆ พลางนึกถึงการปรากฏตัวที่กะทันหันและดูเหนือจริงของ Sarah และตามด้วย John เธอทำให้นึกถึงหนังสือเรื่อง Redshirts ของ John Scalzi และ Wil Wheaton ซึ่งเป็นหนังสือตลกที่อิงจักรวาลคล้ายๆ กับ Star Trek มันเขียนจากมุมมองของพวก "เสื้อแดง" (redshirts) ซึ่งเป็นตัวละครระดับต่ำที่ไม่มีชื่อและเดินไปมาอยู่ในฉากหลังของเรื่อง ผู้ที่เรียนรู้ว่าการมีปฏิสัมพันธ์กับเหล่านายทหารบนสะพานเดินเรือนั้นเป็นข่าวร้ายเสมอ ใครก็ตามที่ถูกเลือกให้ลงไปบนดาวพร้อมกับเหล่านายทหารมักจะถูกกำหนดให้ตายในรูปแบบประหลาดๆ ในหนังสือพวกเสื้อแดงจะติดตั้งเซ็นเซอร์ไว้ทุกที่เพื่อตรวจจับว่ากัปตัน Kirk หรือผู้การ Spock จะลงมาที่ชั้นล่างเมื่อไหร่ เพื่อที่พวกเขาจะได้แอบซ่อนตัวได้ทัน

เธอรู้สึกท้อแท้ที่เห็นว่าเหล่าผู้บริหารของ Parts Unlimited หรือเหล่านายทหารบนสะพานเดินเรือนั้น ช่างตัดขาดจากงานประจำวันของพวก "เสื้อแดง" ในองค์กรเทคโนโลยีเหลือเกิน การที่ Sarah มาย้ำเตือนทุกคนว่า "การกู้โลก" ขึ้นอยู่กับ Phoenix นั้นไม่ได้ช่วยอะไรเลย และการที่ John มาอ้างเรื่อง "สำนึกทางศีลธรรม" ก็ไม่ได้ช่วยอะไรเหมือนกัน

เราทุกคนรู้ดีว่าภัยคุกคามที่บริษัทกำลังเผชิญนั้นเป็นเรื่องจริง เธอคิด หน้าที่ของลูกเรือบนสะพานเดินเรือคือการทำให้แน่ใจว่ากลยุทธ์ของบริษัทนั้นใช้ได้จริง ไม่ใช่มาคอยเตือนเรื่องกลยุทธ์หรือมาคอยจ้ำจี้จำไชทุกคนจนไม่เป็นอันทำงาน หน้าที่ของพวกเขาควรจะเป็นการทำให้แน่ใจว่าทุกคนสามารถทำงานของตัวเองให้ลุล่วงได้

เรื่องทั้งหมดนี้มันกลายเป็นแบบนี้ไปได้ยังไงกันนะ?

Maxine ลากสังขารตัวเองกลับไปที่โต๊ะทำงานพร้อมกับแซนด์วิชหนึ่งชิ้น เธอเหนื่อยล้าจากการประชุมปล่อยตัว Phoenix ที่ไม่มีที่สิ้นสุด แวดล้อมไปด้วยทุกคนที่ถูกดูดเข้าไปในวังวนของการปล่อยตัวนี้เหมือนกัน แต่ที่แปลกคือเธอยังเห็นบางคนนั่งทำงานที่โต๊ะอย่างมีความสุข ราวกับว่าเป็นวันธรรมดาวันหนึ่ง

ด้วยความอยากรู้อยากเห็น เธอจึงถามคนหนึ่งในนั้นว่าทำไมเขาถึงดูไม่กังวลเลย เขาตอบกลับมาด้วยสีหน้าฉงน “ผมเป็นนักพัฒนาครับ—ผมทำงานที่ฟีเจอร์ ผมส่งให้ทีม QA และ Ops ทดสอบและ deploy จากนั้นผมก็เริ่มทำฟีเจอร์สำหรับ release ถัดไป แค่นี้ผมก็ยุ่งจะตายอยู่แล้วครับ”

Maxine เดินออกมาพลางอึ้งกับสิ่งที่เขาพูด ตลอดอาชีพการงานของเธอ เธอไม่เคยโยนภาระเรื่องการทดสอบและการ deployment ให้คนอื่นทำทั้งหมดเลย คุณจะสร้างสิ่งที่มีคุณค่าได้อย่างไรถ้าคุณไม่ได้รับผลตอบรับ (feedback) ว่ามันถูกใช้งานอย่างไร? เธอคิดในใจ

เมื่อเธอมาถึงโต๊ะทำงาน Kurt นั่งอยู่ที่นั่นพร้อมกับแฟ้มสามห่วงสีดำ เมื่อเห็นเธอเขาก็ส่งยิ้มกว้างให้ “ผมมีของขวัญมาให้คุณครับ!”

มันคือเอกสารแปดสิบหน้าที่มีการแบ่งหมวดหมู่ไว้อย่างดี แค่กวาดตาดูหัวข้อต่างๆ ก็ทำให้หัวใจเธอพองโต—มันคือคำแนะนำการทำ Phoenix build ที่ประกอบขึ้นมาอย่างประณีต พร้อมลิงก์ไปยังเอกสาร, license keys, บทช่วยสอนแบบทีละขั้นตอน (step-by-step tutorials) และยังมีลิงก์ไปยังวิดีโออีกเพียบ อันหนึ่งมีชื่อว่า “วิธีทำให้ uberjar ของคุณรันได้ใน production web cluster ที่สุดแสนจะบ้าบอและพังพินาศของเรา (8 นาที)” และอีกอันคือ “วิธีมอนิเตอร์แอปของคุณแม้จะโดนทีม Ops ขัดขวาง (12 นาที)”

เธอเห็นรหัสเปิดใช้งาน (activation codes) และ license keys ที่เป็นเลขฐานสิบหกยาว ยี่สิบตัวอักษร เธอเห็นชื่อผู้ใช้และรหัสผ่านชั่วคราวสำหรับ network shares และที่เจ๋งที่สุดคือ มีลิงก์ไปยังคลัสเตอร์ของ virtual machine (VM) แบบสี่โหนด (four-node) ที่ให้สิทธิ์เข้าถึงระดับผู้ดูแลระบบ (administrative access)! นั่นหมายความว่า Maxine จะสามารถทำอะไรก็ได้ที่เธอต้องการโดยไม่ต้องไปกรอก Ticket ในระบบ service desk อีกแล้ว!

เธอพูดไม่ออก เธอรู้สึกน้ำตาคลอเบ้า แค่เพราะเรื่อง license keys เนี่ยนะ?

เธอสงสัยอยู่ครู่หนึ่งว่าเธอเสียสติไปแล้วหรือเปล่า แต่หลังจากที่ต้องติดอยู่ในโปรเจกต์ Phoenix การที่มีใครสักคนมาใส่ใจจริงๆ ว่าเธอต้องการอะไรมันช่าง... เกินความคาดหมายและน่าซาบซึ้งใจอย่างที่สุด

Maxine นึกถึงตอนที่เธอและครอบครัวไปเป็นอาสาสมัครช่วยเหลือครอบครัวผู้ลี้ภัยเมื่อวันก่อน เธอจำได้ว่าลูกๆ วัยสิบขวบและแปดขวบของเธอมีปฏิกิริยาอย่างไรเมื่อเห็นครอบครัวเหล่านั้นร้องไห้ตอนที่ได้รับอาหาร สบู่ และผงซักฟอก

ไม่มีอะไรจะคุ้มค่าไปกว่าการมอบบางสิ่งให้กับคนที่ต้องการความช่วยเหลือจากคุณจริงๆ เธอต้องการความช่วยเหลือ และเธอก็ได้รับมัน

ด้วยความปิติยินดี Maxine พลิกดูเอกสารไปเรื่อยๆ เธอเห็นรายการยาวเหยียดของ Windows registry keys ที่ต้องตั้งค่า “ไม่ต้องกังวลนะ Maxine” Kurt พูดพลางทำเป็นไม่สนใจปฏิกิริยาที่ดูตื้นตันเกินเหตุของเธอ “คุณมีเวอร์ชันอิเล็กทรอนิกส์ในอินบ็อกซ์แล้ว ดังนั้นคุณสามารถก๊อปปี้และวางทุกอย่างได้เลย”

เขาพูดพร้อมแววตาที่เป็นประกาย “และมีลิงก์ไปยังหน้า Wiki ที่คุณสามารถจดบันทึกเพิ่มเติมได้ถ้าเราพลาดอะไรไป มีคนกลุ่มหนึ่งที่ขอบคุณผลงานของคุณมากจริงๆ นะ พวกเราพยายามจะไขปริศนาการทำ build ของ Phoenix มาหลายเดือนแล้ว! แต่เราไม่เคยได้มีเวลาทำเรื่องนี้แบบเต็มเวลาเลย บันทึกของคุณช่วยให้พวกเรารวมชิ้นส่วนต่างๆ เข้าด้วยกันได้ เรื่องนี้ช่วยประหยัดเวลาทำงานของเราไปได้หลายเดือนเลยล่ะ!”

Maxine ขมวดคิ้ว เธอไม่รู้เลยว่า Kurt กำลังพูดถึงเรื่องอะไร แต่เธอก็ไม่ได้สนใจ “ขอบคุณมากจริงๆ ค่ะ! ฉันบอกไม่ถูกเลยว่าเรื่องนี้มีความหมายกับฉันแค่ไหน ฉันจะตอบแทนคุณได้ยังไงบ้างคะ?”

“อะไรก็ได้ที่ช่วยวิศวกรที่ทำงานหนักอีกคน ที่กำลังพยายามช่วยวิศวกรคนอื่นๆ ให้ทำงานได้อย่างมีประสิทธิภาพครับ” Kurt พูดพลางหัวเราะ แต่แล้วเขาก็เปลี่ยนสีหน้าเป็นจริงจัง “ถ้าคุณอยากเจอคนที่ทำให้เรื่องนี้เกิดขึ้น ทั้งที่ต้องเจอความยากลำบากและอุปสรรคขวางกั้นมากมายที่ปกติจะขัดขวางความสำเร็จที่ยิ่งใหญ่แบบนี้ ให้มาที่ Dockside Bar ตอนห้าโมงเย็นวันนี้นะครับ พวกเราจะเจอกันที่นั่นทุกวันพฤหัสบดี”

“เดี๋ยวก่อนนะคะ” Maxine พูดขึ้นด้วยความสงสัย “ถ้ามันใช้งานได้จริง ทำไมทุกคนถึงไม่ใช้มันล่ะคะ?”

“เป็นคำถามที่ดีมากครับ และคำตอบก็น่าตกใจทีเดียว” Kurt กล่าว “สั้นๆ ก็คือ ‘ทีม build อย่างเป็นทางการ’ ไม่ได้อนุญาตให้ใช้สิ่งเหล่านี้ครับ พวกเขาดูเหมือนจะมองว่าความพยายามของเราเป็นสิ่งที่น่ารำคาญ หรือแย่กว่านั้นคือมองว่าเป็นคู่แข่ง ซึ่งในคืนก่อนหน้าการเปิดตัวแอปพลิเคชันที่ใหญ่ที่สุดและอาจเสี่ยงที่สุดในประวัติศาสตร์ของบริษัท มันช่างดูแปลกประหลาดมากใช่ไหมครับ?”

“แต่ยังไงก็ตาม ถ้าคุณชอบสิ่งที่เราทำ ก็เชิญแบ่งปันให้ใครก็ได้ที่ต้องการใช้ได้เลยครับ คืนนี้ผมจะอธิบายเพิ่ม มาจอยกันตอนห้าโมงนะครับ มีคนกลุ่มหนึ่งอยากเจอคุณใจจะขาดแล้ว!” เขากล่าว “และขอให้โชคดีกับการ build นะครับ!”

Maxine เปิดหน้าต่างเทอร์มินัล (terminal window) บนแล็ปท็อปของเธอและเริ่มทำตามคำแนะนำที่ Kurt ให้มา ความตื่นเต้นของเธอเพิ่มขึ้นเมื่อเธอตระหนักว่านี่อาจเป็น Dev environment ที่ใช้งานได้จริงเสียที

เธอรู้สึกร่าเริงสุดขีดเมื่อสามารถล็อกอินและพิมพ์คำว่า “make” ในคอมมานด์ไลน์ (command line) ซึ่งเริ่มมีการแสดงผลลัพธ์ (output) ที่ดูดีไหลพรั่งพรูออกมาบนหน้าจอของเธอ

เธอดีใจมากที่ได้เห็นไฟล์ต่างๆ กำลังถูกคอมไพล์ (compiled), ไบนารี (binaries) ถูกลิงก์เข้าด้วยกัน, โปรแกรมถูกก๊อปปี้, เครื่องมือ build ถูกติดตั้งและรัน... ผลลัพธ์ยังคงรันต่อไปเรื่อยๆ อย่างต่อเนื่อง...

ที่น่าทึ่งคือ มันยังคง build ต่อไปอีกสิบนาที... สิบห้านาที... สามสิบนาที... เธอโล่งใจที่มันยังคงทำงานต่อไปได้โดยไม่มีข้อผิดพลาด แต่ก็เริ่มกังวลกับขนาดของ Phoenix build มันใหญ่โตมหาศาลจริงๆ

สี่สิบห้านาทีผ่านไป เธอทนไม่ไหวจนต้องไปเข้าห้องเย็น เธอไม่กล้าเดินไปไหนเพราะกลัวจะพลาดอะไรบางอย่างไป เธอรีบไปและรีบกลับมา แล้วก็โล่งใจที่เห็นว่าการ build ยังไม่พัง และยังคงสร้างผลลัพธ์ยาวเหยียดในเทอร์มินัลของเธอ

เธอเลื่อนดูประวัติเพื่อดูว่าพลาดอะไรที่น่าสนใจไปไหม เธอตัดสินใจข้ามการประชุมทีมปล่อยตัวครั้งถัดไปเพียงเพื่อจะรอดูการ build นี้ต่อ ซึ่งดูเหมือนจะไม่ค่อยมีความรับผิดชอบเท่าไหร่ แต่เธอรู้ดีว่าการมีกระบวนการ build ที่ยอดเยี่ยมคือหัวใจสำคัญของการมีกระบวนการปล่อยโค้ด (code deployment) และการ release ที่ดี และบางทีด้วยความช่วยเหลือจากผู้มีพระคุณลึกลับเหล่านี้ เธออาจจะใกล้จะพิชิต Phoenix build ได้แล้วในที่สุด

ผลลัพธ์จากการ build นั้นดูแล้วเหมือนต้องมนต์สะกดและให้ความรู้แก่เธอ เพราะเธอเพิ่งเคยเห็นส่วนประกอบบางอย่างของ Phoenix เป็นครั้งแรก มีทั้งไฟล์ Java JAR, .NET binaries, สคริปต์ Python และ Ruby และสคริปต์ bash อีกเพียบ

เดี๋ยวนะ นั่นมันหน้าต่าง remote shell และ installer ที่เด้งขึ้นมาใช่ไหม? ก่อนที่เธอจะทันได้ดูว่ามันคืออะไร หน้าต่างนั้นก็หายไป ความทึ่งและความกังวลของ Maxine ต่อขนาดและความหลากหลายของ Phoenix ยังคงเพิ่มขึ้นเรื่อยๆ

เธอกำลังจะเลื่อนกลับไปดูข้างบนตอนที่เห็น Eclipse กำลังถูกดาวน์โหลดมาจากที่ไหนสักแห่ง อะไรกันเนี่ย? เธอคิด ยี่สิบนาทีต่อมา เธอสาบานได้ว่าเห็นตัวติดตั้ง InstallShield แวบผ่านไป แต่เธอก็รู้ตัวว่าเริ่มเหนื่อยและอาจจะตาฝาดไปเอง

บอกตามตรงว่าหลังจากนั่งดู build output มาอีกชั่วโมงหนึ่ง เธอเริ่มมีปัญหาในการจดจ่อกับหน้าจอ แต่เธอเห็นบุคลิกและเทคโนโลยี (tech stacks) ที่แตกต่างกันของแต่ละทีมที่ทำงานใน Phoenix ได้อย่างชัดเจน เธอไม่คิดเลยว่าจะมีเยอะขนาดนี้

“นี่มันบ้าไปแล้ว” เธอคิด “ไม่มีทางที่ทีมจะเยอะขนาดนี้ทำงานใน Phoenix ใช่ไหม?” และเธอสงสัยว่าจะมีใครสักคนเข้าใจระบบโดยรวมได้อย่างไร โดยเฉพาะเมื่อมันถูกสร้างขึ้นจากเทคโนโลยีที่หลากหลายขนาดนี้

ปกติ Maxine ไม่ใช่แฟนพันธุ์แท้ของการกำหนดมาตรฐานที่เข้มงวดเกินไป แต่เธอก็ไม่ชอบการที่ทุกคนเลือกใช้เครื่องมืออะไรก็ได้ตามใจชอบในขณะนั้น เพราะทุกการตัดสินใจคือพันธะที่จะต้องดูแลรักษามันไปอีกหลายปีหรือหลายทศวรรษ—สิ่งเหล่านี้เป็นการตัดสินใจที่ส่งผลกว้างไกลเกินกว่าแค่ทีมเดียว

เหมือนนักพัฒนาส่วนใหญ่ เธอมีความเชื่อโชคลางว่าถ้าเธอหยุดดู build มันจะพัง ในที่สุด เกือบสามชั่วโมงหลังจากที่เธอเริ่ม build เธอก็เห็นหน้าจอการเลื่อนแสดงผลหยุดลง หัวใจเธอเต้นรัวเมื่ออ่านเจอว่า:

builder: ERROR: missing file: credentials.yaml

ให้ตายเถอะ! เธอเดาว่าเธอต้องใช้ข้อมูลล็อกอิน (credential) ที่เธอยังไม่มี

เธอส่งข้อความหา Kurt และเขาตอบกลับมาอย่างรวดเร็ว: "อ้อ ใช่ครับ สำหรับเรื่องนั้นคุณต้องเปิด Ticket เพื่อผูกบัญชีล็อกอินของคุณเข้ากับบัญชี Active Directory ครับ มีแค่ Susan เท่านั้นที่ออกให้ได้ เดี๋ยวผมส่งข้อมูลติดต่อให้นะครับ"

แทนที่จะส่งอีเมลหา Susan Maxine ตัดสินใจเดินไปที่โต๊ะของ Susan และได้เรียนรู้ว่าไฟล์ที่หายไปนี้บรรจุใบรับรองการเข้ารหัส (cryptographic certificate) ที่มาจากกลุ่มความปลอดภัยที่อยู่ห่างไกลออกไป Susan ค้นหาอีเมลเก่าๆ หลายปีเพื่อหาวิธีขอใบรับรองอันใหม่ เมื่อเธอหาเจอ Maxine ก็ถ่ายรูปที่อยู่อีเมลนั้นด้วยโทรศัพท์ของเธอ

เธออยู่ใกล้ความสำเร็จในการทำ Phoenix build มากๆ แล้ว!