ผมเดินตามแพตตี้และเวส ผ่านห้อง NOC เข้าสู่โซนคอกทำงานที่วางเรียงรายกันเป็นตับ เรามาหยุดอยู่ที่พื้นที่ทำงานขนาดใหญ่ที่เกิดจากการทุบคอกทำงาน 6 คอกรวมกัน มีโต๊ะตัวใหญ่ตั้งชิดผนังฝั่งหนึ่ง พร้อมคีย์บอร์ดและจอมอนิเตอร์ LCD 4 จอ ดูเหมือนโต๊ะเทรดหุ้นในวอลล์สตรีทเลย มีเซิร์ฟเวอร์วางกองอยู่เต็มไปหมด และทุกตัวก็มีไฟกะพริบระยิบระยับ บนโต๊ะแต่ละส่วนเต็มไปด้วยมอนิเตอร์ที่แสดงกราฟ, หน้าต่างล็อกอิน, โปรแกรมเขียนโค้ด (code editors), เอกสาร Word และแอปพลิเคชันอีกนับไม่ถ้วนที่ผมไม่รู้จัก
เบรนต์กำลังรัวคีย์บอร์ดใส่หน้าต่างโปรแกรมหนึ่งอย่างเมามัน โดยไม่สนใจสิ่งรอบข้างเลย ผมได้ยินเสียงสายประชุมของ NOC ดังมาจากโทรศัพท์ของเขา ดูเหมือนเขาจะไม่กังวลเลยว่าเสียงสปีกเกอร์โฟนที่ดังลั่นจะไปรบกวนเพื่อนบ้านรอบๆ หรือเปล่า
“เฮ้ เบรนต์ พอจะมีเวลาสักนาทีไหม?” เวสถามเสียงดังพลางวางมือลงบนไหล่ของเขา
“รอเดี๋ยวไม่ได้เหรอครับ?” เบรนต์ตอบโดยไม่แม้แต่จะเงยหน้ามอง “ตอนนี้ผมยุ่งมากจริงๆ กำลังแก้ปัญหา SAN อยู่เนี่ย เห็นไหม?”
เวสลากเก้าอี้มานั่ง “เออ นั่นแหละคือเรื่องที่เราจะมาคุยกัน”
เมื่อเบรนต์หันกลับมา เวสก็พูดต่อ “เล่าให้ฟังอีกทีซิว่าเมื่อคืนเกิดอะไรขึ้น อะไรทำให้คุณสรุปว่าการอัปเกรด SAN เป็นสาเหตุที่ทำให้ระบบรันเงินเดือนล้มเหลว?”
เบรนต์กลอกตา “ผมช่วยวิศวกร SAN คนหนึ่งอัปเกรดเฟิร์มแวร์หลังจากที่ทุกคนกลับบ้านไปหมดแล้ว มันใช้เวลานานกว่าที่คิดไว้เยอะเลยครับ—ไม่มีอะไรเป็นไปตามคู่มือทางเทคนิค (tech note) เลย สถานการณ์มันค่อนข้างตึงเครียด แต่สุดท้ายเราก็ทำเสร็จประมาณหนึ่งทุ่ม
“เราเปิดเครื่อง SAN ใหม่ (reboot) แต่แล้วระบบตรวจสอบตัวเอง (self-tests) ทั้งหมดก็ดันล้มเหลว เราพยายามงมกันอยู่ประมาณ 15 นาทีเพื่อหาว่าเกิดอะไรขึ้น และตอนนั้นเองที่เราได้รับอีเมลแจ้งว่าระบบรันเงินเดือนล้มเหลว ผมเลยอุทานออกมาว่า ‘จบเห่แล้ว’
“เวอร์ชันของเรามันเก่าเกินไปหลายเวอร์ชันเลยครับ เวนเดอร์ SAN คงไม่เคยทดสอบขั้นตอนการอัปเกรด (upgrade path) แบบที่เรากำลังทำอยู่แน่ๆ ผมเลยโทรหาคุณ บอกคุณว่าผมอยากจะยกเลิกภารกิจ (pull the plug) พอคุณพยักหน้าอนุมัติ เราก็เริ่มทำการย้อนกลับ (rollback)
“นั่นแหละครับคือตอนที่ SAN มันล่ม (crash)” เขาพูดพลางทิ้งตัวลงกับเก้าอี้ “มันไม่ได้แค่ทำให้ระบบจ่ายเงินเดือนล่มนะ แต่มันพ่วงเอาเซิร์ฟเวอร์ตัวอื่นๆ พังไปด้วยกันเป็นพรวนเลย”
“เราตั้งใจจะอัปเกรดเฟิร์มแวร์ของ SAN มาหลายปีแล้ว แต่ก็ไม่เคยหาโอกาสทำได้เสียที” เวสอธิบายพลางหันมาทางผม “เคยเกือบจะได้ทำครั้งหนึ่ง แต่ตอนนั้นเราหาช่วงเวลาปิดซ่อมบำรุง (maintenance window) ที่นานพอไม่ได้ ประสิทธิภาพของมันแย่ลงเรื่อยๆ จนถึงขั้นที่แอปพลิเคชันสำคัญหลายตัวเริ่มได้รับผลกระทบ สุดท้ายเมื่อคืนนี้เราเลยตัดสินใจยอมกัดฟัน (bite the bullet) ทำการอัปเกรดเสียที”
ผมพยักหน้า ทันใดนั้น โทรศัพท์ของผมก็ดังขึ้น
แอนโทรมา ผมเลยกดเปิดลำโพง
“ตามที่คุณแนะนำเลยค่ะ เราไปดูข้อมูลที่ดึงมาจากฐานข้อมูลเงินเดือนเมื่อวาน รอบการจ่ายเงินที่แล้วปกติดีค่ะ แต่สำหรับรอบนี้ เลขประกันสังคม (Social Security numbers) ของพนักงานรายชั่วโมงในโรงงานกลายเป็นตัวอักษรขยะ (gibberish) ไปหมดเลย แถมช่องชั่วโมงทำงานและช่องค่าจ้างก็เป็นศูนย์หมดด้วย ไม่เคยมีใครเห็นอะไรแบบนี้มาก่อนเลยค่ะ”
“มีแค่ช่องเดียวที่เป็นตัวอักษรขยะเหรอครับ?” ผมถามพลางเลิกคิ้วด้วยความประหลาดใจ “ที่ว่า ‘ตัวอักษรขยะ’ นี่คือยังไงครับ? ในช่องนั้นมันแสดงผลเป็นอะไร?”
เธอพยายามอธิบายสิ่งที่เห็นบนหน้าจอ “คือมันไม่ใช่ทั้งตัวเลขหรือตัวอักษรน่ะค่ะ มีรูปหัวใจ รูปโพดำ แล้วก็อักขระยึกยือ... แถมยังมีอักษรต่างประเทศที่มีจุดข้างบน (umlauts) เต็มไปหมดเลย... และไม่มีการเว้นวรรคเลยค่ะ เรื่องนี้สำคัญไหมคะ?”
เมื่อเบรนต์หัวเราะหึๆ เมื่อได้ยินแอนพยายามอ่านสัญญาณรบกวน (line noise) ออกมาดังๆ ผมเลยส่งสายตาดุไปให้เขา “ผมว่าผมพอจะนึกภาพออกแล้วครับ” ผมบอก “นี่เป็นคำใบ้ที่สำคัญมาก ช่วยส่งสเปรดชีตที่มีข้อมูลเสียนั้นมาให้ผมหน่อยได้ไหมครับ?”
เธอตอบตกลง “อ้อ แล้วตอนนี้ดาต้าเบสหลายตัวล่มอยู่หรือเปล่าคะ? แปลกจัง เมื่อคืนยังใช้ได้อยู่เลย”
เวสพึมพำอะไรบางอย่างในลำคอ พร้อมส่งสัญญาณให้เบรนต์เงียบก่อนที่จะทันได้พูดอะไรออกมา
“เอ่อ... ครับ เราทราบปัญหาแล้วและกำลังจัดการอยู่เหมือนกันครับ” ผมตอบด้วยเสียงเรียบเฉย
เมื่อวางสาย ผมถอนหายใจด้วยความโล่งอก ขอบคุณสิ่งศักดิ์สิทธิ์ทั้งหลายที่คอยคุ้มครองคนที่ต้องคอยตามแก้ปัญหาและดับไฟหน้างานแบบนี้
“ข้อมูลในฐานข้อมูลเสียแค่ช่องเดียวงั้นเหรอ? ไม่เอาน่าพวกคุณ แบบนี้มันฟังดูไม่เหมือนปัญหาจาก SAN เลยนะ” ผมพูด “เบรนต์ เมื่อวานนี้มีอะไรเกิดขึ้นอีกไหม นอกจากการอัปเกรด SAN ที่น่าจะเป็นสาเหตุให้ระบบจ่ายเงินเดือนล้มเหลว?”
เบรนต์นั่งหลังค่อมบนเก้าอี้ หมุนตัวไปมาพลางใช้ความคิด “เอ่อ... จะว่าไป พอคุณพูดขึ้นมา ผมก็นึกได้ว่า... เมื่อวานมี Developer ของแอปพลิเคชันบันทึกเวลาโทรหาผม ถามคำถามแปลกๆ เกี่ยวกับโครงสร้างตารางฐานข้อมูล (database table structure) ตอนนั้นผมกำลังวุ่นอยู่กับการทำ VM สำหรับทดสอบ Phoenix พอดี ผมเลยตอบเขาไปแบบส่งๆ เพื่อจะได้กลับไปทำงานต่อ คุณคงไม่คิดว่าเขาทำอะไรจนแอปพังหรอกนะ ใช่ไหมครับ?”
เวสหันไปที่สปีกเกอร์โฟนที่ต่อสายประชุมของ NOC ค้างไว้ตลอดเวลาอย่างรวดเร็ว แล้วกดเปิดไมค์ “เฮ้ทุกคน เวสพูดนะ ผมอยู่กับเบรนต์และแพตตี้ แล้วก็อยู่กับเจ้านายใหม่ของเรา บิล พาลเมอร์ สตีฟ มาสเตอร์ส มอบหมายให้เขาดูแล IT Ops ทั้งหมด ดังนั้นฟังทางนี้ให้ดีนะพวกเรา”
ความปรารถนาของผมที่จะให้มีการประกาศรับตำแหน่งใหม่อย่างเป็นทางการและเป็นระเบียบดูเหมือนจะเป็นไปได้ยากขึ้นเรื่อยๆ
เวสพูดต่อ “มีใครพอจะรู้อะไรบ้างไหมเรื่องที่มี Developer แก้ไขแอปพลิเคชันบันทึกเวลาในโรงงาน? เบรนต์บอกว่ามีใครบางคนโทรมาถามเรื่องการเปลี่ยนตารางฐานข้อมูล”
มีเสียงหนึ่งดังขึ้นมาจากสปีกเกอร์โฟน “อ๋อ ใช่ครับ ผมเพิ่งช่วยใครคนหนึ่งที่มีปัญหาเรื่องการเชื่อมต่อกับโรงงาน ผมค่อนข้างมั่นใจว่าเขาเป็น Developer ที่ดูแลแอปบันทึกเวลานั่นแหละ เขากำลังติดตั้งแอปความปลอดภัยบางอย่างที่ จอห์น (John) ต้องการให้เริ่มใช้งานได้ภายในสัปดาห์นี้ ผมจำได้ว่าเขาชื่อแม็กซ์ (Max) ผมยังมีข้อมูลติดต่อของเขาอยู่แถวนี้แหละ... เขาบอกว่าเขาจะลาพักร้อนวันนี้ งานก็เลยค่อนข้างเร่งด่วนมากครับ”
เอาละ เริ่มเห็นเค้าลางแล้ว
Developer ที่แอบยัดการเปลี่ยนแปลงแบบเร่งด่วนเข้าไปเพื่อจะได้ไปลาพักร้อน—ซึ่งก็น่าจะเป็นส่วนหนึ่งของโปรเจกต์เร่งด่วนที่ผลักดันโดย จอห์น เพสเช่ (John Pesche) หัวหน้าฝ่ายความปลอดภัยสารสนเทศ (Chief Information Security Officer หรือ CISO) ของเรานั่นเอง
สถานการณ์แบบนี้ยิ่งตอกย้ำความสงสัยลึกๆ ในใจของผมที่มีต่อพวก Developer พวกเขามักจะทำอะไรพังแบบไม่ระวังแล้วก็หายตัวไป ทิ้งให้ฝั่ง Operations ต้องมานั่งตามเช็ดตามล้างความซวยที่พวกเขาก่อไว้เสมอ
สิ่งเดียวที่อันตรายยิ่งกว่า Developer ก็คือ Developer ที่ไปร่วมมือกับฝ่าย Security นั่นแหละ เมื่อสองกลุ่มนี้ร่วมมือกัน พวกเขาก็มีทั้งวิธีการ แรงจูงใจ และโอกาสครบถ้วน
ผมเดาว่า CISO ของเราคงจะไปข่มขู่ผู้จัดการฝ่าย Development ให้ทำอะไรบางอย่าง ซึ่งส่งผลให้ Developer ไปทำอย่างอื่นต่อ และนั่นก็ทำให้ระบบจ่ายเงินเดือนพังพินาศ
ฝ่ายความปลอดภัยสารสนเทศมักจะเที่ยวโชว์บัตรเบ่งใส่คนอื่นและเรียกร้องโน่นนี่นั่นอย่างเร่งด่วน โดยไม่สนใจผลกระทบที่จะเกิดขึ้นกับส่วนอื่นๆ ขององค์กรเลย นั่นคือเหตุผลที่เราไม่ค่อยเชิญพวกเขาเข้าประชุมด้วยเท่าไหร่ เพราะวิธีที่ดีที่สุดที่จะทำให้นานาโปรเจกต์ไม่คืบหน้าก็คือการมีคนพวกนี้อยู่ในห้องประชุมด้วยนั่นแหละ
พวกเขามักจะยกเหตุผลล้านแปดมาอ้างว่าสิ่งที่เรากำลังทำอยู่นั้นจะสร้างช่องโหว่ให้พวกแฮ็กเกอร์ต่างดาวจากนอกโลกเข้ามาขโมยข้อมูลของบริษัทไปจนเกลี้ยง ทั้งโค้ด, ทรัพย์สินทางปัญญา, เลขบัตรเครดิต หรือแม้กระทั่งรูปลูกเมียของเรา จริงอยู่ที่ความเสี่ยงเหล่านี้อาจจะเกิดขึ้นได้ แต่หลายครั้งผมก็หาจุดเชื่อมโยงไม่เจอว่าการเรียกร้องแบบตีโพยตีพาย เอาแต่ใจ และคิดว่าตัวเองถูกเสมอของพวกเขานั้น มันจะช่วยปรับปรุงระบบป้องกันของเราให้ดีขึ้นจริงๆ ได้อย่างไร
“โอเคทุกคน” ผมพูดอย่างเด็ดขาด “ปัญหาระบบจ่ายเงินเดือนล้มเหลวครั้งนี้เปรียบเสมือนฉากอาชญากรรม และเราคือสกอตแลนด์ยาร์ด (Scotland Yard) ตอนนี้ SAN ไม่ใช่ผู้ต้องสงสัยอีกต่อไปแล้ว แต่น่าเสียดายที่เราดันเผลอทำมันบาดเจ็บสาหัสไประหว่างการสืบสวน เบรนต์ คุณไปดูแลไอ้ SAN ที่บาดเจ็บนั่นต่อ แน่นอนว่าเราต้องรีบทำให้มันกลับมาใช้งานได้โดยเร็วที่สุด”
“เวสและแพตตี้ บุคคลที่เราต้องให้ความสนใจคนใหม่คือแม็กซ์และผู้จัดการของเขา” ผมบอก “ทำทุกวิถีทางเพื่อหาตัวพวกเขาให้เจอ กักตัวไว้ แล้วถามให้ได้ว่าพวกเขาไปทำอะไรลงไป ผมไม่สนใจว่าแม็กซ์จะลาพักร้อนอยู่ ผมเดาว่าเขาคงทำอะไรพังแน่ๆ และเราต้องแก้ไขมันให้ได้ภายในบ่าย 3 โมงวันนี้”
ผมหยุดคิดครู่หนึ่ง “ผมจะไปหาจอห์น มีใครอยากไปกับผมไหม?”
เวสและแพตตี้เริ่มถกเถียงกันว่าใครจะเป็นคนไปช่วยสอบสวนจอห์น แพตตี้ยืนกรานว่า “ต้องเป็นฉันสิ ฉันพยายามคุมคนของจอห์นให้อยู่ในระเบียบมาหลายปีแล้ว พวกเขาไม่เคยทำตามกระบวนการของเราเลย และมันก็สร้างปัญหาให้เราเสมอ ฉันล่ะอยากเห็นสตีฟกับดิกสับเขาให้เละจริงๆ ที่แอบมาเล่นตลกอะไรแบบนี้”
มันเป็นเหตุผลที่ฟังขึ้นมาก จนเวสถึงกับต้องยอม “โอเค ยกให้คุณเลย ตอนนี้ผมเริ่มรู้สึกสงสารเขาขึ้นมานิดๆ แล้วสิ”
จู่ๆ ผมก็รู้สึกเสียใจที่ใช้คำพูดแบบนั้นออกไป นี่ไม่ใช่การล่าแม่มด และผมก็ไม่ได้ต้องการแก้แค้นใคร เรายังต้องการลำดับเวลาของเหตุการณ์ที่เกี่ยวข้องทั้งหมดที่นำไปสู่ความล้มเหลวครั้งนี้
การด่วนสรุปไปเองโดยไม่มีหลักฐานคือสาเหตุที่ทำให้ SAN พังเมื่อคืนนี้ และเราจะไม่ทำผิดซ้ำสองแบบนั้นอีก ตราบใดที่ผมยังคุมงานอยู่ ขณะที่ผมกับแพตตี้โทรหาจอห์น ผมหรี่ตามองเบอร์โทรศัพท์บนหน้าจอของแพตตี้ พลางสงสัยว่าถึงเวลาที่ควรจะทำตามคำแนะนำของภรรยาที่ให้ไปตัดแว่นหรือยัง นี่เป็นอีกหนึ่งเครื่องเตือนใจว่าวัยเลขสี่กำลังจะมาเยือนในอีกไม่ช้า
ผมกดเบอร์โทรออก และมีเสียงตอบรับตั้งแต่เสียงสัญญาณดังครั้งแรก “จอห์นพูดครับ”
ผมรีบเล่าเรื่องระบบจ่ายเงินเดือนล้มเหลวและปัญหา SAN พังให้เขาฟัง แล้วถามต่อทันทีว่า “คุณได้เข้าไปแก้ไขอะไรในแอปพลิเคชันลงเวลาทำงานเมื่อวานนี้หรือเปล่า?”
เขาตอบว่า “ฟังดูแย่จังนะ แต่ผมขอยืนยันเลยว่าเราไม่ได้ไปแตะต้องระบบ midrange ของพวกคุณเลย เสียใจด้วยนะที่ผมช่วยอะไรไม่ได้มากกว่านี้”
ผมถอนหายใจ ผมนึกว่าป่านนี้สตีฟหรือไม่ก็ลอร่าคงจะส่งอีเมลประกาศเรื่องการเลื่อนตำแหน่งของผมออกไปแล้ว ดูเหมือนผมจะถูกกำหนดให้ต้องคอยอธิบายบทบาทใหม่ของตัวเองในทุกๆ การสนทนาเลยสินะ
ผมสงสัยว่ามันจะง่ายกว่าไหมถ้าผมจะเป็นคนส่งอีเมลประกาศนั้นเองซะเลย
ผมเล่าเรื่องการเลื่อนตำแหน่งสายฟ้าแลบแบบย่อส่วนให้เขาฟังอีกรอบ “เวส แพตตี้ และผมได้ยินมาว่าคุณทำงานร่วมกับแม็กซ์เพื่อ deploy งานด่วนบางอย่างเมื่อวานนี้ มันคืออะไรเหรอ?”
“ลุคกับเดมอนไม่อยู่แล้วเหรอ?” จอห์นดูจะประหลาดใจ “ผมไม่เคยคิดเลยว่าสตีฟจะไล่พวกเขาทั้งคู่ตกเก้าอี้เพราะแค่ผลการตรวจสอบ compliance แต่ใครจะไปรู้ล่ะ? บางทีสิ่งต่างๆ แถวนี้อาจจะเริ่มเปลี่ยนไปแล้วก็ได้นะ ขอให้เรื่องนี้เป็นบทเรียนสำหรับคุณนะบิล พวกคุณฝั่ง Operations จะมามัวชักช้าเรื่องความปลอดภัยไม่ได้อีกต่อไปแล้ว! นี่เป็นคำแนะนำจากเพื่อนนะ...
“พูดถึงเรื่องนี้ ผมสงสัยว่าทำไมคู่แข่งถึงนำหน้าเราไปได้ตลอด” เขากล่าวต่อ “อย่างที่เขาว่ากัน ครั้งแรกคือเรื่องบังเอิญ ครั้งที่สองคือเหตุบังเอิญ แต่ครั้งที่สามน่ะมันคือการจงใจโจมตีชัดๆ บางทีระบบอีเมลของพนักงานขายเราอาจจะถูกแฮ็กก็ได้นะ นั่นอาจจะอธิบายได้ว่าทำไมเราถึงเสียดีลไปเยอะขนาดนี้”
จอห์นยังคงพูดต่อไปเรื่อยๆ แต่สมองของผมยังติดอยู่ที่คำพูดที่ว่าลุคกับเดมอนอาจจะถูกไล่ออกเพราะเรื่องความปลอดภัย มันก็เป็นไปได้นะ—ปกติจอห์นต้องรับมือกับผู้มีอิทธิพลหลายคน ทั้งสตีฟและบอร์ดบริหาร รวมถึงผู้ตรวจสอบ (auditors) ทั้งภายในและภายนอก
แต่อย่างไรก็ตาม ผมมั่นใจว่าสตีฟไม่ได้เอ่ยชื่อจอห์นหรือฝ่าย Information Security เลยตอนที่บอกเหตุผลที่พวกเขาจากไป—เขาบอกแค่ว่าต้องโฟกัสที่โปรเจกต์ Phoenix เท่านั้น
ผมมองแพตตี้อย่างมีคำถาม เธอแค่กรอกตาไปมาแล้วเอานิ้ววนรอบหู ชัดเจนว่าเธอคิดว่าทฤษฎีของจอห์นนั้นบ้าบอสิ้นดี
“สตีฟได้เปรยๆ เรื่องโครงสร้างองค์กรใหม่ให้คุณฟังบ้างไหม?” ผมถามด้วยความอยากรู้อยากเห็นจริงๆ—จอห์นชอบบ่นอยู่เสมอว่าเรื่องความปลอดภัยข้อมูลมักจะได้รับความสำคัญต่ำเกินไป เขาพยายามผลักดันตัวเองให้ขึ้นไปอยู่ในระดับเดียวกับ CIO โดยบอกว่ามันจะช่วยแก้ปัญหาผลประโยชน์ทับซ้อนที่มีอยู่แต่เดิมได้ เท่าที่ผมรู้ เขายังทำไม่สำเร็จ
ไม่ใช่ความลับอะไรเลยที่ลุคกับเดมอนพยายามกันจอห์นออกไปอยู่วงนอกให้มากที่สุดเท่าที่จะทำได้ เพื่อไม่ให้เขามาขวางทางคนที่ทำงานจริงๆ แต่จอห์นก็ยังหาทางโผล่ไปตามที่ประชุมต่างๆ ได้อยู่ดี แม้ว่าพวกเขาจะพยายามกีดกันแค่ไหนก็ตาม
“อะไรนะ? ผมไม่รู้เรื่องเลยว่าเกิดอะไรขึ้น” เขาตอบด้วยน้ำเสียงที่ดูขุ่นเคือง คำถามของผมคงไปสะกิดต่อมอะไรบางอย่างเข้า “ผมถูกปิดหูปิดตาเหมือนเดิมนั่นแหละ และถ้าดูจากประวัติที่ผ่านมา ผมก็คงจะเป็นคนสุดท้ายที่ได้รู้อยู่ดี จนกระทั่งคุณบอกเนี่ยแหละ ผมยังนึกว่าตัวเองยังรายงานตรงต่อลุคอยู่เลย และในเมื่อเขาไม่อยู่แล้ว ผมก็ไม่รู้เหมือนกันว่าตอนนี้ต้องรายงานตรงต่อใคร คุณได้รับโทรศัพท์จากสตีฟเหรอ?”
“เรื่องนี้มันเกินระดับของผมไปเยอะ—ผมก็มืดแปดด้านพอๆ กับคุณนั่นแหละ” ผมตอบแบบแกล้งโง่ แล้วรีบเปลี่ยนหัวข้อสนทนาทันที “คุณพอจะบอกอะไรเราได้บ้างเกี่ยวกับการเปลี่ยนแปลงในแอปลงเวลาทำงาน?”
“เดี๋ยวผมจะโทรหาสตีฟเพื่อดูว่าเกิดอะไรขึ้น เขาคงลืมไปแล้วมั้งว่ายังมีฝ่าย Information Security อยู่บนโลกนี้ด้วย” เขายังคงพูดต่อ จนผมเริ่มสงสัยว่าเราจะได้คุยกันเรื่องระบบจ่ายเงินเดือนไหมเนี่ย
แต่โชคดีที่ในที่สุดเขาก็พูดว่า “โอเค ใช่ คุณถามถึงแม็กซ์สินะ เรามีปัญหาด่วนจากการตรวจสอบเรื่องการจัดเก็บข้อมูล PII—ซึ่งก็คือข้อมูลที่ระบุตัวตนบุคคลได้ อย่างพวกเลขประกันสังคม (SSNs) วันเกิด และอะไรพวกนั้นแหละ กฎหมายของสหภาพยุโรปและกฎหมายหลายรัฐในอเมริกาตอนนี้สั่งห้ามไม่ให้เราเก็บข้อมูลประเภทนั้น เราโดนผู้ตรวจสอบตำหนิเรื่องนี้อย่างหนัก ผมรู้ว่ามันเป็นหน้าที่ของทีมผมที่จะต้องช่วยบริษัทให้รอดพ้นจากความผิดพลาดของตัวเอง และป้องกันไม่ให้เราโดนตำหนิซ้ำอีก คุณก็รู้ใช่ไหมว่าเรื่องแบบนี้ถ้าหลุดออกไปได้ขึ้นหน้าหนึ่งแน่ๆ?”
เขากล่าวต่อ “เราเจอผลิตภัณฑ์ตัวหนึ่งที่ช่วยทำ tokenization ข้อมูลพวกนี้ ทำให้เราไม่ต้องเก็บเลขประกันสังคมจริงๆ อีกต่อไป มันควรจะถูก deploy ไปตั้งเกือบปีแล้วแต่ก็ไม่เคยเสร็จสักที ทั้งที่ผมจี้แล้วจี้อีก ตอนนี้เราไม่มีเวลาเหลือแล้ว ผู้ตรวจสอบจากอุตสาหกรรมบัตรชำระเงิน หรือที่เรียกย่อๆ ว่า PCI จะเข้ามาตรวจปลายเดือนนี้ ผมก็เลยต้องเร่งรัดงานกับทีมแอปลงเวลาเพื่อให้มันเสร็จทันเวลา”
ผมจ้องมองโทรศัพท์ด้วยอาการพูดไม่ออก
ในแง่หนึ่ง ผมรู้สึกตื่นเต้นเพราะเราเจอ ‘ปืนที่มีรอยนิ้วมือ’ (smoking gun) ในมือของจอห์นแล้ว การที่จอห์นพูดถึงฟิลด์เลขประกันสังคมมันตรงกับที่แอนอธิบายเรื่องข้อมูลที่เสียหายเป๊ะเลย
แต่อีกแง่หนึ่ง: “ขอผมทวนดูหน่อยว่าผมเข้าใจถูกไหม...” ผมพูดช้าๆ “คุณ deploy แอปพลิเคชัน tokenization นี้เพื่อแก้ปัญหาจากการตรวจสอบ แต่ผลที่ได้คือมันทำให้ระบบจ่ายเงินเดือนล่ม จนตอนนี้ดิกกับสตีฟแทบจะสติแตกกันหมดแล้ว?”
จอห์นสวนกลับทันควัน “อย่างแรก ผมมั่นใจมากว่าผลิตภัณฑ์ความปลอดภัย tokenization นี้ไม่ได้เป็นสาเหตุของปัญหา มันเป็นไปไม่ได้เลย ทางซัพพลายเออร์ยืนยันกับเราแล้วว่ามันปลอดภัย และเราก็ได้ตรวจสอบประวัติการใช้งานของพวกเขามาหมดแล้ว อย่างที่สอง ดิกกับสตีฟมีเหตุผลสมควรที่จะสติแตกครับ เพราะเรื่อง Compliance (การปฏิบัติตามกฎระเบียบ) ไม่ใช่ทางเลือก แต่มันคือกฎหมาย หน้าที่ของผมคือทำให้พวกเขาไม่ต้องไปใส่ ‘ชุดจั๊มสูทสีส้ม’ ผมก็เลยต้องทำในสิ่งที่จำเป็นต้องทำ”
“ ‘ชุดจั๊มสูทสีส้ม’ ?”
“ก็ชุดนักโทษไงครับ” เขากล่าว “หน้าที่ของผมคือทำให้ผู้บริหารปฏิบัติตามกฎหมาย ข้อบังคับ และข้อผูกพันตามสัญญาที่เกี่ยวข้องทั้งหมด ลุคกับเดมอนน่ะมันพวกบ้าบิ่น พวกเขาชอบลัดขั้นตอนจนส่งผลกระทบต่อภาพลักษณ์การตรวจสอบและความปลอดภัยของเราอย่างรุนแรง ถ้าไม่ใช่เพราะสิ่งที่ผมทำ ป่านนี้พวกเราคงเข้าไปนอนในคุกกันหมดแล้ว”
ผมนึกว่าเรากำลังคุยกันเรื่องระบบจ่ายเงินเดือนล่มนะ ไม่ใช่เรื่องการถูกตำรวจในจินตนาการจับเข้าคุก
“จอห์น เรามีกระบวนการและขั้นตอนการปฏิบัติสำหรับการนำการเปลี่ยนแปลง (changes) เข้าสู่ระบบ production นะ” แพตตี้พูดขึ้น “คุณลัดขั้นตอนเหล่านั้น และมันก็ทำให้เกิดปัญหาใหญ่อีกครั้งจนพวกเราต้องมาตามล้างตามเช็ด ทำไมคุณถึงไม่ทำตามกระบวนการ?”
“ฮ่า! มุกเด็ดนะแพตตี้” จอห์นพ่นลมหายใจ “ผมทำตามกระบวนการแล้ว คุณรู้ไหมว่าคนของคุณบอกอะไรผม? เขาบอกว่าคิวการ deploy ครั้งต่อไปที่เร็วที่สุดคืออีกสี่เดือนข้างหน้า! ฮัลโหล? ผู้ตรวจสอบจะมาที่นี่สัปดาห์หน้าแล้วนะ!”
เขากล่าวยืนยันอย่างหนักแน่น “การถูกกักขังอยู่ในกระบวนการระบบราชการของคุณไม่ใช่ทางเลือกสำหรับผม ถ้าคุณเป็นผม คุณก็คงจะทำแบบเดียวกันนี่แหละ”
แพตตี้หน้าแดงด้วยความโกรธ ผมจึงพูดอย่างใจเย็นว่า “จากข้อมูลของดิก เราเหลือเวลาอีกไม่ถึงสี่ชั่วโมงในการทำให้แอปลงเวลาทำงานกลับมาออนไลน์ ในเมื่อตอนนี้เรารู้แล้วว่ามีการเปลี่ยนแปลงที่ส่งผลกระทบต่อเลขประกันสังคม ผมว่าเราได้ข้อมูลที่ต้องการแล้วละ”
ผมกล่าวต่อ “แม็กซ์ คนที่ช่วย deploy งานนี้ ลาพักร้อนวันนี้ เดี๋ยวเวสหรือเบรนต์จะติดต่อคุณไปเพื่อขอข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์ tokenization ที่คุณเพิ่งติดตั้งไป ผมมั่นใจว่าคุณจะให้ความช่วยเหลือพวกเขาในทุกเรื่องที่จำเป็น เรื่องนี้สำคัญมากนะครับ”
เมื่อจอห์นตอบรับ ผมก็ขอบคุณเขาสำหรับเวลาที่เสียไป “เดี๋ยวครับ อีกคำถามหนึ่ง ทำไมคุณถึงเชื่อว่าผลิตภัณฑ์นี้ไม่ได้เป็นสาเหตุของความล้มเหลว? คุณได้ทดสอบการเปลี่ยนแปลงนี้หรือเปล่า?”
เกิดความเงียบชั่วอึดใจก่อนที่จอห์นจะตอบกลับมา “ไม่ครับ เราทดสอบไม่ได้ เพราะมันไม่มีสภาพแวดล้อมสำหรับการทดสอบ (test environment) เห็นว่าพวกคุณเคยของบประมาณไปเมื่อหลายปีก่อน แต่ว่า...”
ผมก็น่าจะรู้อยู่แล้วละนะ
“นั่นเป็นข่าวดีนะ” แพตตี้พูดขึ้นหลังจากจอห์นวางสายไป “มันอาจจะแก้ไม่ได้ง่ายๆ แต่อย่างน้อยตอนนี้เราก็รู้แล้วว่าเกิดอะไรขึ้น”
“การเปลี่ยนแปลงเรื่อง tokenization ของจอห์นอยู่ในตารางการเปลี่ยนแปลง (change schedule) หรือเปล่า?” ผมถาม
เธอหัวเราะแบบแห้งๆ “นั่นแหละคือสิ่งที่ฉันพยายามจะบอกคุณ จอห์นแทบไม่เคยผ่านกระบวนการจัดการการเปลี่ยนแปลงของเราเลย และเอาเข้าจริง คนส่วนใหญ่ก็เป็นแบบนั้นแหละ ที่นี่มันเหมือน ‘แดนเถื่อน’ (Wild West) เลยล่ะค่ะ ส่วนใหญ่เราก็แค่ลุยกันไปตามสัญชาตญาณ”
เธอกล่าวต่ออย่างปกป้องตัวเอง “เราต้องการกระบวนการที่ชัดเจนกว่านี้ และต้องการการสนับสนุนที่ดีกว่าจากระดับบน รวมถึงเครื่องมือและครูฝึกสำหรับกระบวนการไอทีด้วย ทุกคนคิดว่าวิธีทำงานให้เสร็จจริงๆ คือการแค่ลงมือทำไปเลย นั่นทำให้งานของฉันแทบจะเป็นไปไม่ได้เลยค่ะ”
ในทีมเก่าของผม พวกเราเคร่งครัดเรื่องการทำการเปลี่ยนแปลงเสมอ ไม่มีใครกล้าแก้โค้ดโดยไม่บอกคนอื่น และเราจะพยายามอย่างเต็มที่เพื่อให้มั่นใจว่างานของเราจะไม่ไปทำให้งานคนอื่นพัง
ผมไม่ชินกับการต้องมาคลำทางมืดๆ แบบนี้เลย
“เราไม่มีเวลามานั่งสอบสวนกันทุกครั้งที่มีอะไรผิดพลาดหรอกนะ” ผมพูดออกมาอย่างสุดจะทน “ไปเอาลิสต์การเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นในช่วงสามวันที่ผ่านมามาให้ผมที ถ้าไม่มีลำดับเวลา (timeline) ที่ถูกต้อง เราก็จะหาเหตุและผลของปัญหาไม่ได้ และสุดท้ายเราก็อาจจะไปทำอย่างอื่นพังเพิ่มอีก”
“เป็นไอเดียที่ดีค่ะ” เธอพยักหน้า “ถ้าจำเป็น ฉันจะอีเมลหาทุกคนในแผนกไอทีเพื่อถามว่าพวกเขาทำอะไรกันบ้าง จะได้ตามเก็บงานที่ไม่ได้อยู่ในตารางของเรา”
“คุณหมายความว่ายังไงที่ว่า ‘อีเมลหาทุกคน’? เราไม่มีระบบที่คนต้องกรอกข้อมูลการเปลี่ยนแปลงลงไปงั้นเหรอ? แล้วระบบ Ticket หรือระบบอนุมัติการเปลี่ยนแปลงของเราล่ะ?” ผมถามด้วยความตกตะลึง นี่มันเหมือนกับสกอตแลนด์ยาร์ดส่งอีเมลหาทุกคนในลอนดอนเพื่อถามว่าใครอยู่ใกล้ที่เกิดเหตุอาชญากรรมบ้างอย่างนั้นแหละ
“ฝันไปเถอะค่ะ” เธอมองผมเหมือนผมเป็นเด็กใหม่ ซึ่งผมก็ยอมรับว่าใช่ “หลายปีมาแล้วที่ฉันพยายามให้คนหันมาใช้กระบวนการและเครื่องมือจัดการการเปลี่ยนแปลง แต่ก็เหมือนจอห์นนั่นแหละ ไม่มีใครใช้มันเลย ระบบ Ticket ของเราก็เหมือนกัน มันใช้ได้บ้างไม่ได้บ้างตามยถากรรมน่ะค่ะ”
สถานการณ์มันแย่กว่าที่ผมคิดไว้เยอะเลย
“โอเค ทำในสิ่งที่ต้องทำเถอะ” ในที่สุดผมก็พูดออกมาโดยไม่สามารถซ่อนความหงุดหงิดไว้ได้ “มั่นใจนะว่าคุณตามหานักพัฒนาทุกคนที่ดูแลระบบลงเวลา รวมถึง System Administrator และพวก Network ทุกคนด้วย โทรหาผู้จัดการของพวกเขา และบอกว่ามันสำคัญมากที่เราต้องรู้ถึงทุกการเปลี่ยนแปลง ไม่ว่ามันจะดูไม่สำคัญแค่ไหนก็ตาม อย่าลืมคนของจอห์นด้วยล่ะ”
เมื่อแพตตี้พยักหน้ารับ ผมก็พูดต่อว่า “ฟังนะ คุณคือผู้จัดการฝ่ายจัดการการเปลี่ยนแปลง (Change Manager) เราต้องทำให้ได้ดีกว่านี้ เราต้องการความตระหนักรู้ในสถานการณ์ (situational awareness) ที่ดีขึ้น และนั่นหมายความว่าเราต้องมีกระบวนการจัดการการเปลี่ยนแปลงที่ใช้งานได้จริงๆ ไปดึงทุกคนให้เอางานที่ตัวเองแก้มาลงระบบ เพื่อที่เราจะได้เห็นภาพรวมว่าเกิดอะไรขึ้นข้างนอกนั่นบ้าง”
สิ่งที่ทำให้ผมแปลกใจคือ แพตตี้ดูมีท่าทีหดหู่ “ฟังนะ ฉันเคยลองทำแบบนี้มาแล้ว และฉันจะบอกให้ว่าผลมันจะเป็นยังไง คณะกรรมการที่ปรึกษาการเปลี่ยนแปลง (Change Advisory Board หรือ CAB) จะมารวมตัวกันสักครั้งสองครั้ง และภายในไม่กี่สัปดาห์ ผู้คนก็จะเลิกเข้าประชุม โดยอ้างว่ายุ่งเกินไป หรือไม่พวกเขาก็จะแอบทำการเปลี่ยนแปลงไปเลยโดยไม่รอการอนุมัติเพราะความกดดันเรื่องเส้นตาย ไม่ว่าจะทางไหน สุดท้ายมันก็ล้มเหลวภายในไม่เกินหนึ่งเดือนอยู่ดีค่ะ”
“ไม่ใช่ครั้งนี้แน่” ผมกล่าวอย่างหนักแน่น “ส่งนัดประชุมหาหัวหน้าทีมเทคนิคทุกคน และประกาศว่าการเข้าร่วมประชุมครั้งนี้เป็นภาคบังคับ ถ้าใครมาไม่ได้ ต้องส่งตัวแทนมาแทน การประชุมครั้งต่อไปคือเมื่อไหร่?”
“พรุ่งนี้ค่ะ” เธอกล่าว
“เยี่ยมมาก” ผมพูดออกมาด้วยความกระตือรือร้นจริงๆ “ผมตั้งตารอเลยล่ะ”
ในที่สุดเมื่อผมกลับถึงบ้าน ก็เป็นเวลาหลังเที่ยงคืนไปแล้ว หลังจากวันอันยาวนานที่เต็มไปด้วยความผิดหวัง ผมก็หมดเรี่ยวแรง มีลูกโป่งวางอยู่บนพื้น และขวดไวน์ที่พร่องไปครึ่งหนึ่งวางอยู่บนโต๊ะในห้องครัว บนผนังมีโปสเตอร์ที่เขียนด้วยสีเทียนว่า “ยินดีด้วยนะจ๊ะคุณพ่อ!”
ตอนที่ผมโทรหาเพจ ภรรยาของผม เมื่อช่วงบ่ายเพื่อบอกเรื่องการเลื่อนตำแหน่ง เธอดูจะมีความสุขมากกว่าผมเสียอีก เธอยืนกรานที่จะชวนเพื่อนบ้านมาร่วมฉลองกันเล็กน้อย แต่เพราะผมกลับบ้านดึกมาก ผมเลยพลาดงานปาร์ตี้ของตัวเองไปโดยปริยาย
ตอนบ่ายสอง แพตตี้สามารถพิสูจน์ได้สำเร็จว่าจากการเปลี่ยนแปลงทั้งหมด 27 รายการในช่วงสามวันที่ผ่านมา มีเพียงการเปลี่ยน tokenization ของจอห์นและการอัปเกรด SAN เท่านั้นที่น่าจะเชื่อมโยงกับปัญหาระบบจ่ายเงินเดือนล่มได้อย่างสมเหตุสมผล อย่างไรก็ตาม เวสและทีมของเขาก็ยังไม่สามารถกู้คืนระบบ SAN ให้กลับมาทำงานได้
ตอนบ่ายสาม ผมต้องบอกข่าวร้ายกับแอนและดิกว่าเราไม่มีทางเลือกอื่นนอกจากต้องใช้แผน B ความหงุดหงิดและความผิดหวังของพวกเขาแสดงออกมาให้เห็นอย่างชัดเจน
มันกินเวลาไปจนถึงหนึ่งทุ่มกว่าที่แอปพลิเคชันลงเวลาจะกลับมาใช้งานได้ และเกือบห้าทุ่มกว่าที่ระบบ SAN จะถูกกู้กลับมาออนไลน์ได้ในที่สุด
ไม่ใช่ผลงานที่น่าประทับใจเลยสำหรับวันแรกในฐานะรองประธานฝ่าย IT Operations
ก่อนที่ผมจะออกจากที่ทำงาน ผมได้อีเมลรายงานสถานะสั้นๆ ไปให้สตีฟ ดิก และแอน โดยสัญญาว่าจะทำทุกวิถีทางเพื่อป้องกันไม่ให้ความล้มเหลวประเภทนี้เกิดขึ้นอีก
ผมเดินขึ้นบันได แปรงฟันให้เรียบร้อย และเช็กโทรศัพท์เป็นครั้งสุดท้ายก่อนจะเข้านอน โดยระวังไม่ให้เพจตื่น ผมสบถออกมาเมื่อเห็นอีเมลจากผู้จัดการฝ่ายประชาสัมพันธ์ของบริษัท โดยมีหัวเรื่องว่า “ข่าวร้ายครับ พรุ่งนี้เราอาจจะได้ขึ้นหน้าหนึ่ง...”
ผมก็นั่งลงบนเตียง หรี่ตามองเพื่ออ่านเนื้อหาข่าวที่แนบมาด้วย
Elkhart Grove Herald Times
Parts Unlimited จ่ายเงินเดือนพลาด ผู้นำสหภาพแรงงานท้องถิ่นเรียกความล้มเหลวครั้งนี้ว่า ‘รับไม่ได้’
บริษัทซัพพลายเออร์ชิ้นส่วนยานยนต์ Parts Unlimited ประสบความล้มเหลวในการจ่ายค่าตอบแทนให้แก่พนักงานอย่างเหมาะสม โดยมีพนักงานบางส่วนไม่ได้รับเงินเดือนเลย ตามบันทึกภายในของบริษัท บริษัทซึ่งมีสำนักงานใหญ่ในท้องถิ่นยอมรับว่าไม่สามารถออกเช็คเงินเดือนที่ถูกต้องให้กับพนักงานโรงงานรายชั่วโมงบางส่วน และคนอื่นๆ ยังไม่ได้รับค่าตอบแทนจากการทำงานเลย ทั้งนี้ Parts Unlimited ปฏิเสธว่าปัญหานี้เกี่ยวข้องกับปัญหาด้านกระแสเงินสด แต่กลับระบุว่าความผิดพลาดนี้เกิดจากความล้มเหลวของระบบจ่ายเงินเดือน
บริษัทที่มีมูลค่า 4 พันล้านดอลลาร์ที่ครั้งหนึ่งเคยรุ่งเรืองมาก กลับต้องเผชิญกับรายได้ที่ลดลงและการขาดทุนที่เพิ่มขึ้นในช่วงไตรมาสที่ผ่านมา ปัญหาทางการเงินเหล่านี้ ซึ่งบางส่วนโทษว่าเป็นความล้มเหลวของการจัดการระดับสูง ได้นำไปสู่ความไม่มั่นคงในงานอย่างรุนแรงท่ามกลางคนงานในท้องถิ่นที่ต้องดิ้นรนเลี้ยงดูครอบครัว
ตามบันทึกดังกล่าว ไม่ว่าสาเหตุของความล้มเหลวของระบบจ่ายเงินเดือนจะเป็นอย่างไร พนักงานอาจต้องรอนานหลายวันหรือหลายสัปดาห์จึงจะได้รับค่าตอบแทน
“นี่เป็นเพียงเหตุการณ์ล่าสุดในความล้มเหลวในการบริหารจัดการของบริษัทในช่วงไม่กี่ปีที่ผ่านมา” ตามรายงานของ Kelly Lawrence หัวหน้านักวิเคราะห์อุตสาหกรรมจาก Nestor Meyers
Dick Landry ซึ่งเป็น CFO ของ Parts Unlimited ไม่ได้รับสายโทรศัพท์จาก Herald Times ที่ขอให้แสดงความคิดเห็นเกี่ยวกับปัญหาเงินเดือน ความผิดพลาดทางบัญชี และคำถามเกี่ยวกับความสามารถในการจัดการ
ในแถลงการณ์ที่ออกในนามของ Parts Unlimited นั้น Landry แสดงความเสียใจต่อ “ความขัดข้อง (glitch)” และให้สัญญาว่าความผิดพลาดดังกล่าวจะไม่เกิดขึ้นซ้ำอีก
Herald Times จะยังคงรายงานความคืบหน้าของเรื่องนี้ต่อไป
ด้วยความที่เหนื่อยเกินกว่าจะทำอะไรได้อีก ผมปิดไฟลง พร้อมจดบันทึกไว้ในใจว่าพรุ่งนี้ต้องไปหาดิกเพื่อขอโทษด้วยตัวเอง ผมหลับตาลงและพยายามจะนอนให้หลับ
หนึ่งชั่วโมงผ่านไป ผมยังคงนอนจ้องเพดานอยู่ ตาค้างสนิท