วันศุกร์ผ่านไปอย่างรวดเร็วสำหรับ Maxine ขณะที่การเตรียมการปล่อยตัวฉุกเฉิน (emergency release) ยังคงดำเนินต่อไป เธอเห็นความโกลาหลไม่สิ้นสุดเมื่อทีม Dev, QA และ Ops พยายามจัดระเบียบชิ้นส่วนนับร้อยสำหรับการ deployment Dwayne พูดถูกจริงๆ เธอคิด และมันสายเกินไปแล้วที่เธอจะเปลี่ยนคำพนันในวงพนันเป็นวันอาทิตย์

ตอนห้าโมงเย็น การปล่อยตัวเริ่มต้นขึ้นตามกำหนดการ มีข่าวลือเกี่ยวกับความพยายามนาทีสุดท้ายที่จะยกเลิกมัน เพราะ William, Chris และ Bill หายตัวไปอย่างไร้ร่องรอย แต่ความหวังเหล่านั้นก็พังทลายลงเมื่อมีอีเมลจาก Sarah และ Steve ออกมา ยืนยันอย่างชัดเจนว่าการปล่อยตัวต้องดำเนินต่อไปตามกำหนดการ

Maxine ยังคงอยู่ที่ออฟฟิศตอนสี่ทุ่มคืนนั้น ถึงตอนนี้มีความรู้สึกตื่นตระหนกอย่างแท้จริงว่าสิ่งต่างๆ กำลังผิดพลาดอย่างหนัก ผิดพลาดอย่างวินาศสันตะโรจนแม้แต่ Dwayne ซึ่งเป็นคนที่มองโลกในแง่ร้ายที่สุดในวงพนันการปล่อยตัว Phoenix ยังพึมพำกับ Maxine ว่า “นี่มันแย่กว่าที่ผมคิดไว้ซะอีก”

นั่นคือตอนที่ Maxine เริ่มรู้สึกกลัวขึ้นมาจริงๆ

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

ในทางกลับกัน Brent ถูกดึงตัวไปทุกทิศทุกทาง เขาถูกเรียกตัวไปจัดการเกือบทุกปัญหา ตั้งแต่ฐานข้อมูลที่กำลังละลายไปจนถึงการช่วยคนแก้ไขไฟล์กำหนดค่า (configuration files) เมื่อเห็นเช่นนี้ Maxine จึงจัดตั้งทีมเพื่อทำหน้าที่เป็น "ผู้รักษาประตู" (goalie) คอยกันไม่ให้ใครมารบกวน Brent และคอยรับมือกับปัญหาที่ไม่จำเป็นต้องถึงมือเขา

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

แม้จะอยู่ท่ามกลางวิกฤตเช่นนี้ ผู้คนก็ยังคงนั่งเฉยๆ และรอคอย

พอถึงตีสอง ทุกคนก็ตระหนักว่ามีความเสี่ยงสูงมากที่พวกเขาจะทำระบบหน้าร้าน (point-of-sale) พังในร้านค้าเกือบพันแห่ง ซึ่งจะทำให้ Parts Unlimited ย้อนกลับไปสู่ยุคหิน และด้วยโปรโมชั่นทั้งหมดที่ฝ่ายการตลาดประโคมออกไป ร้านค้าจะเต็มไปด้วยลูกค้าที่โกรธแค้นซึ่งไม่สามารถซื้อสิ่งที่สัญญาไว้ได้

Brent ขอให้เธอเข้าร่วมทีม SWAT เพื่อหาวิธีเร่งความเร็วในการคิวรีฐานข้อมูล (database queries) ซึ่งยังคงช้ากว่าที่ควรจะเป็นเกือบพันเท่า เพื่อให้รองรับโหลด (load) ที่คาดไว้เมื่อร้านค้าเปิดในเช้าวันนั้น

เป็นเวลาหลายชั่วโมงที่เธอทำงานร่วมกับกลุ่มนักพัฒนา Phoenix และ DBA ของฝ่าย Ops โดยเปิด IDE และเบราว์เซอร์ค้างไว้ พวกเขาถึงกับอึ้งเมื่อพบว่าการคลิกเลือกหมวดหมู่สินค้าใน drop-down box เพียงครั้งเดียว ทำให้เกิด SQL queries ไหลทะลักเข้าฐานข้อมูลถึง 8,000 ครั้ง

พวกเขายังคงวุ่นอยู่กับการแก้ไขเรื่องนี้ตอนที่ Wes โผล่หัวเข้ามาในห้อง “Brent เรามีปัญหาแล้ว”

“ผมไม่ว่าง Wes” Brent ตอบโดยไม่เงยหน้าขึ้นจากแล็ปท็อปด้วยซ้ำ “ไม่นะ นี่เรื่องใหญ่” Wes พูด “ราคาหายไปจากสินค้าอย่างน้อยครึ่งหนึ่งบนเว็บไซต์อีคอมเมิร์ซและแอปมือถือ ตรงที่ควรจะแสดงราคามันว่างเปล่าหรือไม่ก็ขึ้นว่า ‘null’ มีภาพหน้าจออยู่ในแชนเนล #launch”

Maxine หน้าถอดสีขณะเปิดดูภาพหน้าจอ นี่มันร้ายแรงกว่าปัญหาคิวรีฐานข้อมูลช้าเยอะเลย เธอคิด

“ให้ตายเถอะ ผมพนันได้เลยว่าเป็นการอัปโหลดไฟล์ที่ผิดพลาดอีกครั้งจากทีมตั้งราคา” Brent กล่าวหลังจากจ้องหน้าจออยู่ครู่หนึ่ง Maxine โน้มตัวเข้าไปดูขณะที่ Brent เปิดหน้าจอผู้ดูแลระบบและตารางสินค้าต่างๆ ขึ้นมา—บางส่วนอยู่ในระบบ Phoenix และบางส่วนอยู่ในระบบที่เธอไม่รู้จัก

Maxine จดบันทึกขณะที่ Brent ไล่ดูไฟล์ล็อก (log files), รัน SQL queries กับฐานข้อมูล production, เรียกดูตารางเพิ่มเติมในแอปพลิเคชันต่างๆ... จนกระทั่งเขาเปิดหน้าต่างเทอร์มินัลและล็อกอินเข้าเซิร์ฟเวอร์ Maxine จึงถามว่า “คุณกำลังทำอะไรอยู่คะ?”

“ผมต้องตรวจสอบไฟล์ CSV ที่พวกเขาอัปโหลดเข้าแอปครับ” เขากล่าว “ผมคิดว่าน่าจะหาเจอในโฟลเดอร์ชั่วคราว (temporary directory) บนแอปพลิเคชันเซิร์ฟเวอร์เครื่องใดเครื่องหนึ่ง” Maxine พยักหน้าเห็นด้วย

เมื่อ Brent หรี่ตามองหน้าจอ Maxine ก็ทำตามด้วย มันเป็นไฟล์ข้อความแบบ comma-separated (CSV) ที่มีชื่อคอลัมน์ในแถวแรก—รหัสสินค้า (SKU), ราคาส่ง, ราคาป้าย, ราคาโปรโมชั่น, วันที่เริ่มโปรโมชั่น... “มันก็ดูปกติดีนี่” Brent พึมพำ

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

“ไอเดียดีครับ” เขากล่าว เธอจึงนำไฟล์นั้นเข้าโปรแกรม Excel และเครื่องมือโปรดอื่นๆ ของเธอ มันก็ดูปกติดี

ในขณะที่ Wes พยายามโทรหาผู้จัดการฝ่ายพัฒนาคนหนึ่ง Brent ก็พยายามหาสาเหตุว่าเกิดอะไรขึ้น ผ่านไปเกือบสามสิบนาทีเขาก็สบถออกมา “ไม่อยากจะเชื่อเลย มันคือ BOM!”

เมื่อเห็นสีหน้าที่งุนงงของ Maxine เขาก็ขยายความว่า “Byte-order mark ไงครับ!”

“บ้าน่า” Maxine พึมพำ พลางเปิดไฟล์นั้นขึ้นมาใหม่อีกครั้ง คราวนี้เปิดด้วย binary file editor เธอจ้องหน้าจออย่างตกตะลึงที่ตัวเองพลาดไป BOM คืออักขระตัวแรกที่มองไม่เห็นซึ่งบางโปรแกรมใส่ไว้ในไฟล์ CSV เพื่อระบุว่ามันเป็นแบบ big-endian หรือ little-endian เธอเคยโดนเรื่องนี้เล่นงานมาก่อนเหมือนกัน

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

ความพึงพอใจทางสติปัญญาที่เธอได้รับจากการไขปริศนานี้ได้หายวับไปอย่างรวดเร็ว เธอถาม Brent ว่า “เรื่องแบบนี้เคยเกิดขึ้นมาก่อนเหรอคะ?”

“คุณนึกไม่ถึงหรอกครับ” Brent กล่าวพลางกรอกตา “ปัญหาเปลี่ยนไปทุกครั้ง ขึ้นอยู่กับว่าใครเป็นคนสร้างไฟล์ ปัญหาที่พบบ่อยที่สุดช่วงหลังๆ คือไฟล์ที่มีขนาดเป็นศูนย์ หรือไฟล์ที่ไม่มีข้อมูลข้างในเลย และมันไม่ได้มีแค่ทีมตั้งราคานะครับ เรามีปัญหาเรื่องข้อมูลแบบนี้อยู่ทุกหนทุกแห่งเลย”

Maxine รู้สึกตกใจมาก สิ่งแรกที่เธอจะทำทันทีคือการเขียนแบบทดสอบอัตโนมัติ (automated tests) เพื่อให้แน่ใจว่าไฟล์อินพุต (input files) ทั้งหมดมีรูปแบบที่ถูกต้อง ก่อนที่จะอนุญาตให้พวกมันเข้าไปทำให้ฐานข้อมูล production เสียหาย และเพื่อให้แน่ใจว่ามีจำนวนแถวข้อมูลที่ถูกต้องอยู่ในไฟล์จริงๆ

“ให้ฉันเดานะคะ คุณเป็นคนเดียวที่รู้วิธีแก้ไขการอัปโหลดที่ผิดพลาดพวกนี้ใช่ไหม?” Maxine ถาม

“ใช่แล้ว” เธอได้ยินเสียง Wes พูดจากข้างหลัง “ถนนทุกสายมุ่งสู่ Brent” Maxine รีบจดบันทึกเพิ่มเติม ตั้งใจว่าจะต้องตรวจสอบเรื่องนี้และลงมือทำอะไรบางอย่างกับมันในภายหลัง

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

ตอนเจ็ดโมงเช้า Maxine กลับไปรวมทีมกับทีมฐานข้อมูล พวกเขายังคงพยายามเร่งความเร็วในการคิวรี—แต่มันสายเกินไปแล้ว มีการประกาศว่าร้านค้าในฝั่งตะวันออกเริ่มเปิดทำการแล้ว

การปล่อยตัว Phoenix ยังไม่ใกล้เคียงคำว่าเสร็จสมบูรณ์เลย “พวกเราเปิดตัวมาสิบสี่ชั่วโมงแล้ว แต่จรวดยังติดอยู่ในแท่งยิงอยู่เลย” Dwayne กล่าวอย่างหดหู่

Maxine ไม่รู้ว่าจะหัวเราะ ยิ้มเยาะ หรือจะอาเจียนดี—เวลาที่จรวดติดอยู่ในแท่งยิง มันเป็นสถานการณ์ที่อันตรายมาก เพราะในจุดนั้นจรวดได้ถูกจุดชนวนแล้วและอันตรายเกินกว่าจะเข้าไปใกล้

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

สำหรับ Maxine เวลาที่เหลือของวันเสาร์ผ่านไปอย่างเลือนลาง เธอไม่สามารถกลับบ้านได้ การเปิดตัว Phoenix เป็นมากกว่าแค่ระบบขัดข้องที่วินาศสันตะโร... มันเป็นตัวอย่างที่น่าทึ่งที่สุดของการสูญเสียข้อมูลในระบบ production (production data loss) เท่าที่ Maxine เคยเห็นมาเลย

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

Shannon ส่งข้อความหาทุกคนในกลุ่ม Rebellion ด้วยความตกใจว่าข้อมูลหมายเลขบัตรเครดิตของลูกค้าถูกส่งผ่านระบบโดยไม่มีการเข้ารหัส (in the clear)—แต่ในภาพรวมของหายนะครั้งนี้ มันก็เป็นแค่จุดด่างพร้อยอีกจุดหนึ่งในภัยพิบัติ Phoenix เท่านั้น

ตอนบ่ายสาม Kurt ส่งข้อความหาทุกคน: "ไม่ได้อยากจะซ้ำเติมกองขยะกองนี้นะ แต่ Dwayne ชนะพนันครับ ยินดีด้วยนะ Dwayne"

Dwayne ตอบกลับ: "ไม่คุ้มเลยว้อย! ให้ตายสิ..." เขาโพสต์รูปกองยางที่กำลังไฟลุกท่วม

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

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

ตั้งแต่เช้าวันเสาร์ เว็บไซต์อีคอมเมิร์ซของพวกเขาก็แครชอย่างต่อเนื่องภายใต้ทราฟฟิกของลูกค้าที่สูงเป็นประวัติการณ์ ในการประชุมอัปเดตสถานะ Sarah คุยโวว่าฝ่ายการตลาดทำหน้าที่ได้ยอดเยี่ยมเพียงใดในการโปรโมท Phoenix จากนั้นก็หันมาสั่งการให้ฝ่าย IT รับผิดชอบในส่วนของตัวเองบ้าง

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

ความเสียหายนั้นยากจะบรรยาย ระบบในร้านค้าส่วนใหญ่ยังคงใช้งานไม่ได้—ไม่ใช่แค่เครื่องคิดเงินหน้าร้านเท่านั้น แต่รวมถึงแอปพลิเคชันหลังบ้านเกือบทั้งหมดที่สนับสนุนพนักงานในร้านด้วย

ด้วยเหตุผลที่ยังคงทำให้ทุกคนงุนงง แม้แต่เว็บไซต์ของบริษัทและเมลเซิร์ฟเวอร์ (email servers) ก็ยังมีปัญหา ซึ่งยิ่งขัดขวางความสามารถในการส่งข้อมูลสำคัญไปยังคนที่ต้องการ—เพราะไม่ใช่ทุกคนจะเข้าถึงห้องแชทของเหล่านักพัฒนาได้

ในสถานการณ์แบบนี้ ความล้มเหลวทางเทคโนโลยีจะส่งผลกระทบต่อกันเป็นทอดๆ (cascade) ไปทั่วทั้งองค์กร เหมือนน้ำที่ไหลทะลักเข้าไปในเรือดำน้ำที่กำลังจม

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

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

“หึ” เขาครุ่นคิด “ผมสงสัยว่าเราจัดการจนทำลายอินเทอร์เฟซ (interface) ที่เชื่อมต่อกับแอป HR ไปด้วยหรือเปล่า นั่นอาจจะอธิบายข้อผิดพลาดแปลกๆ พวกนี้ได้นะ พวกเราจัดการจนทำให้ทุกอย่างพังพินาศไปหมดแล้วนี่”

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

อีกครั้งหนึ่งที่สัญชาตญาณของ Maxine รู้สึกขัดใจกับการที่ระบบทั้งหมดเหล่านี้พันกันยุ่งเหยิงไปหมด มันยากมากที่จะทำความเข้าใจส่วนใดส่วนหนึ่งของระบบแยกออกมาต่างหากได้

ในบางครั้ง มันยากที่จะไม่รู้สึกตื่นตระหนก เมื่อช่วงเช้าของวันนี้ ดูเหมือนเว็บไซต์อีคอมเมิร์ซของ Parts Unlimited จะถูกโจมตีจากภายนอกเพื่อขโมยหมายเลขบัตรเครดิต ต้องใช้เวลาเกือบชั่วโมงกว่าที่ Shannon และทีมความปลอดภัยจะส่งอีเมลสรุปว่าเป็นความผิดพลาดของตัวแอปพลิเคชันเอง—ถ้าใครบางคนกดรีเฟรชตะกร้าสินค้าผิดเวลา หมายเลขบัตรเครดิตเต็มและรหัส CVV สามหลักของลูกค้าคนอื่นแบบสุ่มจะแสดงขึ้นมาแทน

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

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

“สุดสัปดาห์ที่ผ่านมาคงจะหนักพอดูเลยใช่ไหมครับ?” เขาพูดกับ Maxine

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

เขาหันกลับไปที่หน้าจอเพื่อทำงานในชิ้นส่วนจิ๊กซอว์ของเขา โดยไม่สนใจว่าชิ้นส่วนเหล่านั้นจะประกอบกันได้จริงๆ หรือไม่ หรือจิ๊กซอว์ทั้งหมดนั้นได้เกิดไฟลุกท่วมไปแล้วในช่วงสุดสัปดาห์ พร้อมกับบ้านและคนทั้งละแวกนั้น

จาก: Alan Perez (Operating Partner, Wayne-Yokohama Equity Partners)

ถึง: Dick Landry (CFO), Sarah Moulton (SVP of Retail Operations)

สำเนา: Steve Masters (CEO), Bob Strauss (Board Chair)

วันที่: 08:15 น., 15 กันยายน

เรื่อง: การปล่อยตัว Phoenix **ความลับ**

Sarah และ Dick,

ผมได้อ่านพาดหัวข่าวเกี่ยวกับการปล่อยตัว Phoenix แล้ว ไม่ใช่การเริ่มต้นที่ดีเลย ผมขอตั้งคำถามอีกครั้งว่าซอฟต์แวร์คือความสามารถหลัก (competency) ที่ Parts Unlimited สามารถสร้างขึ้นเองได้หรือไม่? บางทีเราควรสำรวจเรื่องการเอาท์ซอร์ส IT อีกครั้งไหม?

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

ด้วยความเคารพ, Alan

จาก: Sarah Moulton (SVP, Retail Operations)

ถึง: พนักงาน IT ทุกคน

สำเนา: ผู้บริหารบริษัททุกคน

วันที่: 10:15 น., 15 กันยายน

เรื่อง: นโยบายใหม่เกี่ยวกับการเปลี่ยนแปลงในระบบ production

ขอขอบคุณสำหรับความพยายามอย่างหนักในการช่วยส่งมอบ Phoenix ให้กับลูกค้าของเรา นี่เป็นขั้นตอนที่จำเป็นอย่างยิ่งในการทำให้เรากลับมามีความเท่าเทียมในตลาดอีกครั้ง

อย่างไรก็ตาม เนื่องจากความเสียหายที่เกิดขึ้นกับลูกค้าจากปัญหาที่ไม่ได้คาดคิด ซึ่งเกิดจากการขาดวิจารณญาณของพนักงานบางคนในองค์กร IT การเปลี่ยนแปลงในระบบ production ทั้งหมดจะต้องได้รับการอนุมัติจากฉัน รวมถึง Chris Allers และ Bill Palmer

การเปลี่ยนแปลงใดๆ ที่ทำโดยไม่ได้รับอนุมัติจะส่งผลให้ถูกดำเนินการทางวินัย ขอบคุณค่ะ, Sarah Moulton

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

ในขณะที่พวกเสื้อแดงกำลังต่อสู้เพื่อควบคุมไฟที่ลุกท่วมเครื่องยนต์ซึ่งกำลังคุกคามเรือทั้งลำ บรรดานายทหารบนสะพานเดินเรือกลับเอาแต่เอาตัวรอด (cover their asses) Maxine สังเกตเห็นว่าบางคนถึงขั้นใช้หายนะครั้งนี้เพื่อผลประโยชน์ทางการเมืองของตนเอง บ่อยครั้งเพื่อลงโทษวิศวกรรายบุคคลหรือทั้งแผนกในข้อหาละเลยหน้าที่

ดูเหมือนว่าจะไม่มีใครในกลุ่มผู้นำ IT ที่ปลอดภัยเลย—Maxine ได้ยินเสียงกระซิบว่าทั้ง Chris และ Bill ในฐานะหัวหน้าทีม Dev และ Ops ต่างตกอยู่ในความเสี่ยงที่จะถูกไล่ออก และมีข่าวลือว่าจะมีการเอาท์ซอร์ส IT ทั้งหมดอีกครั้ง อย่างไรก็ตาม คนส่วนใหญ่เชื่อว่า William ในฐานะหัวหน้าฝ่าย QA น่าจะเป็นคนแรกที่จะถูกเชือด

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

“มันเหมือนรายการทีวี Survivor เลยค่ะ” Shannon กล่าว “ผู้บริหารด้านเทคโนโลยีทุกคนแค่พยายามจะเอาตัวรอดให้ได้ในแต่ละตอน ทุกคนกำลังสติแตก Steve ถูกลดตำแหน่ง และ Sarah ก็พยายามทำให้ทุกคนเชื่อว่าเธอสามารถกอบกู้บริษัทได้”

บ่ายวันนั้น Brent ชวน Maxine เข้าร่วมการประชุม “เรามีคำสั่งซื้อที่ผิดพลาดและ/หรือซ้ำซ้อนเกือบหกหมื่นรายการในฐานข้อมูล และเราต้องแก้ไขพวกมันเพื่อให้ฝ่ายการเงินได้รับรายงานรายได้ที่ถูกต้อง”

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

อา... "สี่เหลี่ยมมรณะ" (the Square) กำลังแผลงฤทธิ์ เหมือนที่ Dave ขี้บ่นเคยบรรยายไว้เป๊ะเลย แต่ตอนนี้ การตัดสินใจที่เดิมทีอาจต้องผ่านขึ้นไปและข้ามไปแค่ระดับเดียว กลับต้องผ่านขึ้นไปถึงสองระดับ ตอนนี้ผู้จัดการผลิตภัณฑ์ทุกคนต้องเอาทุกอย่างไปผ่าน Sarah มีคนพึมพำว่า “อย่าไปหวังเลย—เธอไม่เคยตอบกลับทันทีหรอก”

“เยี่ยมเลย” Maxine คิด Sarah ประสบความสำเร็จในการทำให้ทุกคนในห้องนี้เป็นอัมพาตยิ่งกว่าเดิม

ตลอดทั้งวัน การตัดสินใจและการเร่งรัดงานทั้งหมดหยุดชะงักลงอย่างรวดเร็ว แม้แต่ในกรณีฉุกเฉิน ซึ่งเป็นสิ่งที่ Maxine ไม่ได้คาดคิด เธอค้นพบสาเหตุ: ผู้จัดการทุกคนยืนกรานที่จะเป็นส่วนหนึ่งของแผนการสื่อสาร (communication plan) ทำไมล่ะ? เพราะพวกเขาต้องการได้ยินข่าวร้ายก่อนคนอื่น เพื่อที่พวกเขาจะได้ไม่ดูเหมือนคนที่ไม่รู้เรื่องรู้ราว และสามารถ "ตกแต่ง" ข้อความก่อนจะส่งต่อไปตามลำดับชั้นได้

Maxine กำลังแบ่งปันข้อสังเกตนี้กับ Kurt ตอนที่โทรศัพท์ของเขาสั่น เมื่อเห็นสีหน้าที่บูดบึ้งของเขา เธอจึงถามว่า “มีอะไรเหรอ?”

“Sarah น่ะครับ” เขากล่าว “เธอบอกว่าเธอได้รับข้อมูลที่ขัดแย้งกันจาก Wes และผมเกี่ยวกับข้อมูลคำสั่งซื้อที่เสียหาย ผมต้องเสียเวลาสามสิบนาทีอธิบายให้เธอฟัง ทั้งที่มีเรื่องด่วนจริงๆ รอให้แก้ตั้งสองเรื่อง”

Kurt เดินจากไปอย่างหัวเสียก่อนที่เธอจะทันได้อวยพรให้เขาโชคดี Maxine ส่ายหัว การขาดความไว้วางใจและข้อมูลที่ไหลเวียนมากเกินไปกำลังทำให้ทุกอย่างช้าลงเรื่อยๆ

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

Sarah ส่งอีเมลออกมาเรื่อยๆ บางครั้งก็ใช้ตัวพิมพ์ใหญ่ทั้งหมด (ALL CAPS) เพื่อเตือนทุกคนว่าเรื่องนี้สำคัญแค่ไหน แต่ทุกคนรู้อยู่แล้วว่ามันสำคัญ—การประมวลผลคำสั่งซื้อคือหนึ่งในหน้าที่ที่สำคัญที่สุดสำหรับผู้ค้าปลีกทุกคน

ห้องประชุมเกือบจะว่างเปล่า ทั้งที่นี่คือเหตุการณ์ระบบขัดข้องระดับ Sev 1 (ความรุนแรงสูงสุด)

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

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

Maxine จ้องมอง Sarah ด้วยความไม่อยากจะเชื่อ สังเกตเห็นว่าเธอดูเหนื่อยล้า ไม่ได้ดูเนี้ยบเหมือนปกติ แม้แต่ Sarah เองก็หนีไม่พ้นความพินาศของ Phoenix ไปได้ทั้งหมด แม้ว่าเธอจะมีความสามารถในการเอาตัวรอดแบบเทฟลอน (Teflon-like ability) ที่ช่วยให้เธอไม่โดนตำหนิจากเรื่องอะไรเลยตลอดสามปีที่อยู่ที่ Parts Unlimited ก็ตาม

Wes ยกมือขึ้นอย่างถอดใจ “เราจะทำอะไรได้ล่ะ? ไม่ได้เลยครับ ทีมสนับสนุนแอปพลิเคชัน (application support team) ป่วยกันหมด Brent ก็เพิ่งกลับบ้านไปเพราะป่วย พวก DBA ก็ป่วยกันหมด ถึงแม้เราจะมี Maxine ผู้มีความสามารถสูงส่งอยู่ที่นี่ แต่เธอก็เหมือนผมนั่นแหละ—เราไม่ได้รู้รายละเอียดเกี่ยวกับบริการนี้มากพอที่จะทำอะไรได้ นอกจากการรีบูต (reboot) ระบบ ซึ่งทีมสนับสนุนก็กำลังทำอยู่แล้ว”

Maxine เห็นว่า Wes เองก็ป่วยเหมือนกัน—เขาคัดจมูกและดูแย่มาก มีถุงใต้ตาแดงก่ำ เสียงแหบแห้ง... จู่ๆ เธอก็สงสัยว่าตัวเธอเองดูแย่เท่าเขาหรือเปล่า

“แบบนี้ยอมรับไม่ได้นะ Wes” Sarah กล่าว “ธุรกิจต้องพึ่งพาเรานะ ผู้จัดการร้านก็พึ่งพาเรา เราต้องทำอะไรสักอย่าง!”

“ก็นี่แหละคือความเสี่ยงที่เราเตือนคุณแล้วตอนที่คุณเสนอให้ดำเนินการปล่อยตัว Phoenix ต่อ—แต่คุณอีเมลกลับมาบอกว่าเรา ‘ต้องยอมทุบไข่บ้างถ้าอยากได้ไข่เจียว’ ใช่ไหมครับ? เรากำลังทำทุกอย่างที่ทำได้แล้ว แต่ถ้าคุณไม่อยากจะมาช่วยรีบูตเซิร์ฟเวอร์ ผมก็บอกคุณได้แค่ว่าไม่มีอะไรที่เราทำได้มากกว่านี้แล้ว”

Wes พูดต่อว่า “แต่มีเรื่องหนึ่งที่เราควรคุยกัน: เราจะทำยังไงให้คนของเราแข็งแรงพอที่จะทำงานของพวกเขาได้จริงๆ? และเราจะทำยังไงให้พวกเขามีความสุขพอที่จะไม่ลาออก? Chris บอกว่าวิศวกรคนสำคัญของเขาลาออกไปสองคนในสัปดาห์ที่ผ่านมา ผมเองก็เสียคนฝั่ง Ops ไปสองคนเหมือนกัน และมีแนวโน้มว่าจะเสียเพิ่มอีกสามคน ใครจะรู้ว่ามีอีกกี่คนที่กำลังมองหางานใหม่อยู่?”

“และเมื่อถึงตอนนั้น เราจะถึงคราวซวยของจริง (up shit creek) เพราะเราจะมีแต่การประชุมที่ไม่มีคนเข้าแบบนี้ตลอดเวลา” Wes กล่าวพร้อมหัวเราะแบบฝืนๆ ซึ่งเปลี่ยนกลายเป็นอาการไอ

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

Maxine ชอบสไตล์ของ Wes—เขาไม่เกรงกลัวใครและพูดในสิ่งที่คิดเสมอ

เธอจดบันทึกไว้ในใจว่าต้องลองชวน Wes เข้ากลุ่ม Rebellion ดูบ้าง

เมื่อนึกถึงกลุ่ม Rebellion เธอตระหนักว่ากลุ่มนี้สำคัญแค่ไหน สำหรับเธอแล้ว มันคือแสงประทีปแห่งความหวัง Maxine รู้ว่าตอนนี้เธออาจจะกำลังดูฟุ้งซ่านและมึนๆ จากการอดนอน แต่ Rebellion ได้รวบรวมวิศวกรที่เก่งที่สุดในบริษัทไว้ด้วยกัน และพวกเขาสามารถปลดปล่อยทุกคนจาก... จาก... ทั้งหมดนี้ได้

เราต้องรักษาความสามัคคีของกลุ่ม Rebellion ไว้และสานต่องานสำคัญนี้ต่อไป เธอคิด

เธอรีบส่งข้อความหา Kurt ทันที: “ไม่ว่าจะเกิดอะไรขึ้น เราห้ามยกเลิกนัดที่ Dockside วันพฤหัสบดีนี้เด็ดขาดนะคะ”

เขาตอบกลับมาทันที: “ใจตรงกันเลยครับ อันที่จริงผมมีเซอร์ไพรส์ให้ทุกคนด้วย เจอกันในอีกสองวันครับ!”

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

เป็นไปตามสัญญา Kurt ส่งข้อความหาทุกคนในกลุ่ม Rebellion: “ผมจะไปสายหน่อยนะ Dwayne และ Maxine รบกวนรันวาระการประชุมตามปกติ รวมถึงเรื่องการ build environment ของ Phoenix ด้วยนะครับ ผมจะพาแขกพิเศษมาด้วยคนหนึ่ง”

Maxine ค่อนข้างมั่นใจว่าคืนนี้ทุกคนจะมากันครบ

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

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

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

Dwayne มองมาที่เธอ “อ่านอีเมลที่เพิ่งส่งมาสิ พวกเขาไล่ William ออกแล้ว”

จาก: Chris Allers (VP Development)

ถึง: พนักงาน IT ทุกคน

วันที่: 16:58 น., 18 กันยายน

เรื่อง: การเปลี่ยนแปลงบุคลากร

ให้มีผลทันที Peter Kilpatrick (ผู้จัดการฝ่าย Front-End Dev) จะพ้นจากสภาพพนักงาน และ William Mason (ผู้อำนวยการฝ่าย QA) จะพักงานโดยไม่มีกำหนด เราขอขอบคุณสำหรับผลงานที่ผ่านมาของพวกเขา

โปรดส่งอีเมลเกี่ยวกับ front-end Dev ทั้งหมดไปที่ Randy และอีเมลที่เกี่ยวข้องกับ QA ทั้งหมดส่งมาที่ผม

ขอบคุณครับ, Chris

Maxine ทรุดตัวลงขณะอ่านข้อความ การล่าแม่มดได้เริ่มขึ้นแล้ว Adam ส่ายหัวด้วยความโกรธแค้น “ผมไม่ได้ชอบ William อะไรมากมายนะ แต่การโยนความผิดทุกอย่างให้เขาแบบนี้มันไม่ถูกต้อง”

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

Dave ขี้บ่นเงยหน้าจากโทรศัพท์ด้วยความขยะแขยง “สำหรับ Peter ก็เหมือนกัน—เขาแค่ทำตามที่ผู้จัดการฝั่งธุรกิจสั่งมาเท่านั้นเอง ช่างเป็นเรื่องที่ห่วยแตกสิ้นดี”

“มันผิดมากเลยนะ” Shannon พึมพำ “ฉันว่าการเขียนคำร้องเรียนหรืออะไรก็ตามคงไม่ช่วยอะไรหรอกใช่ไหม? แบบว่า ยื่นประท้วงเรื่องการไล่พวกเขาออกน่ะ?”

Adam กล่าวว่า “ไม่มีใครที่มีอำนาจตัดสินใจจริงๆ ต้องมารับผิดชอบเลย! เราควรจะ...”

จู่ๆเขาก็หยุดพูด อ้าปากค้างจ้องมองไปยังบางอย่างที่อยู่ข้างหลัง Maxine ทุกคนที่อยู่ข้างๆ Adam ก็ดูตกใจกับสิ่งที่อยู่ข้างหลังเธอเหมือนกัน

Maxine หันไปมองและเห็น Kurt กำลังเดินเข้ามาทางประตูทางเข้า

ข้างๆ เขาคือ Kirsten ผู้อำนวยการฝ่ายบริหารโครงการ

“พระเจ้าช่วย” Maxine ได้ยิน Adam พึมพำ เขาดูตื่นกลัว รีบปิดแล็ปท็อปและลุกขึ้นยืน เหมือนกำลังจะเผ่นหนีจากที่นี่

“โธ่เอ๊ย นั่งลงเถอะ Adam” Maxine กล่าว “นี่ไม่ใช่ตำรวจลับบุกมาสักหน่อย พวกเราไม่ได้ทำอะไรผิด—รักษาศักดิ์ศรีหน่อยสิคะ”

Dave ขี้บ่นหัวเราะอย่างประหม่า แต่ก็เหมือนคนอื่นๆ เขาปิดแล็ปท็อปไปเรียบร้อยแล้ว ราวกับว่าเขามีอะไรบางอย่างที่ต้องซ่อน

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

Maxine รู้ว่าตัวเองดูไม่ค่อยเข้ากับที่ Dockside แห่งนี้เท่าไหร่ แต่ Kirsten ยิ่งดูไม่เข้าพวกมากกว่าเดิมเยอะเลย เหมือนเธอกำลังจะไปงานรวมตัวหุ้นส่วนบริษัทกฎหมายระดับสูงแต่ดันรถยางแบนมือถือแบตหมดระหว่างทางเลยต้องแวะเข้ามาขอความช่วยเหลือ

Kurt มองไปรอบๆ แล้วยิ้มพลางกล่าวว่า “สำหรับใครที่ไม่รู้จัก Kirsten นะครับ เธอคือหัวหน้าฝ่าย Project Management ซึ่งไม่ต้องสงสัยเลยว่าเป็นองค์กรที่ได้รับความไว้วางใจมากที่สุดใน Parts Unlimited แม้ว่าพวกเขาจะต้องมาพัวพันกับพวกเราที่เป็นคนไอทีก็ตาม” Kurt หัวเราะ “โครงการสำคัญๆ ทั้งหมดของบริษัทต้องผ่าน Kirsten และเหล่านักบวชฝ่ายจัดการโครงการของเธอ และเธอก็รายงานตรงต่อ Dick Landry ซึ่งเป็น CFO ของเราอยู่เป็นประจำเกี่ยวกับความคืบหน้าของโครงการเหล่านั้น”

จริงที่สุด Maxine คิด Kirsten คือมหาปุโรหิตแห่งความเป็นระเบียบและวินัยอย่างแท้จริง เธอเป็นคนให้คะแนนสีแดง สีเหลือง หรือสีเขียวแก่โครงการหลักๆ ขององค์กร ซึ่งคะแนนเหล่านี้สามารถเปลี่ยนเส้นทางอาชีพของคนที่เกี่ยวข้องได้เลย ไม่ว่าจะรุ่งโรจน์หรือร่วงโรย นอกจาก Sarah และรองประธานฝ่ายขายแล้ว Kirsten คือคนที่ CFO เอ่ยถึงบ่อยที่สุดในงาน Town Hall

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

Kirsten เพียงแค่ยกแก้วขึ้นเพื่อเป็นการตอบรับ

Kurt กล่าวต่อ “กลายเป็นว่า Maxine ในระหว่างที่เธอกำลังเบื่อและพยายามหาความหมายของชีวิตการทำงาน เธอได้เริ่มสร้างระบบ Phoenix build ที่รันซ้ำได้ (repeatable build) ซึ่งเป็นสิ่งที่ทีม Phoenix พยายามทำมาเป็นปีแต่ก็ยังไม่สำเร็จ พวกเราเชื่อในสิ่งดีๆ มากมาย แต่สิ่งหนึ่งที่เราเห็นพ้องต้องกันคือ การทำให้ build กลับมารันได้อีกครั้งเป็นแนวทางปฏิบัติด้านวิศวกรรม (engineering practices) ที่เร่งด่วนและสำคัญที่สุดในตอนนี้ เมื่อเรามี continuous builds แล้ว เราจะสามารถทำ automated testing ได้ เมื่อมีการทดสอบอัตโนมัติ เราก็จะทำการเปลี่ยนแปลงได้เร็วขึ้น มั่นใจมากขึ้น และไม่ต้องพึ่งพาการทดสอบแบบแมนนวล (manual testing) เป็นร้อยๆ ชั่วโมงอีกต่อไป และนั่นแหละครับที่ผมเชื่อว่าเป็นขั้นตอนแรกที่สำคัญที่สุดในการส่งมอบซอฟต์แวร์ที่มีคุณค่ามากขึ้น ปลอดภัยขึ้น เร็วขึ้น และมีความสุขมากขึ้น”

“ถ้าไม่มี continuous builds เราก็เหมือนโรงงานผลิตรถยนต์ที่ไม่มีสายพานการผลิต (assembly line) ที่ใครอยากจะทำอะไรก็ทำได้โดยไม่สนเป้าหมายของโรงงาน” เขากล่าวต่อ “เราจำเป็นต้องพบปัญหาตั้งแต่ในกระบวนการ build หรือการทดสอบ ไม่ใช่ไปเจอตอน deployment หรือตอนที่รันใน production แล้ว”

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

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

Maxine ยกแก้วขึ้น เช่นเดียวกับคนอื่นๆ เธอใช้เวลาเดินชนแก้วกับทุกคนรอบโต๊ะ

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

Maxine กล่าวต่อ “ดูสิ่งที่เกิดขึ้นเมื่อสัปดาห์ที่แล้วกับการปล่อยตัว Phoenix สิคะ แนวทางปฏิบัติด้านวิศวกรรมที่ดีกว่านี้น่าจะช่วยป้องกันปัญหาได้ตั้งเยอะ ช่างน่าเสียดายจริงๆ...”

“พวกเราทุกคนเห็นด้วยกับ Maxine ครับ” Dave ขี้บ่นกล่าว “แต่ Kirsten ครับ เอิ่ม คุณมาทำอะไรที่นี่เหรอครับ?”

Kirsten หัวเราะ “ฉันสงสัยมานานแล้วว่าวิธีที่เราจัดการเทคโนโลยีในบริษัทนี้มันไม่ได้ผล และมันไม่ใช่แค่เรื่องหายนะการปล่อยตัว Phoenix หรอกนะ ลองดูสิว่ามีกี่อย่างที่เราต้องการจาก Phoenix แต่ในแผนงาน (project plan) มันยังห่างไกลออกไปอีกตั้งหลายปี”

“Kurt เล่าเรื่องที่กลุ่ม Rebellion ทำมาให้ฉันฟังหลายเดือนแล้ว แต่จุดที่ทำให้ฉันเริ่มตาสว่าง (aha moment) ก็คือตอนที่ Kurt ชี้ให้เห็นว่าเราได้สร้างระบบที่วิศวกรหลายร้อยคนไม่สามารถทำงานง่ายๆ ให้เสร็จได้โดยไม่ต้องผ่านการสื่อสารและการประสานงานที่มากมายมหาศาล” เธออธิบาย “แน่นอนว่ามันเป็นหน้าที่ของเราที่ต้องดูแลโครงการที่สำคัญที่สุดของบริษัท แต่ตามอุดมคติแล้ว ทุกคนควรจะสามารถทำในสิ่งที่ต้องการให้เสร็จได้โดยไม่ต้องพึ่งพาความช่วยเหลือจากเราเลย ฉันว่าตอนนี้ฝ่าย Project Management กลายเป็นกองทัพของคนเดินเอกสาร (paper pushers) ที่ต้องถูกลากเข้าไปยุ่งในทุกๆ งานเพียงเพราะมีสิ่งที่ต้องพึ่งพากันเต็มไปหมด”

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

เธอหันไปหา Kurt “คำนั้นที่คุณใช้คืออะไรนะ? โปรเจกต์แตงโม (Watermelon projects)? ข้างนอกสีเขียวแต่ข้างในสีแดงแจ๋? นั่นแหละค่ะคือสิ่งที่โปรเจกต์ไอทีทุกโครงการของเราเป็นอยู่ในทุกวันนี้” Kirsten กล่าวอย่างประชดประชัน

เธอกล่าวต่อ “ฉันอยู่ที่นี่มาสิบห้าปีแล้ว และเราก็เล่นเกมจ้างคนนอก (outsourcing) สลับกับดึงกลับมาทำเอง (insourcing) ตลอดเวลา รอบล่าสุด CIO คนก่อนประกาศว่า Parts Unlimited ‘ไม่ได้อยู่ในธุรกิจเกี่ยวกับคนอีกต่อไป’ ถ้าคุณเชื่อล่ะก็นะ แล้วเขาก็เอาทุกอย่างไปจ้างข้างนอกทำหมด ในที่สุดเราก็ต้องดึงงานส่วนใหญ่กลับมาทำเอง แต่ทุกอย่างที่เราได้กลับมานั้นอยู่ในสภาพที่แย่กว่าเดิมเยอะ และเราได้สูญเสียความสามารถในการทำเรื่องพื้นฐานที่สุดบางอย่างไปด้วยตัวเอง เมื่อปีที่แล้วเราแค่ต้องเปลี่ยนโครงสร้างฐานข้อมูล (schema change) ง่ายๆ สำหรับ data warehouse เราส่งคำขอไปยังรายชื่อพาร์ทเนอร์เอาท์ซอร์สตามปกติ พวกเขาใช้เวลาประมาณสามสัปดาห์ในการส่งใบเสนอราคามาให้ เขาบอกว่างานนี้ต้องใช้เวลาประมาณหนึ่งหมื่นชั่วโมงถึงจะเสร็จค่ะ” เธอกล่าว

Maxine คำนวณในใจ จากสมัยที่เธอเป็นที่ปรึกษา เธอรู้ว่าวิศวกรหนึ่งคนที่ทำงานเต็มกำลังจะทำงานประมาณสองพันชั่วโมงต่อปี—นั่นคือสี่สิบชั่วโมงต่อสัปดาห์ ห้าสิบสองสัปดาห์ต่อปี ถ้าไม่ลาพักร้อนเลย เธอระเบิดหัวเราะออกมา “นั่นมันเท่ากับวิศวกรห้าคนทำงานเต็มเวลาเป็นปี แค่เพื่อเปลี่ยนคอลัมน์ในฐานข้อมูล (database column) อันเดียวเนี่ยนะ?! นั่นมันเป็นสิ่งที่ฉันสามารถทำได้ในสิบห้านาทีเองนะ!”

“ใช่ครับ” Kurt กล่าวพร้อมรอยยิ้มเศร้าๆ “การเปลี่ยนแปลงใน data warehouse ต้องใช้การทำงานจากเอาท์ซอร์สสองหรือสามเจ้า คุณต้องเรียกประชุมผู้จัดการดูแลลูกค้า (account managers) จากแต่ละทีมเหล่านั้น แต่ละคนจะเรียกเก็บค่าธรรมเนียมการเปลี่ยนแปลง (change fee) และต้องมีการศึกษาความเป็นไปได้ (feasibility study) ต้องใช้เวลาหลายสัปดาห์กว่าคนฝั่งเทคนิคจะตกลงแผนการเปลี่ยนแปลงกันได้ และถึงอย่างนั้น Ticket ก็ยังถูกโยนไปมาอยู่เป็นสัปดาห์ๆ มันต้องใช้ความพยายามระดับซูเปอร์ฮีโร่เลยล่ะครับกว่าจะได้ลงมือแก้ไขจริงๆ”

Dwayne หัวเราะเสียงดัง “คุณคิดว่านั่นแย่แล้วเหรอ? นั่นยังน้อยไป! เมื่อก่อนเรามีเน็ตเวิร์กสวิตช์ (networking switches) สามตัวในโรงงานผลิตทุกแห่ง ตัวหนึ่งสำหรับปฏิบัติงานภายในโรงงาน ตัวหนึ่งสำหรับพนักงานและ WiFi แขก และอีกตัวสำหรับเครื่องจักรของซัพพลายเออร์ที่ต้องเชื่อมต่อกลับไปยังศูนย์ใหญ่ของพวกเขา”

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

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

“ภายในสัปดาห์เดียว โรงงานผลิตแห่งหนึ่งก็เกิดปัญหาเน็ตเวิร์กล่มทั้งระบบ—ไม่มีอะไรในโรงงานที่คุยกับโลกภายนอกได้เลย ไม่มีใครดึงข้อมูลตารางเวลาการผลิตได้ ไม่มีใครส่งใบสั่งซื้อวัตถุดิบได้ เครื่องจักรก็ไม่สามารถอัปเดตการบำรุงรักษาได้... อินเทอร์เฟซ (interfaces) ทั้งหมดตายสนิท!” Dwayne กล่าวต่อด้วยน้ำเสียงที่ยังคงทึ่งกับขนาดของความพินาศครั้งนั้น

“สิ่งเดียวที่ใช้งานได้คือเครื่องแฟกซ์ ทุกคนจากทุกแผนกต้องไปยืนต่อแถวเพื่อส่งรายงานการผลิตประจำสัปดาห์ให้ผู้บริหาร ส่งใบสั่งซื้อวัตถุดิบ...” Dwayne กล่าว

Maxine ระเบิดหัวเราะออกมา “ฉันจำเรื่องนั้นได้ค่ะ—มันเหลือเชื่อมาก พวกเราต้องไปซื้อเครื่องพิมพ์ USB จากร้านเครื่องเขียนแถวนั้นมาต่อกับระบบบางตัวที่ไม่สามารถเชื่อมต่อกับเครื่องพิมพ์เน็ตเวิร์กได้ มันเหมือนย้อนกลับไปยุค 70 อยู่เกือบสัปดาห์เลยล่ะค่ะ”

Adam พึมพำจากอีกฝั่งของโต๊ะ “ใช่ครับ เหมือนกับที่เราทำกับระบบในร้านค้าเมื่อสุดสัปดาห์นี้เลย”

Dwayne จิบเบียร์อีกอึกแล้วเอนหลังพิงเก้าอี้อย่างมีความสุขที่มีทุกคนตั้งใจฟัง “พวกคุณคงสงสัยว่าทำไมต้องใช้เวลาตั้งอาทิตย์นึงกว่าจะกู้ระบบคืนมาได้ ก็เพราะตลอดเวลานั้น ไม่มีใครยอมรับผิดชอบกับสิ่งที่เกิดขึ้นเลยไงครับ เอาท์ซอร์สทั้งสามเจ้าต่างปฏิเสธว่าไม่ใช่ฝีมือพวกเขา แม้ว่าเราจะเอาไฟล์ล็อก (log files) ไปยันหน้าว่าหนึ่งในนั้นเป็นคนปิดบัญชีผู้ใช้ของเจ้าอื่นทั้งหมด เห็นได้ชัดว่ามีใครบางคนเบื่อที่จะโดนอีกสองเจ้าเข้ามาแก้ทับงานของตัวเอง เขาก็เลยล็อกเครื่องคนอื่นซะเลย”

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

ท่ามกลางเสียงโห่ฮา Maxine พูดออกมาอย่างช้าๆ “น่าสนใจมากค่ะ การยุบรวมสวิตช์เน็ตเวิร์กไม่ใช่ไอเดียที่แย่ในตัวเองหรอกนะคะ เมื่อก่อนสามทีมสามารถทำงานแยกกันได้อย่างอิสระบนเน็ตเวิร์กของตัวเอง แต่พอพวกเขาถูกเอามาไว้บนสวิตช์ตัวเดียวกัน จู่ๆ พวกเขาก็ถูกผูกมัดเข้าด้วยกัน (coupled) ไม่สามารถทำงานอย่างอิสระได้อีกต่อไป ต้องคอยสื่อสารและประสานงานกันเพื่อไม่ให้ขัดขากันเอง ใช่ไหมคะ?”

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

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

“โอ้มายก๊อด มันเหมือนกับโปรเจกต์ Phoenix เป๊ะเลย!” เธออุทานออกมา

ความเงียบปกคลุมโต๊ะอาหารขณะที่ทุกคนจ้องมอง Maxine ด้วยความรู้สึกที่ผสมปนเประหว่างความตกใจและการเริ่มตระหนักถึงความจริง

“คุณกำลังจะบอกว่า ทุกอย่างที่ผิดพลาดในโปรเจกต์ Phoenix คือสิ่งที่เราทำกับตัวเราเองเหรอคะ?” Shannon ถาม

Kirsten ดูเสียขวัญ เธอขมวดคิ้วแน่นแต่ไม่ได้พูดอะไร “ใช่ค่ะ” Maxine ตอบ “ฉันคิดว่าเราทำตัวเองทั้งนั้น”

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