แม้ว่าบรรยากาศจะเต็มไปด้วยความร่าเริง แต่ทุกคนรู้ดีว่าพวกเขายังห่างไกลจากความพร้อมสำหรับโปรโมชั่น Black Friday อย่างเต็มรูปแบบ อย่างที่ Maggie บอกไว้ แผนคือการทำ trial run กับกลุ่มลูกค้าจำนวนน้อยเพื่อทดสอบความพร้อมสำหรับแคมเปญเต็มรูปแบบในวันศุกร์ ดังนั้นในเวลาสิบเอ็ดโมงเช้า พวกเขาจะเริ่มแคมเปญกับลูกค้าเพียง 1% เท่านั้น พวกเขาเลือกทำในช่วงกลางวันซึ่งทุกคนจะอยู่ที่ออฟฟิศและสามารถตอบโต้กับเหตุการณ์ฉุกเฉินได้อย่างรวดเร็ว สิ่งนี้จะช่วยให้พวกเขาพบช่องโหว่และจุดอ่อนในกระบวนการ เพื่อที่จะได้แก้ไขให้เรียบร้อยก่อนวันศุกร์
สำหรับ Maxine การตัดสินใจครั้งนี้เพียงอย่างเดียวก็แสดงให้เห็นแล้วว่าองค์กรเปลี่ยนไปมากแค่ไหน เมื่อไม่กี่เดือนก่อน พวกเขาคงไม่มีการทดสอบใดๆ ทั้งสิ้น และคงจะกำหนดเวลาเริ่มแคมเปญไว้ตอนเที่ยงคืน ซึ่งทำให้ทีมงานต้องอยู่ที่ออฟฟิศกันทั้งคืนอย่างแน่นอน
ตอนเก้าโมงเช้า ทุกคนอยู่ใน war room เพื่อจัดการกับรายละเอียดนาทีสุดท้ายอย่างเร่งด่วนเพื่อเตรียมพร้อมสำหรับ mini-launch 1% ทีม Orca ยังคงปรับจูน customer offers อยู่ Maxine รู้สึกตกใจเล็กน้อยเมื่อรู้ว่าพวกเขายังคงตัดสินใจกันอยู่ว่าจะเจาะกลุ่มลูกค้า 1% ไหน แต่ถ้าพวกเขายังไม่ตื่นตระหนก เธอก็จะไม่ตื่นตระหนกเหมือนกัน พวกเขาได้รับความไว้วางใจในระดับนั้นในช่วงหลายสัปดาห์ที่ผ่านมา
แม้ว่าพวกเขาจะส่งอีเมลไปหาลูกค้าเพียง 1% ของรายชื่อทั้งหมด แต่เดิมพันก็ยังสูงมาก พวกเขาจะส่งอีเมลเกือบหนึ่งแสนฉับไปยัง persona profiles ทั้งหมด ไม่ใช่แค่กลุ่ม Meticulous Maintainers และ Catastrophic Late Maintainers เพื่อเรียนรู้ว่าแต่ละกลุ่มมีการตอบสนองอย่างไร
มีหลายสิ่งหลายอย่างที่อาจผิดพลาดได้ หากอัตราการตอบสนอง (response rate) ไม่อยู่ในระดับเดียวกับการทดลองช่วงแรกๆ ความหวังและความฝันทั้งหมดที่ฝากไว้กับ Unicorn Project จะพังทลายลง หากพวกเขาโปรโมตสินค้าผิดรายการ หรือหากสินค้าเหล่านั้นไม่มีในสต็อก หรือหากพวกเขาทำเรื่องการจัดส่งผิดพลาด พวกเขาจะทำให้ลูกค้าโกรธ
แคมเปญนี้ถือเป็น "ครั้งแรก" หลายอย่างสำหรับ Parts Unlimited นี่เป็นครั้งแรกที่อีเมลจะเปิด mobile app ขึ้นมาหากถูกอ่านบนโทรศัพท์มือถือ เป็นครั้งแรกที่พวกเขานำเสนอโปรโมชั่นผ่านแอป โดยผู้ที่ติดตั้งแอปจะได้รับการแจ้งเตือนเกี่ยวกับข้อเสนอแบบจำกัดเวลานี้ ซึ่งทีม Promotions เชื่อว่าจะมี response rates สูงกว่าอีเมลที่ออกแบบมาอย่างดีเสียอีก
ในช่วงสัปดาห์ที่ผ่านมา พวกเขาได้ทำการทดลองใน mobile app อย่างต่อเนื่อง เพื่อหาจุดที่จะช่วยเพิ่ม conversion rates ให้ได้มากที่สุด เช่น การนำเสนอสินค้าโปรโมตในรูปแบบที่แตกต่างกัน การใช้รูปภาพ ขนาดรูปภาพ รูปแบบตัวอักษร และคำโฆษณา (copywriting) ที่ต่างกัน บทเรียนและการเรียนรู้เหล่านั้นถูกนำไปปรับใช้กับแคมเปญอีเมลด้วยเช่นกัน
ผลลัพธ์จากการทดลองทั้งหมดเหล่านี้ถูกส่งกลับไปยัง Panther เพื่อนำทางไปสู่การทดลองและทดสอบในรอบถัดไป พร้อมกับกิจกรรมของลูกค้าทั้งหมดภายในแอป มันเป็นข้อมูลจำนวนมหาศาล แต่นั่นทำให้ทีม Analytics อยากได้ข้อมูลเพิ่มขึ้นอีก ความชื่นชมที่ผู้คนมีต่อ Panther data platform ยังคงเพิ่มขึ้นเรื่อยๆ
ทีม mobile app ก็ทำงานกันอย่างหนักตลอด 24 ชั่วโมงเพื่อให้แน่ใจว่าสิ่งต่างๆ แสดงผลได้อย่างถูกต้อง และปุ่มต่างๆ ทำงานตามที่ควรจะเป็น แต่พวกเขายังพยายามทำให้ขั้นตอนการสั่งซื้อราบรื่นที่สุดเท่าที่จะเป็นไปได้ จากการสังเกตว่าลูกค้าจำนวนมากหยุดทำรายการเมื่อต้องกรอกข้อมูลบัตรเครดิต พวกเขาจึงไปซื้อเทคโนโลยีที่ช่วยให้ใส่ข้อมูลนี้ได้ด้วยการใช้กล้องมือถือสแกน และเสนอทางเลือกการชำระเงินที่หลากหลาย เช่น PayPal และ Apple Pay ด้วยความหวังว่าสิ่งเหล่านี้จะช่วยลดอัตราการทิ้งตะกร้าสินค้า (order abandonment rates)
การเดิมพันครั้งใหญ่คือการลงทุนใน mobile app ทั้งหมดนี้จะส่งผลให้ยอดขายสูงกว่าการใช้ browser บนมือถืออย่างเห็นได้ชัด มันเป็นการเดิมพัน แต่เป็นการเดิมพันที่ผ่านการวิเคราะห์มาอย่างดี โดยองค์กรที่เห็นได้ชัดว่ามีการเรียนรู้อยู่ตลอดเวลา
แต่เวลาแห่งการเตรียมตัวและฝึกซ้อมสิ้นสุดลงแล้ว ตอนนี้คือเวลาของจริง Maxine คิด เธอเห็นทีมเทคโนโลยีหลายทีมเริ่มรวมตัวกัน แต่ทีมข้อมูล Narwhal ได้ล้อมวงกันที่หน้าจอแล้ว พวกเขากำลังตรวจสอบ checklist และกระซิบกระซาบกันไปมา เพื่อให้แน่ใจว่าทุกอย่างจะรองรับ traffic ที่คาดการณ์ไว้ได้ ในช่วงสัปดาห์ที่ผ่านมา Brent และทีมของเขาได้ทำการ stress-test ทั้งระบบ ซึ่งทำให้ส่วนต่างๆ ของระบบพังลงเป็นประจำ และจากนั้นในการทำ blameless post-mortem พวกเขาจะร่วมมือกันหาวิธีแก้ไขเพื่อให้ระบบอยู่รอดในการเปิดตัวจริง
ผลจากการทำ Chaos Engineering เหล่านี้ทำให้พบสิ่งที่พังอย่างน่าประหลาดใจ แต่ทุกคนก็ทำงานกันอย่างขยันขันแข็ง พยายามทำให้แน่ใจว่าพวกเขาพร้อมที่สุดสำหรับงานเปิดตัวครั้งใหญ่ เมื่อไม่กี่วันก่อน การทดสอบการสร้างข้อเสนอ (offer generation) ล้มเหลวซ้ำแล้วซ้ำเล่า เพราะพวกเขาไม่ได้เพิ่มขีดจำกัด (limits) ของ external service ที่ใช้งาน พวกเขาติดนิสัยการ scale down ทุกอย่างเพื่อประหยัดค่าใช้จ่าย และมีใครบางคนลืม scale up ก่อนการทดสอบ
เรายังมีสิ่งที่ต้องเรียนรู้อีกมากก่อนจะเป็นผู้เชี่ยวชาญในเรื่องนี้ Maxine คิด
ในบางครั้ง มันยากที่จะรู้ว่าใครอยู่ทีมไหน เพราะผู้คนเคลื่อนย้ายไปมาระหว่างทีมได้อย่างลื่นไหล เมื่อทุกคนรู้ว่าเป้าหมายคืออะไร อย่างที่ Erik เคยทำนายไว้ ทีมจะ self-organize กันเองเพื่อให้บรรลุเป้าหมายเหล่านั้นได้ดีที่สุด สำหรับ Maxine มันน่าทึ่งมากที่ได้เห็นผู้คนโต้ตอบซึ่งกันและกัน โดยเฉพาะเมื่อเปรียบเทียบกับการเปิดตัว Phoenix ครั้งใหญ่เมื่อสองเดือนก่อน ผู้คนจากสาขาต่างๆ ทั้ง Dev, QA, Ops, Security และตอนนี้รวมถึง Data และ Analytics ต่างทำงานร่วมกันทุกวันในฐานะเพื่อนร่วมทีม ไม่ใช่คู่แข่ง พวกเขากำลังมุ่งหน้าสู่เป้าหมายเดียวกัน พวกเขาตระหนักว่าพวกเขากำลังอยู่บนเส้นทางแห่งการเรียนรู้และการสำรวจ และความผิดพลาดเป็นเรื่องที่หลีกเลี่ยงไม่ได้ การสร้างระบบที่ปลอดภัยยิ่งขึ้นและการปรับปรุงอย่างต่อเนื่อง (continual improvement) ถูกมองว่าเป็นส่วนหนึ่งของงานประจำวันไปแล้ว
นี่ช่างคู่ควรกับ Third Ideal of Improvement of Daily Work ที่ Erik เคยบรรยายไว้เมื่อหลายสัปดาห์ก่อนจริงๆ Maxine คิด
ด้วยผลงานบุกเบิกของ Data Hub ตอนนี้ code ถูกส่งขึ้น production วันละหลายครั้ง อย่างราบรื่น รวดเร็ว และส่วนใหญ่ไม่มีปัญหา หากมีปัญหาก็จะถูกแก้ไขอย่างรวดเร็วโดยไม่มีการโทษกันหรือเกิดวิกฤตที่เกินควร แม้แต่ตอนนี้ Maxine ก็ยังเห็นว่ามีการทำ production deployments เกิดขึ้น เนื่องจากทีมต่างๆ กำลังส่งการเปลี่ยนแปลงในนาทีสุดท้ายเพื่อให้แน่ใจว่า mini-launch จะประสบความสำเร็จ
เมื่อยี่สิบนาทีก่อน มีคนสังเกตเห็นว่า API ตัวหนึ่งส่ง HTTP 500 error กลับมาเป็นจำนวนมาก ปรากฏว่าเมื่อวานนี้ มีคน commit code change ที่เผลอไปจัดประเภท error 400 จากฝั่งผู้ใช้ (user-caused errors) ผิดเป็น error 500 จากฝั่งเซิร์ฟเวอร์ (server-caused errors) Wes จึงเรียกประชุมด่วน และ Maxine ก็ต้องตกตะลึงเมื่อ Wes แนะนำให้ส่งตัวแก้ไข (fix) ออกไปทันที ทั้งที่เหลือเวลาไม่ถึงหนึ่งชั่วโมงก่อนจะเริ่ม mini-launch
"ถ้าเราไม่แก้ มันอาจจะไปบดบังสัญญาณสำคัญหากเราเกิด outage จริงๆ" เขากล่าว "เราพิสูจน์มาหลายครั้งแล้วว่าเราสามารถส่ง one-line changes เหล่านี้ออกไปได้อย่างปลอดภัย"
ส่วนที่ดีที่สุดคือ Developer เป็นคนตรวจพบ error เองและเป็นคนส่งตัวแก้ไขออกไป ในที่สุดเราก็ไว้วางใจ Developer แล้ว เธอคิด หากมีใครมาบอกเธอเมื่อเดือนก่อนว่า Wes จะสนับสนุนอะไรแบบนี้ เธอคงไม่มีวันเชื่อเด็ดขาด
และที่ดียิ่งกว่านั้นคือ ความกังวลที่สุดของ Maxine ที่ว่า Developer จะทำอะไรตามอำเภอใจจนทำลายความถูกต้องของข้อมูลในแพลตฟอร์ม Narwhal นั้นไม่เคยเกิดขึ้นเลย หากถูกปล่อยให้ทำตามใจตัวเอง ทีม Development มักจะปรับจูนทุกอย่างเพื่อประโยชน์ของทีมตัวเองเท่านั้น นี่เป็นธรรมชาติที่คับแคบและเห็นแก่ตัวของแต่ละทีม และนั่นคือเหตุผลที่คุณต้องการ Architect คิดในใจ
เนื่องจากพวกเขาสร้างช่องทางเข้าถึงข้อมูลผ่าน versioned APIs ทุกอย่างจึงยังคงอยู่ภายใต้การควบคุม และทีมต่างๆ สามารถทำงานได้อย่างเป็นอิสระต่อกัน Maxine ไม่เพียงแค่รู้สึกโล่งอก แต่เธอรู้สึกดีใจมาก พวกเขาออกแบบแพลตฟอร์มเหล่านี้มาเพื่อปรับจูนระบบในภาพรวมให้ดีที่สุด และเพื่อรับประกันความปลอดภัยและความมั่นคงของทั้งองค์กร
"กำลังส่งอีเมลและการแจ้งเตือนไปยังโมบายแอปใน 3, 2, 1 … เริ่มได้เลยครับทุกคน" marketing launch coordinator พูดด้วยน้ำเสียงสงบ Maxine มองนาฬิกา ตอนนี้เป็นเวลา 11:12 น. อีเมลและการแจ้งเตือนบนโมบายแอปกำลังถูกส่งไปยังลูกค้าหนึ่งแสนคน
การเปิดตัวเริ่มต้นช้ากว่ากำหนด 12 นาทีเนื่องจากปัญหาที่คาดไม่ถึงสองประการ คือ พบปัญหาเรื่อง configuration ในระบบ Narwhal และมีคนสังเกตเห็นว่ามีที่อยู่อีเมลในแคมเปญมากเกินไป ทำให้ต้องคำนวณและสร้าง email list ใหม่ใน Panther Maxine ยกนิ้วโป้งให้ Shannon เมื่อทีม Unicorn สามารถสร้างและอัปโหลดข้อมูลใหม่ได้ในเวลาที่รวดเร็วเป็นประวัติการณ์
ในแง่หนึ่ง Maxine รู้สึกหงุดหงิดเล็กน้อยที่รายละเอียดเหล่านี้ถูกตรวจพบช้าเกินไปในกระบวนการเปิดตัว แต่อีกแง่หนึ่ง นั่นคือเหตุผลว่าทำไมต้องมีการซักซ้อม และทำไมทุกคนถึงมารวมตัวกันใน war room ทุกคนที่จำเป็นต้องตัดสินใจในนาทีสุดท้ายต่างอยู่ในห้องนี้ และทุกคนเห็นพ้องตรงกันว่ามันสมเหตุสมผลแล้ว Maggie, Kurt, หัวหน้าทีม และคนอื่นๆ อีกหลายคนรวมตัวกันอยู่ที่นี่ รวมถึง Wes และคนสำคัญจากทีม Ops
Maxine มองไปรอบๆ และเห็นว่า Sarah ไม่ได้อยู่ที่นี่อีกแล้ว Maxine สงสัยว่าเธอเป็นคนเดียวหรือเปล่าที่ระแวงว่า Sarah อาจจะกำลังวางแผนทำอะไรไม่ดีอยู่
เธอหันไปสนใจสิ่งที่ทุกคนในห้องกำลังจ้องมอง นั่นคือจอมอนิเตอร์ขนาดใหญ่ที่แขวนอยู่บนผนัง ทุกคนต่างกลั้นหายใจ บนหน้าจอแสดงกราฟหลายตัว โดยมีตัวเลขจำนวนอีเมลที่ส่งไปและ order funnel เป็นตัวชูโรง กราฟนี้แสดงให้เห็นว่ามีคนกี่คนที่ดูหน้าสินค้า, เพิ่มสินค้าลงในตะกร้า, กดปุ่มชำระเงิน, คำสั่งซื้อถูกประมวลผล และคำสั่งซื้อถูกจัดส่ง ส่วนด้านล่างแสดงให้เห็นว่ามีจุดไหนที่มีคนเลิกทำรายการ (drop-off) มากที่สุด รวมถึงจำนวนคำสั่งซื้อและรายได้ที่เกิดขึ้น
ใต้กราฟเหล่านั้นคือตัวชี้วัดประสิทธิภาพทางเทคนิค (technical performance metrics): CPU loads ของ compute clusters ต่างๆ, จำนวนธุรกรรมที่ถูกประมวลผลโดย services และ databases, network traffic และอื่นๆ อีกมากมาย
เธอเห็นกราฟพุ่งสูงขึ้น (spikes) หลายจุดซึ่งเกิดจากการคำนวณมหาศาลของ Panther แต่ตอนนี้กราฟส่วนใหญ่อยู่ที่ระดับศูนย์ กราฟ CPU บางตัวอยู่ที่ 20% นั่นคือ services ที่ต้อง "วอร์ม" ไว้เพื่อให้แน่ใจว่ามันจะไม่เข้าสู่โหมดหลับ (sleep) ในการซักซ้อมครั้งหนึ่ง พวกเขาตกใจมากเมื่อสิ่งนี้เกิดขึ้นกับระบบสำคัญ ซึ่งต้องใช้เวลาถึง 6 นาทีกว่าจะปลุกระบบให้ตื่นและ scale out ออกมาได้
ไม่มีอะไรเกิดขึ้น หนึ่งนาทีผ่านไป อีกนาทีผ่านไป Maxine เริ่มกังวลว่าการเปิดตัวครั้งนี้จะล้มเหลวโดยสิ้นเชิง บางทีอาจเกิดเรื่องร้ายแรงกับ infrastructure ของพวกเขา หรืออาจมีเรื่องแย่ๆ ที่ทำให้อีเมลส่งไม่ถึงมือลูกค้า หรือบางทีความกังวลที่สุดเกี่ยวกับระบบแนะนำสินค้า (recommendation) ที่แย่ๆ อาจกลายเป็นจริง และพวกเขาอาจเผลอส่งข้อเสนอโซ่พันล้อลุยหิมะไปให้คนที่ไม่ได้อยู่ในเขตหิมะ
Maxine ถอนหายใจออกมาดังๆ ด้วยความโล่งอก เมื่อกราฟแสดงยอดการดูหน้าสินค้า (product page views) พุ่งขึ้นจาก 10 เป็น 20, 50 … และยังคงพุ่งสูงขึ้นเรื่อยๆ
ทุกคนส่งเสียงเชียร์ รวมทั้ง Maxine เธอจ้องมองไปที่ตัวเลขทางเทคนิค และภาวนาอย่าให้ infrastructure พังลงเหมือนตอนเปิดตัว Phoenix เธอรู้สึกใจชื้นขึ้นเมื่อ CPU loads เริ่มขยับสูงขึ้นในทุกส่วน แสดงให้เห็นว่าสิ่งต่างๆ กำลังถูกประมวลผลอยู่จริงๆ
ไม่กี่นาทีต่อมา มีคนเกือบห้าพันคนอยู่ในขั้นตอนต่างๆ ของ order funnel จนถึงตอนนี้ทุกอย่างยังดูดี Maxine คิด พลางมองดูตัวเลขที่ค่อยๆ เพิ่มขึ้นเรื่อยๆ ทุกคนส่งเสียงเชียร์อีกครั้งเมื่อจำนวนคำสั่งซื้อที่ประมวลผลสำเร็จเพิ่มสูงขึ้น … 10 คำสั่งซื้อสำเร็จแล้ว ตามด้วย 20 และยังคงเพิ่มขึ้นอย่างต่อเนื่อง เธอรู้สึกตื่นเต้นมากเมื่อรายได้จากแคมเปญนี้พุ่งทะลุ 1,000 ดอลลาร์
ทุกอย่างทำงานได้ตามที่ออกแบบไว้ เธอยิ้มเมื่อได้ยินเสียงปรบมือดังขึ้นประปรายทั่วห้อง แต่เธอยังคงจ้องมองไปที่กราฟ
เธอขมวดคิ้ว กราฟจำนวนคำสั่งซื้อที่สำเร็จนิ่งสนิท (flatlined) อยู่ที่ 250 เธอหันไปดูการฟอื่นๆ ว่านิ่งด้วยไหม แต่พวกมันยังคงพุ่งขึ้นอยู่ Maxine เห็นคนกลุ่มหนึ่งรุมล้อมอยู่ที่หน้าจอทีวี พลางชี้ไปที่กราฟที่หยุดนิ่ง
มีบางอย่างผิดปกติแน่นอน
"ขอความสงบหน่อย!" Wes ตะโกนลั่น เขาเงียบไปครู่หนึ่งก่อนจะหันกลับมาพูดว่า "ผมต้องการให้คนช่วยลองสั่งสินค้าทั้งบนเว็บและมือถือ แล้วบอกผมทีว่ามันเกิดอะไรขึ้น! มีบางอย่างขัดขวางไม่ให้คำสั่งซื้อผ่านไปได้!" Maxine เปิดแอปในโทรศัพท์รอไว้อยู่แล้ว เธอรีบกดปุ่ม "เพิ่มลงในตะกร้าสินค้า" และต้องกะพริบตาด้วยความตกใจก่อนจะตะโกนออกไปว่า "โมบายแอปค้างแล้วก็เด้งออกตอนกดเพิ่มสินค้าลงตะกร้าบน iPhone ค่ะ... แอปแครชแล้วก็หายไปเลย"
"ให้ตายเถอะ" เธอได้ยินใครบางคนสบถมาจากอีกฝั่งของห้อง อีกคนตะโกนขึ้นมาว่า "ฝั่ง Android ก็ขึ้น error ค่ะ เห็นหน้าต่างแจ้งเตือนว่า 'เกิดข้อผิดพลาดขึ้น'"
Shannon ที่อยู่ข้างๆ เธอตะโกนเสริมว่า "ตะกร้าสินค้าบนเว็บก็ขึ้น error ค่ะ หน้าเว็บโหลดขึ้นมาหลังจากกดส่ง แต่มันเป็นหน้าขาวว่างเปล่า! ฉันคิดว่ามีบางอย่างที่หลังบ้าน (back end) มัน error ตอนที่เราดึงข้อมูลว่าสินค้าพร้อมส่งหรือเปล่า"
Wes พูดจากด้านหน้าห้องว่า "ขอบคุณครับ Shannon ฝากส่ง screenshot พวกนั้นเข้าช่อง #launch ด้วย เอาละทุกคน ฟังนะ! เราเจอ error ในทุกแพลตฟอร์มเลย Shannon คิดว่ามันเป็นเพราะการเรียกใช้ back end ตัวหนึ่ง อาจจะเป็น API 'available to promise' หรือ 'available to ship' ใครมีความคิดเห็นอะไรไหม?"
Maxine รีบลงมือทันที เธอรู้สึกชื่นชมที่ Wes เป็นคนคุม war room ใช่ เขาอาจจะขี้หงุดหงิดไปบ้างแต่เขาก็รับมือกับระบบล่ม (outage) มามากกว่าทุกคนในห้องนี้รวมกันเสียอีก การมีคนที่มีประสบการณ์แบบนี้ในช่วงการเปิดตัวที่มีเดิมพันสูงเช่นนี้เป็นเรื่องดีมาก พวกเราฝั่ง Developer อาจจะเก่งในสิ่งที่ทำ แต่สำหรับทีม Ops วิกฤตแบบนี้คือส่วนหนึ่งของชีวิตประจำวัน
ใช้เวลาไม่นานก็ยืนยันได้ว่าสมมติฐานของ Shannon ถูกต้อง มันเป็นปัญหาในระบบ order entry หลังบ้าน ระบบทั้งหมดในคลัสเตอร์นั้นมี CPU utilization พุ่งทะลุ 100% และโชคร้ายที่ระบบที่ถูกกระหน่ำคือส่วนหนึ่งของ ERP หลักซึ่งจัดการข้อมูลการเงินหลักเกือบทั้งหมดของบริษัท มันทำงานมานานกว่า 30 ปีแล้ว และยังติดอยู่กับเวอร์ชันที่เก่าเกือบ 15 ปี มันถูก customized มามากจนแทบจะอัปเกรดไม่ได้ อย่างน้อยมันก็ถูกเปลี่ยนเครื่องใหม่ทุกๆ 5 ปี แต่ก็ไม่มีวิธีง่ายๆ ที่จะเพิ่ม CPU cores เข้าไปเพื่อเร่งความเร็ว
ดูเหมือนว่าแม้แต่โปรโมชั่นเพียง 1% ก็ทำให้ระบบค้าง Maxine เห็นว่าการส่งข้อมูลกลับเริ่มช้าลงเรื่อยๆ และคำร้องขอจากฝั่งลูกค้า (client requests) เริ่ม timeout ฝั่งลูกค้าทั้งหมดจึงเริ่มส่งคำขอกลับมาใหม่ (retry) ทำให้มี request จำนวนมหาศาลถาโถมเข้าใส่ database หลังบ้านจนรับไม่ไหว
"ปัญหา Thundering herd" Wes พึมพำ หมายถึงเหตุการณ์ที่การ retry พร้อมๆ กันจากฝั่งลูกค้ากลับกลายเป็นตัวทำลายเซิร์ฟเวอร์เสียเอง "เราทำอะไรกับหลังบ้านไม่ได้แล้ว เราจะทำให้ฝั่งลูกค้าทั้งหมดลดการ retry ลงได้อย่างไร?"
"เราเปลี่ยนโมบายแอปไม่ได้ แต่เราสามารถตั้งค่าให้ e-commerce servers รอให้นานขึ้นก่อนจะ retry ได้ครับ" Brent กล่าว Wes ชี้ไปที่ Brent และ Maxine แล้วสั่งว่า "ทำเลย"
Maxine และ Brent ร่วมมือกับทีม e-commerce เพื่อส่ง configuration files ใหม่ไปยังเว็บเซิร์ฟเวอร์ทุกเครื่อง พวกเขาสามารถส่งการเปลี่ยนแปลงทั้งหมดนี้ขึ้น production ได้ภายในเวลาไม่ถึง 10 นาที
โชคดีที่แค่นี้ก็เพียงพอจะระงับเหตุหายนะได้ Maxine มองดูอัตรา database error ที่เริ่มลดลงและจำนวนคำสั่งซื้อที่สำเร็จเริ่มขยับขึ้นอีกครั้งด้วยความโล่งอก มีสิ่งผิดพลาดอื่นๆ เกิดขึ้นอีกหลายอย่างในช่วงสองชั่วโมงถัดมา แต่ไม่มีอะไรที่ทำให้หัวใจแทบหยุดเต้นเท่ากับปัญหาเซิร์ฟเวอร์ 'available to promise' ที่เธอและ Brent เพิ่งรับมือไป
อีก 45 นาทีต่อมา พวกเขาบรรลุเป้าหมายที่คำสั่งซื้อสำเร็จ 3,000 รายการ สร้างรายได้รวมสองแสนห้าหมื่นดอลลาร์ และคำสั่งซื้อยังคงหลั่งไหลเข้ามาอย่างต่อเนื่อง Maggie คงจะแอบออกไปข้างนอกมา เพราะอีกสองชั่วโมงต่อมา Maxine เห็นเธอกลับเข้ามาในห้องพร้อมกับคนกลุ่มหนึ่งที่ถือขวดแชมเปญมาด้วย Maggie เปิดขวดและเริ่มรินใส่แก้ว โดยส่งแก้วแรกให้ Maxine
เมื่อทุกคนมีแก้วในมือแล้ว Maggie ก็ชูแก้วขึ้นพร้อมรอยยิ้มกว้าง "โอ้โห ทุกคน วันนี้ช่างสุดยอดจริงๆ! และเป็นการทำงานเป็นทีมที่ยอดเยี่ยมมาก! ฉันอยากจะแชร์ผลลัพธ์แรกๆ ให้ฟัง และบอกเลยว่ามันเยี่ยมมาก... ผู้คนยังคงตอบรับโปรโมชั่นอย่างต่อเนื่อง แต่ ณ จุดนี้ เกือบ 1 ใน 3 ของผู้ที่ได้รับแคมเปญมีการตอบสนองกลับมา นี่เป็น conversion rate ที่สูงที่สุดเท่าที่เราเคยทำได้ สูงกว่าเดิมอย่างน้อย 5 เท่าตัวเลยทีเดียว!"
เธอหยิบโทรศัพท์ขึ้นมาดูหน้าจอ "นี่คือตัวเลขคร่าวๆ จากทีมงานครับ กว่า 20% ของคนที่ได้รับข้อเสนอเข้าไปดูสินค้าที่เราแนะนำ และกว่า 6% ตัดสินใจซื้อ เราไม่เคยเห็นตัวเลขแบบนี้มาก่อนเลย! ขอบคุณทุกคนที่นี่ที่ช่วยกันทำให้สิ่งนี้เกิดขึ้น"
"และจำไว้นะคะ สินค้าเกือบทั้งหมดที่เราโปรโมตคือสินค้าที่มีกำไรสูง (high-margin) หรือเป็นสินค้าที่วางทิ้งไว้บนชั้นจนฝุ่นจับ ดังนั้นยอดขายแต่ละรายการที่เราทำได้ในวันนี้จะส่งผลต่อกำไรอย่างมหาศาล!" Maggie เชียร์และดื่มจนหมดแก้ว ทุกคนหัวเราะและทำตาม
เธอกล่าวว่า "จากผลลัพธ์เหล่านี้ แคมเปญโปรโมชั่น Unicorn สำหรับลูกค้าทั้งหมดในวัน Black Friday คือ 'ลุยต่อได้เลย!' (GO!) ถ้าผลลัพธ์ได้แค่ใกล้เคียงกับที่เราเห็นในการทดสอบวันนี้ เราจะได้เห็นช่วงเทศกาลวันหยุดที่ยอดเยี่ยมที่สุดอย่างแน่นอน..."
"เอ่อ ขอย้ำอีกครั้ง ข้อมูลนี้เป็นข้อมูลภายใน (insider information) หากคุณใช้ข้อมูลนี้ไปซื้อขายหุ้นของ Parts Unlimited คุณอาจติดคุกได้ Dick Landry CFO ของเราบอกให้ฉันเตือนพวกคุณว่าเขาจะช่วยดำเนินคดีตามสัญญาจ้างงานของคุณ" เธอพูดแล้วยิ้ม "แต่ถึงอย่างนั้น ไม่มีข้อสงสัยเลยว่าเราจะถล่มยอดขายในวัน Black Friday กันแน่นอน!"
ทุกคนส่งเสียงเชียร์ดังลั่นอีกครั้ง รวมทั้ง Maxine ด้วย Maggie ส่งสัญญาณให้ทุกคนเงียบลงและขอให้ Kurt กับ Maxine พูดอะไรสักหน่อย Maxine หัวเราะและบุ้ยใบ้ให้ Kurt เริ่มก่อน เขากล่าวว่า "เป็นการร่วมแรงร่วมใจที่น่าทึ่งมากครับทุกคน! ผมภูมิใจมาก Maxine ล่ะ?"
Maxine ไม่อยากพูดอะไร แต่เมื่อถูกต้อนแบบนี้ เธอจึงลุกขึ้นและชูแก้ว "แด่การก่อกบฏ (The Rebellion) ที่แสดงให้อำนาจเก่าแก่ทรงพลังเห็นว่างานวิศวกรรมสุดเจ๋งเขาทำกันอย่างไร!"
ทุกคนส่งเสียงเชียร์และหัวเราะอีกครั้ง เมื่อเสียงสงบลง Maxine พูดต่อว่า "เอาละ พอแค่นี้ ในวัน Black Friday เราคาดการณ์ว่า load จะมากกว่าวันนี้ถึง 100 เท่า เราคงจะต้องเจอปัญหาอีกมากมายที่เราไม่เคยเจอมาก่อน ดังนั้นเรามีงานต้องทำอีกเพียบตั้งแต่นี้จนถึงวันนั้น มาช่วยกันคิดดูว่าเราจะเตรียมตัวให้ดีที่สุดได้อย่างไร"
Kurt เสริมว่า "ผมอยากให้ทุกคนกลับบ้านตรงเวลาในวันพรุ่งนี้ให้มากที่สุด เพราะวันพฤหัสบดีคือวันขอบคุณพระเจ้า ดังนั้นมาเริ่มงานกันเลย! และเราต้องการให้ทุกคนมาถึงออฟฟิศแต่เช้าในวันศุกร์เพื่อสนับสนุนการเปิดตัวด้วยครับ"
พวกเขาตกลงกันว่าจะทยอยส่งอีเมลและการแจ้งเตือนบนโมบายแอปเป็นระลอก (stagger) เพื่อป้องกันไม่ให้ระบบถูกกระหน่ำในคราวเดียว และเพื่อปกป้องเซิร์ฟเวอร์หลังบ้านที่เปราะบางกว่าที่คิด Brent เสนอไอเดียให้ตั้งค่า load balancers ใหม่เพื่อจำกัดอัตรา (rate-limit) ของธุรกรรม ซึ่งจะทำให้เกิด error ฝั่งลูกค้าทั้งบนโมบายแอปและ e-commerce servers แต่ทุกคนเห็นพ้องตรงกันว่ามันยังดีกว่าปล่อยให้ระบบหลังบ้านล่มอีกครั้ง
"เราจะจัดการให้ครับ ผมคิดว่าเราจะพร้อมและให้ทุกคนกลับบ้านได้ทันวันขอบคุณพระเจ้า!" Brent พูดพร้อมรอยยิ้มกว้าง "สุขสันต์วันขอบคุณพระเจ้าครับทุกคน!"
เป็นไปตามที่ Brent คาดไว้ งานทุกอย่างเสร็จสิ้นก่อนห้าโมงเย็นของวันรุ่งขึ้น มีเพียงไม่กี่คนที่ยังอยู่ ที่เหลือเริ่มทยอยกลับบ้าน Maxine เดินไปรอบๆ เพื่อไล่คนที่ยังค้างคาให้กลับบ้านเสีย วันนี้คือวันก่อนวันขอบคุณพระเจ้า และ Maxine เองก็อยากออกไปให้ได้ภายในห้าโมงครึ่ง เธอภูมิใจที่แม้แต่ Brent เธอก็ไล่เขากลับไปได้
ทีมหนึ่งที่ยังกลับไม่ได้คือทีม Data Analyst เนื่องจากตอนนี้การทดสอบ 1% ได้พิสูจน์แล้วว่าประสบความสำเร็จอย่างท่วมท้น พวกเขาต้องสร้างระบบแนะนำสินค้า (recommendations) ให้เสร็จสำหรับลูกค้าหลายล้านคนภายในวันศุกร์ โหลดการคำนวณบน Panther เพิ่มขึ้นเรื่อยๆ และพวกเขายังคงอัปเดตข้อมูลโปรโมชั่นในแพลตฟอร์ม Narwhal ต่อไป Maxine คิดพร้อมรอยยิ้มว่า 'เรากำลังทำยอดบิลกับผู้ให้บริการ cloud computing พุ่งกระฉูดเลยทีเดียว แต่ไม่มีใครในฝ่าย Marketing บ่นสักคำ เพราะผลประโยชน์ทางธุรกิจมันมหาศาลมาก'
เธอแวะเข้าไปบอกลา Kurt แต่ต้องหยุดชะงักเมื่อเห็น Sarah กำลังโต้เถียงอย่างเผ็ดร้อนกับเขา
"...และฉันเดินไปรอบๆ ตึกนี้หลังห้าโมงเย็นแต่แทบไม่เห็นใครอยู่ที่นี่เลย Kurt ฉันไม่รู้ว่าคุณตระหนักหรือเปล่าว่าบริษัทกำลังจะพินาศ เราต้องการให้ทุกคนทุ่มเทแรงกายแรงใจ" Sarah พูดด้วยความโกรธแค้น "ฉันคิดว่าเราต้องมีการบังคับทำ OT ซื้อพิซซ่าให้พวกเขากินเพิ่ม พวกเขาก็จะยินดีอยู่ทำงานต่อเองแหละ"
"และถ้าแค่นั้นยังไม่แย่พอ" เธอพูดต่อ "ฉันเพิ่งเห็นคนกลุ่มหนึ่งนั่งอ่านหนังสือกันอยู่! เราไม่ได้จ้างคนมาอ่านหนังสือ เราจ้างพวกเขามาทำงาน เรื่องนี้ควรจะชัดเจนนะ Kurt ใช่ไหม?" Kurt ยังคงนิ่งเฉย
"คุณคงต้องไปคุยเรื่องนี้กับ Chris เอง การสั่งห้ามอ่านหนังสือในที่ทำงานมันเกินขอบเขตอำนาจของผม" เธอส่งสายตาอาฆาตให้เขาแล้วเดินปังๆ ออกไป
Kurt ทำท่าทางบอก Maxine ว่าเขาอยากจะผูกคอตาย "มันแปลกมาก" เขากล่าว "เธอคิดว่าเราจ้าง Developer มาเพื่อพิมพ์งานเท่านั้น แทนที่จะจ้างมาเพื่อให้คิดและสร้างผลลัพธ์ทางธุรกิจ และนั่นหมายถึงเราจ้างพวกเขามาเพื่อเรียนรู้ เพราะนั่นคือวิธีที่เราจะชนะ คุณจินตนาการออกไหมว่าการห้ามอ่านหนังสือในที่ทำงานจะเป็นยังไง?" เขาพูดพลางหัวเราะและส่ายหัว
Maxine จ้องมอง Kurt ความเชื่อของ Sarah คือขั้วตรงข้ามของอุดมคติข้อที่ 3 (Improvement of Daily Work) และอุดมคติข้อที่ 4 (Psychological Safety) โดยสิ้นเชิง Maxine รู้ว่าวิธีเดียวที่พวกเขาจะประสบความสำเร็จได้ขนาดนี้คือการสร้างวัฒนธรรมที่ผู้คนรู้สึกปลอดภัยที่จะทดลอง เรียนรู้ และผิดพลาดได้ และเป็นที่ที่ผู้คนให้เวลากับการค้นพบ นวัตกรรม และการเรียนรู้
"ฉันไม่เถียงเลยค่ะ Kurt บอกฉันด้วยนะถ้าคุณเกลี้ยกล่อมเธอได้" Maxine ยิ้มพลางโบกมือลา "สุขสันต์วันขอบคุณพระเจ้าค่ะ"
Maxine มีวันขอบคุณพระเจ้าที่ยอดเยี่ยมมาก นี่เป็นปีแรกหลังจากที่พ่อของเธอเสียชีวิต และเธอมีความสุขที่ได้มีทุกคนมาอยู่พร้อมหน้ากัน แม้ว่าเธอจะแอบดูโทรศัพท์อยู่ตลอดเวลาเพื่อดูว่าการเตรียมงานสำหรับ Black Friday ไปถึงไหนแล้วก็ตาม
ไฮไลต์ของวันขอบคุณพระเจ้าคือตอนที่ Waffles ซึ่งตอนนี้ไม่ตัวเล็กแล้วด้วยน้ำหนักตัวถึง 40 ปอนด์ กระโดดงับไก่งวงชิ้นโตไปจากโต๊ะต่อหน้าต่อตาทุกคน ทำเอา Maxine ตกใจแทบแย่ "นี่เป็นครั้งแรกเลยนะที่มันทำแบบนี้" Jake ให้สัญญากับทุกคน
ทุกคนช่วยกันเก็บกวาดหลังจากนั้น และ Maxine ก็เข้านอนแต่เช้า
เธอต้องไปออฟฟิศแต่เช้าตรู่ในวันรุ่งขึ้น
ตอนตีสามครึ่ง เธออยู่ที่ออฟฟิศพร้อมกับทีมงานที่เหลือ ทีมเทคโนโลยีกำลังตรวจสอบ launch checklist เพื่อเตรียมพร้อมสำหรับยอดการใช้งานที่จะพุ่งสูงขึ้นในอีกไม่กี่ชั่วโมงข้างหน้า พวกเขาใช้ห้องประชุมอีกห้องสำหรับทีมเสริมที่ไม่สามารถยัดเข้าไปในห้องแรกได้ มันเป็นงานที่ใหญ่กว่าตอนทดสอบ 1% เมื่อวันอังคารมาก ห้องประชุมแต่ละห้องมีการจัดวางที่คล้ายกันคือโต๊ะรูปตัว U ขนาดใหญ่ที่มีคนนั่งอยู่ประมาณ 30 คน เธอเริ่มวันใหม่ในห้องที่รวมทีมเทคโนโลยีไว้ด้วยกัน
ใน war room ส่วนขยาย มีทีม Narwhal และ Orca อยู่ถัดจากทีม monitoring, ทีม web front-end, ทีม mobile และทีม back-end service อีกมากมายที่ดูแลเรื่องสินค้า, ราคา, การสั่งซื้อ และการจัดส่ง นอกจากนี้ยังมีทีมเทคโนโลยีอีกหลายทีมที่รอสแตนด์บายอยู่ในห้องแชท
Services ทั้งหมดนี้ต้องทำงานอย่างราบรื่นเพื่อให้สินค้าแสดงผลต่อลูกค้าและสั่งซื้อได้ บนหน้าจอทีวีขนาดใหญ่บนผนังมีกราฟทางเทคนิคแสดงจำนวนการเข้าชมเว็บไซต์ สถิติหน้าสินค้าที่ยอดนิยม รวมถึงการตรวจสุขภาพ (health checks) และ error ล่าสุดจาก services ทั้งหมดที่มีคนอยู่ในห้อง
ใน war room หลัก พวกเขาติดตั้งทีวีเครื่องที่สองซึ่งแสดงตัวชี้วัดทางเทคนิคเหล่านี้ไว้ด้วย และวันนี้พวกเขามีตัวแทนจากฝ่ายบริหารทั้งธุรกิจและเทคโนโลยี ทีม Unicorn และ Promotions ทั้งหมด และยังมีคนจากฝ่ายการเงินและบัญชีด้วย ทุกคนที่มีส่วนสำคัญต่างอยู่ที่นี่เพื่อรอดูว่าแคมเปญจะเป็นอย่างไร
ตอนตีสี่ครึ่ง Maxine อยู่กับ Kurt และ Maggie ใน war room หลัก เธอกำลังมองหาสิ่งที่จะช่วยทำได้ แต่ดูเหมือนทุกคนจะรู้หน้าที่ของตัวเองหมดแล้ว ณ จุดนี้ สิ่งที่เธอทำได้มีเพียงแค่การไปยืนเกะกะเท่านั้น พวกเขาเหลือเวลาอีก 30 นาทีก็จะเริ่มเปิดตัวแคมเปญแล้ว
Sarah ก็อยู่ที่นี่ด้วย เท่าที่ Maxine เห็น ดูเหมือนเธอกำลังโวยวายกับใครบางคนเรื่องราคาและคำโฆษณาของโปรโมชั่นตัวหนึ่ง
Maggie ก็อยู่ในวงล้อมนั้นด้วย สีหน้าดูไม่ค่อยดีนักพลางพูดว่า "ฟังนะ ฉันรู้ว่าเราอยากให้ข้อเสนอมันออกมาเพอร์เฟกต์ แต่เวลาสำหรับการแก้ไขมันคือเมื่อวาน ความเสี่ยงในการเปลี่ยนคำโฆษณามันสูงเกินไปสำหรับสิ่งที่จะส่งออกไปหาคนจำนวนมากขนาดนี้ มันอาจจะทำให้การเปิดตัวเลิกออกไปอีกชั่วโมงหนึ่งเลยนะ"
"นี่อาจจะดีพอสำหรับคุณ แต่มันไม่ดีพอสำหรับฉัน แก้ไขซะ เดี๋ยวนี้" Sarah พูดตัดบทโดยไม่ยอมให้มีการโต้เถียงใดๆ อีก
Maggie ถอนหายใจและเดินออกมาหา Kurt และ Maxine "เราคงต้องมีการเปลี่ยนแปลงบางอย่างแล้วล่ะ" เธอพูดพลางกลอกตา "ไม่ต้องสงสัยเลยว่านี่จะทำให้การเปิดตัวเลื่อนออกไปอย่างน้อยหนึ่งชั่วโมง"
"เดี๋ยวผมไปบอกทีมเทคโนโลยีห้องข้างๆ เอง" Kurt พูดพลางทำหน้าเซ็งขณะเดินออกจากห้องไป
หนึ่งชั่วโมงต่อมา ทุกอย่างก็พร้อมลุยอีกครั้ง Maggie ถามจากหน้าห้องว่า "ถ้าไม่มีใครคัดค้าน เราจะเริ่มตอนหกโมงเช้า อีก 15 นาทีหลังจากนี้"
เมื่อเริ่มเปิดตัว Maxine อยู่ใน business war room และเฝ้าดูจอมอนิเตอร์เหมือนกับคนอื่นๆ ภายในเวลาสองนาที มีคนกว่าหนึ่งหมื่นคนเข้ามาในเว็บไซต์และกำลังเข้าสู่ order funnel และอัตราการเข้ามายังคงเพิ่มขึ้นเรื่อยๆ และเช่นเคย CPU loads ทั้งหมดเริ่มขยับสูงขึ้น สูงกว่าตอนเปิดตัวทดสอบมาก
ผู้คนตบมือเมื่อจำนวนคำสั่งซื้อที่สำเร็จทะลุ 500 รายการ Maxine ทึ่งในระดับของลูกค้าที่ถูกดึงดูดเข้ามาด้วยการเปิดตัวครั้งนี้
เธอสะกดลมหายใจ หวังว่าการทำงานหนักเพื่อเสริมความแข็งแกร่งของระบบจะทำให้การเปิดตัวครั้งนี้ราบรื่นจนน่าเบื่อ เธอเฝ้าดูจำนวนคำสั่งซื้อที่ยังคงเพิ่มขึ้น... จนกระทั่งมันหยุดนิ่ง (flatline) เหมือนกับเมื่อวันอังคารเปี๊ยบ
"ให้ตายเถอะ ให้ตายเถอะ" Maxine พึมพำ มีบางอย่างผิดปกติอีกแล้ว และมันเกิดในส่วนเดิมของ order funnel ด้วย มีบางอย่างขวางไม่ให้คนกดชำระเงินจากตะกร้าสินค้า
Wes ตะโกนลั่น "ใครก็ได้บอกทีว่าเกิดอะไรขึ้นกับตะกร้าสินค้า! ใครมีข้อมูลหรือข้อความ error ที่เกี่ยวข้องบ้าง?"
Shannon เป็นคนแรกที่พูดขึ้นมาอีกครั้ง Maxine ทึ่งในความสามารถอันเหลือเชื่อของ Shannon ที่มักจะเป็นคนแรกที่ตรวจพบเหตุการณ์ "ตะกร้าสินค้าบนเว็บขึ้น error ค่ะ ตัวเลือกการจัดส่ง (fulfillment options) ไม่แสดง! ฉันเดาว่า fulfillment service บางตัวน่าจะล่ม กำลังลงรูป screenshot ในห้องแชทค่ะ"
ใครบางคนจากอีกฟั่งของห้องตะโกนขึ้นมา "โมบายแอป iOS แครชอีกแล้วครับ" Wes สบถ Manager ของทีม mobile app ก็สบถตาม
ทันใดนั้น Maxine ตัดขาดจากทุกสิ่งรอบตัว เพราะในวินาทีนั้น เธอเริ่มกลัวว่าบางที Data Hub อาจจะเป็นต้นเหตุของปัญหา เธอพยายามคิดทบทวนดูจนกระทั่งได้ยินคนจากทีมโมบายตะโกนขึ้นมาว่า "Wes! แอปเพิ่งจะแครชหลังจากผมกดปุ่มชำระเงิน ตอนที่มันควรจะแสดงรายละเอียดธุรกรรมทั้งหมด ผมคิดว่ามีการเรียกใช้ back-end service ตัวหนึ่งแล้วมัน timeout ผมนึกว่าเราแก้ทุกจุดที่อาจเกิดปัญหานี้ไปหมดแล้ว แต่เห็นชัดว่าเราพลาดไปจุดหนึ่ง เรากำลังพยายามหาว่าการเรียก service ตัวไหนที่เป็นปัญหา"
"นั่นอาจจะเป็นการเรียกใช้ Data Hub หรือเปล่า?" Maxine กระซิบถาม Tom
"ไม่แน่ใจครับ" Tom ตอบพลางครุ่นคิด "ผมไม่คิดว่ามีการเรียกจากโมบายแอปมาที่เราโดยตรงนะ..."
Maxine เปิด log ของ production Data Hub service บนแล็ปท็อปของเธอเพื่อหาสิ่งผิดปกติ เธอรู้สึกขอบคุณที่ตอนนี้เธอสามารถทำเรื่องนี้ได้ด้วยตัวเอง เธอเห็นเหตุการณ์การสั่งซื้อ (order events) เข้ามาสองสามรายการ ซึ่งไปสร้างการเรียกออกไป (outgoing calls) ยังระบบธุรกิจอื่นๆ อีก 4 รายการ ดูเหมือนทุกอย่างจะทำงานได้ปกติ
เมื่อไม่พบอะไร เธอจึงหันไปสนใจด้านหน้าห้องที่ Wes, Kurt และ Chris กำลังหารือกันอยู่ เมื่อเห็นว่าพวกเขากำลังปรึกษาอย่างเคร่งเครียด Maxine จึงเดินเข้าไปสมทบ เธอได้ยิน Wes ถามว่า "...สรุปแล้ว service ตัวไหนที่ล่ม?"
Chris และ Kurt ปรึกษากันอยู่ครู่หนึ่ง จนดูเหมือน Wes จะหมดความอดทน เขาหันไปหาคนทั้งห้องแล้วตะโกนข้ามเสียงอึกทึกว่า "ฟังนะทุกคน! มีบางอย่างในเส้นทางธุรกรรมระหว่างการเปิดตะกร้าสินค้าไปจนถึงการสั่งซื้อสำเร็จที่กำลังพัง Maxine รายชื่อของธุรกรรมและการเรียก service แต่ละตัวมีอะไรบ้าง?"
แม้จะตกใจที่ถูกถามกระทันหัน แต่เธอก็สามารถร่ายรายชื่อ API calls และ services 11 ตัวออกมาจากความจำได้ทันที Brent เสริมให้อีก 3 ตัว "ขอบคุณ Maxine และ Brent" Wes กล่าว
เขาหันไปบอกคนในห้องว่า "เอาละทุกคน พิสูจน์ให้ผมเห็นทีว่า service เหล่านั้นแต่ละตัวยังทำงานได้ปกติ!"
ไม่กี่นาทีต่อมา พวกเขาก็พบปัญหา เมื่อลูกค้าดูตะกร้าสินค้า พวกเขาจะเห็นรายละเอียดการสั่งซื้อ ทางเลือกการชำระเงิน และทางเลือกการจัดส่ง เมื่อทุกอย่างถูกต้อง ลูกค้าจะกดปุ่มสั่งซื้อสินค้า
ปรากฏว่า เมื่อแสดงหน้านี้ในโมบายแอปและบนเว็บ จะมีการเรียกไปยัง back-end service เพื่อตรวจสอบว่ามีทางเลือกการจัดส่งแบบไหนบ้างตามพื้นที่ของลูกค้า เช่น การส่งทางอากาศวันถัดไปหรือการส่งทางบก รวมถึงผู้ให้บริการอย่าง UPS และ FedEx
service นี้จะเรียกไปยัง external APIs ของผู้ให้บริการจัดส่งหลายราย และบางรายกำลังล้มเหลว Brent สงสัยว่าพวกเขาอาจจะถูกจำกัดอัตราการเข้าถึง (rate-limited) โดยผู้ให้บริการรายหนึ่ง เพราะเซิร์ฟเวอร์ของ Parts Unlimited ไม่เคยส่งคำถามมหาศาลขนาดนี้มาก่อน
Maxine แทบไม่เชื่อว่า service ที่ดูเหมือนจะเล็กน้อยขนาดนี้กำลังทำให้การเปิดตัวทั้งหมดตกอยู่ในอันตราย เธอยิ้มและจดบันทึกเรื่องนี้ไว้ เพราะเธอรู้ว่านี่น่าจะเป็นความปกติแบบใหม่ (new normal) แต่สำหรับสิ่งที่สำคัญระดับวิกฤต (mission-critical) ขนาดนี้ ไม่มีทางที่เราควรจะพึ่งพา external services มากขนาดนี้ เธอคิด เราต้องจัดการในกรณีที่ระบบเหล่านั้นล่มหรือตัดการเชื่อมต่อจากเราให้ได้อย่างนุ่มนวล (gracefully handle)
Maxine เข้าร่วมกลุ่มผู้นำทีมเทคโนโลยีที่ล้อมวงกันอยู่ด้านหน้าห้อง เธอเสนอว่า "ตอนที่เราเจอ shipping API error บางทีเราก็นำเสนอแค่ตัวเลือกการจัดส่งทางบก (ground shipment) ไปก่อนไหมคะ เราก็น่าจะรู้อยู่แล้วว่าการส่งแบบนี้มีให้ใช้เสมอ... คิดว่ายังไงกันบ้างคะ?"
หัวหน้าทีม fulfillment พยักหน้า และพวกเขาก็ร่วมกันหารือรายละเอียดกับ Wes และ Maggie อย่างรวดเร็ว พวกเขาตัดสินใจว่า ให้มีผลทันที หากไม่สามารถดึงข้อมูลจากผู้ให้บริการขนส่งทั้งหมดได้ ก็จะแสดงแค่การจัดส่งทางบกเป็นทางเลือกเดียว
ยังไงซะ การรับคำสั่งซื้อมาแล้วค่อยๆ ส่งไป ก็ยังดีกว่าปล่อยให้ลูกค้าเจอหน้า error
หัวหน้าทีมกล่าวว่า "ขอเวลาเรา 10 หรือ 15 นาทีเพื่อส่ง code change ออกไป เดี๋ยวผมจะมารายงานความคืบหน้าครับ" แล้วเขาก็รีบวิ่งออกจากห้องไป
สิบนาทีต่อมา Maxine เดินไปมาอย่างกระวนกระวาย รอให้ทีม fulfillment ประกาศว่าพวกเขากำลังส่งตัวแก้ไขขึ้น production เมื่อถึงเวลานั้น ทุกคนจะตบมือดีใจและเฉลิมฉลองกัน เธอรอยู่อย่างนั้นจนกระทั่งมีคนตะโกนขึ้นมาว่า "Wes! request ของเว็บเซิร์ฟเวอร์เริ่ม timeout แล้ว และ front-end servers ก็เริ่มแครช! นี่ไม่ใช่ error 404 นะครับ เซิร์ฟเวอร์ 2 ตัวเพิ่งจะ reboot ไปเอง และฝั่งลูกค้าเริ่มเจอ error 'unable to connect' แล้ว!"
Maxine มองไปที่หน้าจอ dashboard และต้องตกใจกับสิ่งที่เห็น เว็บเซิร์ฟเวอร์ทั้งฟาร์มมี CPU utilization เต็ม 100% โดยบางเครื่องมีเครื่องหมาย X ทับอยู่เพราะมันแครชอย่างหนัก เวลาในการโหลดหน้าเว็บ (page load times) เพิ่มจาก 700 มิลลิวินาที เป็นกว่า 20 วินาที ซึ่งในความรู้สึกนั่นคือนานชั่วนิรันดร์ และมันยังคงเพิ่มขึ้นเรื่อยๆ
นั่นหมายความว่าบางคนที่เข้ามาในหน้าเว็บจะไม่เห็นอะไรเลย เพราะ request สำหรับหน้านั้นไม่ได้รับการตอบสนอง
Wes จ้องมองกราฟเหมือนกัน แล้วลองโหลดหน้าเว็บในมือถือดู "ยืนยันครับ ใน browser มือถือผมก็โหลดอะไรไม่ขึ้นเลย ทีมเว็บเซิร์ฟเวอร์ เกิดอะไรขึ้นครับ?" เขาตะโกนถาม
"พวกเขาอยู่ห้องข้างๆ ครับ" Kurt บอก "เดี๋ยวผมไปดูให้" Maxine เดินตามไป
ในอีกสิบนาทีต่อมา พวกเขาได้รับรู้ว่าปัญหามันเลวร้ายแค่ไหน มีผู้คนจำนวนมากเป็นประวัติการณ์เข้าสู่ไซต์ e-commerce พวกเขาเคยคาดการณ์เรื่องนี้ไว้แล้ว นั่นคือเหตุผลที่ Brent เคยถล่มไซต์ด้วยกองทัพ bot ที่เขาสร้างขึ้นเองเพื่อให้แน่ใจว่าระบบจะรับ load หนักขนาดนั้นได้
แต่ดูเหมือนว่าพวกเขาจะพลาดอะไรบางอย่างที่สำคัญไป พวกเขาไม่ได้ทดสอบกับ "ลูกค้าจริงๆ" ที่เข้ามาในไซต์แล้วได้รับ "คำแนะนำสินค้า" (product recommendations) ตามโปรไฟล์ของตัวเอง นี่เป็นคอมโพเนนต์ใหม่ที่พวกเขาสร้างขึ้นในสัปดาห์ที่ผ่านมา คอมโพเนนต์นี้จะไม่แสดงผลสำหรับ bot แต่จะแสดงสำหรับลูกค้าจริงๆ ที่ล็อกอินเข้ามาเท่านั้น
เมื่อลูกค้าตัวจริงถาโถมเข้ามาในไซต์ คอมโพเนนต์นี้จึงทำการค้นหาข้อมูลใน database มหาศาลจากฝั่ง front-end servers ซึ่งไม่เคยถูกทดสอบในระดับสเกลขนาดนี้มาก่อน ตอนนี้ front-end servers เหล่านั้นกำลังล่มระเนระนาดภายใต้แรงกดดันเหมือนบ้านที่ทำจากไพ่
"ผมต้องการไอเดียที่จะทำให้ front-end servers รอดตายได้ ผมไม่สนว่ามันจะฟังดูบ้าแค่ไหน!" Wes พูดจากหน้าห้อง ความใหญ่โตของปัญหาเป็นที่ประจักษ์แก่ทุกคน 70% ของ traffic ที่เข้ามาคือผ่านทางเว็บ ส่วนที่ใหญ่ที่สุดของ order funnel ก็ยังเป็นเว็บ และถ้าเว็บล่ม เป้าหมายของ Black Friday ทั้งหมดก็จะพังทลายตามไปด้วย
"เพิ่มเซิร์ฟเวอร์เข้าไปในระบบอีกได้ไหม?" ใครบางคนพูดขึ้น Wes ตอบทันที "ทำเลย! ไม่ใช่คุณ Brent คุณอยู่ที่นี่ ให้คนอื่นไปทำ... ไอเดียอื่นล่ะทุกคน?"
ไอเดียอื่นๆ พรั่งพรูออกมา และเกือบทั้งหมดถูกปัดตกไป Brent พูดว่า "คอมโพเนนต์แนะนำสินค้าคือสิ่งที่ทำให้เซิร์ฟเวอร์แบก load มากผิดปกติ เราปิดมันไว้ก่อนจนกว่า traffic จะลดลงได้ไหมครับ?"
Maxine ร้องครางในใจ พวกเขาทำงานกันหนักมากเพื่อให้มันใช้งานได้ แต่ตอนนี้พวกเขาอาจจะต้องรื้อสื่อมันทิ้งเพื่อให้ไซต์ยังคงรันต่อได้
"น่าสนใจ ตกลงว่าเราทำได้หรือไม่ได้?" Wes ถามคนในห้อง
กลุ่มผู้จัดการและหัวหน้าทีมเทคนิคล้อมวงคุยกับ Maxine และ Brent และช่วยกันระดมสมองหาทางออก ในที่สุดพวกเขาก็ตัดสินใจว่าจะเปลี่ยนแค่หน้า HTML โดยการใส่ comment ปิดคอมโพเนนต์แนะนำสินค้าไปเสีย เป็นวิธีการแก้ปัญหาแบบตรงไปตรงมา (brute force) ที่ Maxine ชื่นชอบ เพราะไม่ต้องมีการแก้ไข code หัวหน้าทีม front-end บอกว่า "เราเปลี่ยนหน้า HTML แล้วส่งไปที่เซิร์ฟเวอร์ทุกเครื่องได้ภายใน 10 นาทีครับ"
"ลุย!" Wes สั่ง
Maxine ยืนดูวิศวกรสองคนขณะที่พวกเขากำลังแก้ไขไฟล์ HTML อย่างระมัดระวัง พวกเขาต้องระวังมากเพราะความผิดพลาดใน HTML เพียงนิดเดียวก็สามารถทำพังเว็บไซต์ได้พอๆ กับการแก้ code เมื่อเสร็จแล้ว พวกเขาร่วมกันตรวจสอบ คอมมิตการเปลี่ยนแปลงเข้าสู่ version control และเริ่มทำการ push ขึ้น production
พวกเขาต้องแปลกใจเมื่อไม่เห็นผลกระทบใดๆ ต่อประสิทธิภาพของ front-end เลย แม้จะผ่านไปสามนาทีแล้วก็ตาม พวกเขายังคงรอดูความเปลี่ยนแปลง แต่เซิร์ฟเวอร์ก็ยังคงทยอยพังอยู่เรื่อยๆ "มันเกิดอะไรขึ้น? เราพลาดอะไรไป?" วิศวกรคนนั้นพูด พยายามใจเย็นอย่างเห็นได้ชัดพลางกดยืนยันซ้ำแล้วซ้ำเล่าว่าไฟล์ HTML ที่เขาแก้ไขถูกโหลดขึ้น browser แล้วจริงๆ
"ฉันเห็นการเปลี่ยนแปลงของคุณใน HTML ที่ไซต์ส่งมาแล้วค่ะ" Maxine ประกาศเสียงดัง "มันต้องมีเส้นทางอื่นอีกแน่ๆ ที่แสดงคอมโพเนนต์แนะนำสินค้าออกมา?"
Wes ยืนดูอยู่ข้างหลังพวกเขา "ทุกคน ไฟล์ HTML ใหม่ถูกส่งขึ้น production แล้ว แต่เรายังเจอ CPU load ที่สูงเกินปกติอยู่ ผมต้องการคำยืนยันว่าคอมโพเนนต์แนะนำสินค้ายังถูกแสดงผลอยู่ที่ไหนอีกหรือเปล่า ขอสมมติฐานและไอเดียหน่อย!"
ใช้เวลาอีกสี่นาทีกว่าที่พวกเขาจะพบว่ามีอีกจุดหนึ่งที่คอมโพเนนต์นี้สามารถถูกแสดงผลได้ Maxine มองดูขณะที่พวกเขาส่งไฟล์ HTML อีกไฟล์ขึ้นไป และเธอรู้สึกโล่งอกเมื่อเห็นว่าในอีก 60 วินาทีต่อมา CPU load ลดลงถึง 30%
"ยินดีด้วยทุกคน" Wes พูดพลางหยุดยิ้ม เขาพูดต่อ "แต่นั่นยังไม่พอที่จะทำให้เซิร์ฟเวอร์ของเราอยู่รอดได้ เราจะทำอะไรได้อีกเพื่อลด load ลงครับทุกคน?"
มีไอเดียถูกเสนอมาอีก หลายไอเดียถูกปัดตก แต่บางไอเดียก็ถูกนำไปใช้ทันที Load ของเซิร์ฟเวอร์ลดลงอีก 50% เมื่อมีการย้ายไฟล์รูปภาพทั่วไปออกจากเว็บเซิร์ฟเวอร์ท้องถิ่นและย้ายไปไว้ที่ Content Distribution Network (CDN) แทน ขั้นตอนนี้ใช้เวลาเกือบหนึ่งชั่วโมงกว่าจะเสร็จสมบูรณ์ แต่มันก็เพียงพอที่จะป้องกันไม่ให้ไซต์ล่มโดยสิ้นเชิง
และมันก็เป็นเช่นนี้ไปตลอดทั้งวัน สิ่งผิดพลาดนับร้อยเกิดขึ้น มีทั้งเรื่องใหญ่เรื่องเล็ก และไม่เคยมาแค่ปัญหาเดียวพร้อมๆ กัน เหมือนกับการทำ post mortem พวกเขาได้เรียนรู้ว่าความเข้าใจที่พวกเขามีต่อระบบที่ใหญ่โตและซับซ้อนมหาศาลนี้ยังไม่สมบูรณ์เพียงใด และตอนนี้พวกเขาต้องควบคุมมันให้ทำงานภายใต้สถานการณ์ที่กดดันสุดขีด
เวลาผ่านไปหลายชั่วโมง มีช่วงเวลาของรอยยิ้มเหนื่อยๆ และการตบมือให้กำลังใจกัน (high fives) เมื่อการกระทำที่เหมือนฮีโร่ช่วยให้ทุกอย่างยังคงรันต่อไปได้ จำนวนคำสั่งซื้อที่สำเร็จยังคงเพิ่มสูงขึ้น และ Maxine ก็รู้สึกโล่งใจที่ยอดการสั่งซื้อพุ่งสูงสุดช่วงบ่ายสามโมง ทำให้ผู้คนเริ่มมีความหวังว่าช่วงที่เลวร้ายที่สุดอาจจะผ่านพ้นไปแล้ว
แปลกดีที่ Maxine เห็นแวบๆ ว่า Sarah ทำหน้าบูดบึ้งอยู่ข้างสนาม—แต่แม้แต่เรื่องนี้ก็ไม่ทำให้เธอกวนใจ Maxine ภูมิใจมากที่ทีมของเธอทำได้ดี รับมือกับทุกวิกฤตที่โถมเข้ามา ปรับตัวและเรียนรู้อย่างรวดเร็ว และทุกคนรู้ดีว่าอุปสรรคทั้งหมดนี้คือเรื่องที่ดี เพราะมันเป็นผลพวงจากความสำเร็จอันล้นหลามของโปรโมชั่น Black Friday ที่เป็นไปได้ด้วย Unicorn Project
พอถึงห้าโมงเย็น ก็ชัดเจนว่าช่วงที่เลวร้ายที่สุดผ่านพ้นไปแล้ว Traffic การสั่งซื้อยังคงสูงมาก แต่ลดลง 50% จากช่วงที่พุ่งสูงสุดในช่วงเช้า จำนวนความล้มเหลวและเหตุการณ์เกือบพลาดลดลงจนอยู่ในระดับที่ไม่น่าตกใจแล้ว และผู้คนก็เริ่มผ่อนคลายกันได้จริงๆ หลักฐานของเรื่องนี้คือ Wes ตอนนี้เขาสวมหมวกเบสบอลของ Parts Unlimited ที่มีรูปยูนิคอร์นและเปลวไฟขนาดใหญ่ประดับอยู่ที่ด้านข้าง เขากำลังหัวเราะและหยอกล้อกับคนรอบข้าง พลางแจกหมวกให้ทุกคนที่เดินผ่าน
ก่อนห้าโมงเย็นเล็กน้อย Maggie เดินไปที่หน้าห้อง พร้อมกับแชมเปญและแก้วพลาสติกที่พนักงานนำเข้ามา เมื่อทุกคนมีแก้วในมือแล้ว เธอก็พูดว่า "วันนี้เป็นวันที่สุดยอดมากทุกคน! เราทำสำเร็จแล้ว!"
ทุกคนส่งเสียงเชียร์ และ Maxine ดื่มจนหมดแก้ว เธอหมดแรงแต่ก็แทบรอไม่ไหวที่จะได้ยินผลลัพธ์ทางธุรกิจจากทุกสิ่งที่พวกเขาทำในวันนี้
"นี่คือแคมเปญดิจิทัลที่ใหญ่ที่สุดเท่าที่บริษัทนี้เคยทำมา" Maggie กล่าว "วันนี้เราส่งอีเมลมากกว่าครั้งไหนๆ เราส่งการแจ้งเตือนบนโมบายแอปมากกว่าครั้งไหนๆ เรามี response rates สูงที่สุด conversion rates สูงที่สุด เรามียอดขาย e-commerce ในวันนี้สูงกว่าวันอื่นๆ ในประวัติศาสตร์ของบริษัท เราน่าจะมีกำไรจากการขายในวันนี้สูงกว่าวันอื่นๆ ด้วยเช่นกัน ยูนิคอร์นโปรเจกต์ทำได้สุดยอดไปเลยใช่ไหมล่ะ?"
Maxine หัวเราะร่วนและเชียร์ดังลั่นพร้อมกับทุกคนรอบตัวเธอ
Maggie พูดต่อว่า "มันต้องใช้เวลาหลายวันกว่าจะได้ตัวเลขสรุปสุดท้าย แต่คุณสามารถเห็นบนหน้าจอข้างหลังฉันได้ว่า วันนี้วันเดียวเรามียอดจองรายได้กว่า 29 ล้านดอลลาร์ เราทำลายสถิติยอดขายของปีที่แล้วไปอย่างไม่เห็นฝุ่น!"
Maggie มองไปรอบๆ ห้องครู่หนึ่ง เชียร์อีกครั้ง แล้วค่อยๆ พูดว่า "นี่คือจุดเปลี่ยนสำคัญ (watershed moment) สำหรับ Parts Unlimited นี่คือสิ่งที่เราพยายามเอื้อมให้ถึงมานานหลายปี นี่แสดงให้เห็นว่าแม้แต่ม้าก็สามารถทำสิ่งที่เหมือนยูนิคอร์นได้ เชื่อฉันเถอะ สิ่งนี้จะทำให้ผู้คนต้องเหลียวมอง และงานของเราตอนนี้คือการเริ่มฝันให้ใหญ่ขึ้น เราได้แสดงให้เห็นแล้วว่าทีมธุรกิจและเทคโนโลยีที่ยอดเยี่ยมเมื่อทำงานร่วมกันจะทำอะไรได้บ้าง และเราต้องยกระดับความฝัน เป้าหมาย และความทะเยอทะยานของผู้นำธุรกิจของเราขึ้นไปอีก"
"สิ่งที่ดีกว่าและใหญ่กว่ากำลังจะตามมาทุกคน" เธอกล่าว "แต่ในระหว่างนี้ เราทุกคนได้รับสิทธิ์ในการเฉลิมฉลอง... เอ่อ หมายความว่า เมื่อ Wes บอกว่าเราปลอดภัยพอที่จะฉลองได้น่ะนะ Kurt และ Maxine ขึ้นมาพูดอะไรหน่อยสิ"
Kurt เดินไปหา Maggie พลางหัวเราะและกวักมือเรียก Maxine ให้ขึ้นไปที่หน้าห้องด้วยกัน "แด่ทีมเทคโนโลยีสุดเจ๋งที่สนับสนุนทีม Promotions ครับ! เรายอมรับความเสี่ยงมากมาย และเราทำในสิ่งที่ไม่เคยทำมาก่อนในบริษัทนี้ อย่างที่ Maggie เพิ่งพูดไป เรามีโอกาสสร้างความแตกต่างอย่างมีนัยสำคัญให้กับผลประกอบการของบริษัท"
Kurt หันไปหา Maxine เห็นได้ชัดว่ารอให้เธอพูดอะไรบางอย่าง Maxine มองดูทุกคนครู่หนึ่ง "ฉันภูมิใจมากที่ได้เป็นส่วนหนึ่งของความพยายามนี้ค่ะ Kurt พูดถูกที่เรายอมรับความเสี่ยงมากมายเพื่อให้มาถึงจุดนี้ และฉันคิดว่าเราทุกคนได้เรียนรู้อะไรมากมายในการเดินทางครั้งนี้ ฉันไม่อยากเชื่อเลยว่าเราทำอะไรสำเร็จไปตั้งมากมายนับตั้งแต่ฉันถูกเนรเทศมาที่ Phoenix Project เมื่อสองเดือนก่อน การทำงานใน Unicorn Project เป็นหนึ่งในสิ่งที่คุ้มค่าและสนุกที่สุดที่ฉันเคยทำมา และฉันไม่เคยภูมิใจเท่าวันนี้มาก่อนเลยค่ะ"
"และฉันแทบรอไม่ไหวที่จะเฉลิมฉลองกับพวกคุณทุกคนในคืนนี้ เพราะฉันได้ยินมาว่า Kurt จะเลี้ยงเหล้าที่ Dockside ค่ะ! แต่มีสิ่งหนึ่งที่ฉันต้องพูด" เธอเว้นจังหวะรอให้เสียงเชียร์เงียบลง "แม้ว่าสิ่งที่เราทำสำเร็จในวันนี้จะยอดเยี่ยมและน่าทึ่งแค่ไหน แต่เรายังห่างไกลจากคำว่าเสร็จสิ้นค่ะ เราเปรียบเหมือน Blockbuster ที่เพิ่งจะรู้วิธีทำโปรโมชั่นด้วยคูปองกระดาษ ถ้าคุณคิดว่าแค่นั้นเพียงพอจะรักษา Parts Unlimited ไว้ได้ คุณคงกำลังฝันกลางวันอยู่แน่ๆ"
"Maggie พูดถูกค่ะ เราเพิ่งจะเริ่มต้นการต่อสู้ที่แท้จริง เรายังไม่ได้ทำลาย Death Star เลย ยังอีกไกลมาก มันยังคงอยู่ตรงนั้น สิ่งที่เราทำในวันนี้คือเราเพิ่งจะรู้วิธีขับ X-wings ของเรา โลกของเรายังคงอยู่ในอันตรายร้ายแรง" เธอกล่าวต่อ "แต่ในที่สุดเราก็มีเครื่องมือ มีวัฒนธรรม มีความเป็นเลิศทางเทคนิค และมีผู้นำที่จะชนะการต่อสู้ครั้งนี้ได้ ฉันแทบรอไม่ไหวสำหรับบทต่อไปที่จะพิสูจน์ว่าเราไม่ใช่ Blockbuster หรือ Borders, Toys“R”Us หรือ Sears เราเข้ามาเพื่อชนะ ไม่ใช่เพื่อเป็นเหยื่ออีกรายของวิกฤตรีเทล (Retail Apocalypse)!"
เมื่อพูดสิ่งที่ต้องการจบแล้ว Maxine เงยหน้าขึ้นและเห็นสีหน้าตกตะลึงของทุกคน 'อุ๊ย' Maxine คิด พลางตระหนักว่าเธอควรจะเก็บสุนทรพจน์นี้ไว้คุยส่วนตัวที่ Dockside มากกว่า ทันใดนั้นเธอได้ยิน Maggie พูดว่า "โอ้โห Maxine พูดถูกเผงเลย! ฉันจะเอาประโยคนี้ไปใช้กับ Steve และ Sarah แน่นอน ฉันแทบรอไม่ไหวสำหรับรอบที่ 2 แล้ว!"
ทุกคนหัวเราะแล้วเริ่มตบมือและเชียร์ โดย Maggie เชียร์ดังกว่าใครเพื่อน ถึงอย่างนั้นเมื่อมีการกล่าวถึงชื่อ Sarah Maxine ก็มองไปรอบๆ ด้วยความสงสัย เธอไม่เห็น Sarah อยู่ที่ไหนเลย 'นี่เป็นสัญญาณที่ไม่ดีเลย' Maxine คิด ปกติแล้วเธอควรจะอยู่ที่นี่เพื่อเคลมผลงาน หรือไม่ก็กระโจนใส่ใครสักคนหากมีอะไรผิดพลาดร้ายแรง แต่ตอนนี้ Maxine รู้สึกตื่นเต้นเกินกว่าจะมาใส่ใจเรื่องนั้นจริงๆ
Kurt และ Maxine เป็นคนแรกๆ ที่มาถึง Dockside พวกเขาดันโต๊ะมาต่อกันหลายตัวและสั่งเบียร์เหยือกมารอสำหรับกลุ่มใหญ่ที่จะตามมาในไม่ช้า Kurt มองตรงมาที่ Maxine "จะว่าไป นี่เป็นโอกาสดีที่ผมจะบอกคุณว่าผมซาบซึ้งกับทุกสิ่งที่คุณทำมากแค่ไหน เราคงทำสิ่งนี้ไม่ได้ถ้าไม่มีคุณ... การก่อกบฏเปลี่ยนไปตั้งแต่วันที่คุณก้าวเข้ามา"
ได้ยินดังนั้น Maxine ก็ยิ้ม "ยินดีค่ะ Kurt! เราเป็นทีมที่ยอดเยี่ยม และฉันก็รู้สึกขอบคุณที่คุณลากฉันเข้ามาพัวพันกับเรื่องทั้งหมดนี้"
เธอนั่งลงขณะที่ผู้คนเริ่มทยอยกันเข้ามาและจิบไวน์อย่างมีความสุข เธอเพิ่งรู้เมื่อสองสามสัปดาห์ก่อนว่า Erik สั่งบาร์เทนเดอร์ไว้ว่าให้เสิร์ฟไวน์จากสต็อกพิเศษซึ่งมาจากไร่องุ่นของเพื่อนเขาให้เธอเสมอ
เธอเคยลองไปหาซื้อดู แต่ก็ต้องถอยเมื่อรู้ว่าราคาเท่าไหร่ ดูเหมือนว่า Erik จะช่วยจ่ายค่าไวน์ให้เธอที่นี่อย่างมหาศาล เธอซื้อไว้หนึ่งขวดเพื่อเก็บไว้ดื่มกับสามีในโอกาสพิเศษ
ราวกับเขารู้ว่าเธอกำลังคิดถึงเรื่องไวน์ Erik เดินเข้ามาและคว้าที่นั่งข้างๆ เธอ "ยินดีด้วยกับคุณทั้งคู่ วันนี้คุณทำได้ยอดเยี่ยมมาก ตอนนี้คุณต้องแสดงให้ Steve และ Dick เห็นว่าอนาคตต้องการการสร้างองค์กรแห่งการเรียนรู้ที่คล่องตัว (dynamic, learning organization) ที่ซึ่งการทดลองและการเรียนรู้เป็นส่วนหนึ่งของงานประจำวันของทุกคน แปลกดีนะ ตอนที่ Steve เป็น VP ฝ่ายการผลิต เขาภูมิใจมากที่มีข้อเสนอแนะจากคนงานในโรงงานนับร้อยถูกนำไปใช้เพื่อปรับปรุงความปลอดภัย ลดงานที่น่าเบื่อ (toil) เพิ่มคุณภาพ และเพิ่มการไหลลื่นของงาน (flow) นั่นก็เป็นรูปแบบหนึ่งของการทดลองอย่างต่อเนื่องเช่นกัน ตอนนี้คุณต้องการสิ่งนั้นในระดับที่ใหญ่กว่ามาก โดยปลดปล่อยมันออกจากพันธนาการของการบริหารโครงการ (project management) และไซโลตามหน้าที่งาน (functional silos)"
"อุดมคติข้อที่ 5 คือเรื่องความมุ่งเน้นไปที่ลูกค้าอย่างไม่ลดละ (ruthless Customer Focus) ที่ซึ่งคุณกำลังพยายามทำสิ่งที่ดีที่สุดเพื่อพวกเขาจริงๆ แทนที่จะมุ่งเน้นเป้าหมายที่แคบกว่าซึ่งพวกเขาไม่ได้สนใจ ไม่ว่าจะเป็นแผนงานภายในของคุณ หรือวิธีการวัดผลตามหน้าที่งาน" เขากล่าว "แต่เราจะถามว่าการกระทำในแต่ละวันของเราช่วยปรับปรุงชีวิตของลูกค้า สร้างคุณค่าให้พวกเขา และพวกเขาจะยอมจ่ายเงินให้เราไหม และถ้าพวกเขาไม่จ่าย บางทีเราก็ไม่ควรทำมันเลย"
Erik ลุกขึ้น และบาร์เทนเดอร์คนหนึ่งก็เดินเข้ามาพร้อมไวน์ขวดที่เพิ่งเปิดใหม่ Erik รับมาวางตรงหน้า Maxine พร้อมขยิบตาให้ "ยินดีด้วยนะ Maxine คืนนี้ไว้คุยกันใหม่!"
เขาเดินจากไปทันทีที่เพื่อนร่วมทีมอีกหกคนเดินผ่านประตูเข้ามา Maggie หันไปถาม Maxine และ Kurt ว่า "นั่นเขาคุยเรื่องอะไรกันเหรอ?"
"ฉันเองก็กำลังพยายามหาคำตอบอยู่เหมือนกันค่ะ" Maxine กล่าว "แต่มันไม่ใช่เรื่องที่รอถึงสัปดาห์หน้าไม่ได้ บางทีเราอาจจะหาจังหวะคุยกันคืนนี้... แต่ในระหว่างนี้ มาฉลองกันเถอะ!"
เช้าวันรุ่งขึ้นเมื่อ Maxine ตื่นมา เธอรู้สึกปวดหัวตุบๆ นอกจากงานฉลองที่ Dockside แล้ว เธอและสามียังดื่มต่ออีกนิดหน่อยขณะดูซีรีส์เรื่องโปรดจนดึกดื่น เธอจำไม่ได้ด้วยซ้ำว่าเผลอหลับไปตอนไหน คงเป็นเพราะความเหนื่อยล้าที่ถาโถมเข้ามาทันที
เธออยากจะนอนต่อในเช้าวันเสาร์นี้ แต่เธอก็กวาดสายตาดูโทรศัพท์ มีการพูดคุยกันในห้องแชทเกี่ยวกับปัญหาที่กำลังเกิดขึ้นที่หน้าร้าน ดูเหมือนผู้จัดการร้านกำลังเจอปัญหาเพราะลูกค้าแห่กันมาซื้อสินค้าโปรโมตจนรับไม่ไหว สินค้าหมดเกลี้ยง และต้องใช้เวลาถึง 15 นาทีต่อลูกค้าหนึ่งรายในการทำใบสั่งซื้อย้อนหลัง (rain check) เพราะต้องคีย์ข้อมูลลงในระบบสั่งซื้อภายในที่แสนอืดอาดอีกตัวหนึ่ง
ทีมแอปในร้านถูกส่งไปยังหน้าร้านเพื่อหาวิธีเร่งความเร็ว บางคนคิดว่าพวกเขาสามารถเขียนแอปง่ายๆ บนแท็บเล็ตเพื่อทำให้ขั้นตอนนี้ง่ายขึ้นได้ Maxine ชอบไอเดียนี้ และเธอมั่นใจเต็มที่ว่าพวกเขาจะหาวิธีแก้ไขที่ทำให้ผู้จัดการร้านและพนักงานมีความสุขได้
เธอยิ้มด้วยความพอใจที่ปัญหานี้สามารถแก้ไขได้โดยไม่ต้องมีเธอ ในช่วงเดือนที่ผ่านมา เธอเติบโตขึ้นจนไว้วางใจและเคารพเพื่อนร่วมทีม และเห็นคุณค่าในสิ่งที่พวกเขาทำ
Maxine ยิ้มกว้างเมื่อมองไปที่ตั๋วงาน Comic-Con ที่ Jake ซื้อให้เธอและครอบครัวเมื่อวานนี้
เธอได้กลิ่นเบคอนและไข่ Jake คงกำลังทำมื้อเช้าอยู่แน่ๆ เธอคิด บางทีเธออาจจะกลับไปนอนต่อได้หลังจากกินอิ่ม ชีวิตเริ่มดีขึ้นเรื่อยๆ จริงๆ