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

จู่ๆ โทรศัพท์ของเธอก็มีการแจ้งเตือนเด้งขึ้นมา ดึงเธอกลับสู่โลกความเป็นจริง:

โปรเจกต์ Phoenix: สรุปสถานะสำหรับผู้มีส่วนได้ส่วนเสีย (จะเริ่มในอีก 15 นาที)

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

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

เธอมาถึงก่อนเวลาและต้องประหลาดใจที่ไม่มีที่นั่งเหลือเลยยกเว้นหลังห้อง เธอเลยยืนพิงกำแพงอยู่กับคนอื่นๆ อีกห้าคน พอกวาดสายตามองไปรอบๆ เธอก็ต้องตาโต—พวกคนระดับหัวกะทิของบริษัทมารวมตัวกันอยู่ที่นี่หมดเลย Maxine ยิ้มออกมาเมื่อเห็นว่า Kirsten Fingle เป็นคนนำการประชุม เธอคือหัวหน้าหน่วยงานบริหารโครงการ (PMO) Maxine เคยชอบทำงานกับเธอมากตอนที่เธอช่วยสนับสนุนโครงการใหญ่โครงการหนึ่งที่มี "นินจาผู้จัดการโครงการ" ของ Kirsten หลายคนถูกมอบหมายให้ไปดูแล—คนกลุ่มนี้มักจะถูกเก็บไว้สำหรับโปรเจกต์ที่สำคัญที่สุดที่ต้องอาศัยการประสานงานอย่างมากระหว่างกลุ่มต่างๆ ภายในบริษัท พวกเขาเก่งกาจมากในการทำให้เรื่องต่างๆ เกิดขึ้นจริง สามารถตามจี้และแก้ปัญหาได้อย่างรวดเร็ว บ่อยครั้งที่จบเรื่องได้ด้วยข้อความเพียงประโยคเดียวเท่านั้น

ที่หน้าห้องคือ Chris ซึ่งพยักหน้าให้เธออย่างเย็นชา—เขากำกับดูแลเหล่านักพัฒนาและทีม QA กว่าสองร้อยคน ซึ่งส่วนใหญ่ก็คือคนในโปรเจกต์ Phoenix นั่นแหละ Chris กำลังจ้องเขม็งไปที่ใครบางคนที่นั่งฝั่งตรงข้าม ซึ่งดูเหมือน Ed Harris ในหนังเรื่อง Apollo 13 เมื่อเธอแอบถามคนข้างๆ ว่าเขาคือใคร คำตอบคือ “Bill Palmer VP ฝ่าย IT Operations คนใหม่ เพิ่งเลื่อนตำแหน่งเมื่อสัปดาห์ที่แล้วหลังจากที่มีการปลดผู้บริหารชุดใหญ่ไปน่ะ”

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

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

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

เมื่อการประชุมดำเนินต่อไปและขัดกับความคาดหวังของเธอ เธอก็เริ่มรู้สึกเบื่อเมื่อหัวข้อการประชุมเปลี่ยนไปเป็นเรื่องหยุมหยิมที่ไร้ความหมาย ซึ่งถูกผลักดันอย่างกระตือรือร้นโดย ... เธอไม่มีไอเดียเลยจริงๆ ว่าเป็นใคร สรุปว่า OEP มันย่อมาจาก “Order Entry Protocol” หรือ “Order Entry Program” กันแน่? หรือพวกเขากำลังพูดเรื่อง OPA กันอีกแล้ว? หรือจริงๆ มันคือเรื่องเดียวกัน? ฉันต้องสนใจด้วยเหรอเนี่ย?

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

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

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

เหอะ ฉันน่ะเก่งเรื่องพวกนี้จะตายยังแทบไม่คืบหน้าเลย เธอคิดพลางมองที่พื้น เธอแอบยิ้มคนเดียว โชคดีนะจ๊ะ พวกโง่เอ๊ย

เกิดความเงียบอันยาวนานและน่าอึดอัดขึ้นในห้อง Maxine เงยหน้าขึ้น และก็ต้องตกใจสุดขีดที่เห็นทุกคนกำลังจ้องมาที่เธอ—เธอรู้ตัวทันทีว่าเธอต้องเผลอพูดสิ่งที่คิดออกมาดังๆ แน่เลย

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

จากหน้าห้อง Kirsten รีบพูดขึ้นมาทันที “ดีใจที่ได้เจอคุณนะ Maxine! ฉันไม่รู้เลยว่าคุณมาช่วยโปรเจกต์ Phoenix ด้วย พวกเราดีใจที่มีคนที่มีประสบการณ์อย่างคุณมาช่วย—คุณมาได้จังหวะที่เหมาะสมที่สุดเลยค่ะ!”

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

Kirsten ด้วยความจริงจังที่ทำให้เธอทำงานได้อย่างมีประสิทธิภาพ ไม่ยอมปล่อยเรื่องนี้ไปง่ายๆ เธอโน้มตัวไปข้างหน้า “ไม่ค่ะ จริงๆ นะ ฉันว่าฉันได้ยินคุณพูดว่า ‘โชคดีนะจ๊ะ พวกโง่เอ๊ย’ ฉันสนใจมุมมองของคุณเสมอนะ เมื่อพิจารณาจากความสำเร็จอันมากมายของคุณในการปฏิบัติงานโรงงาน ฉันอยากเข้าใจจริงๆ ว่าอะไรที่ทำให้คุณหัวเราะออกมาแบบนั้นคะ”

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

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

“ฉันก็แค่หวังว่าพวกวิศวกรใหม่ที่คุณจ้างมาน่ะจะมีดวงดีกว่าฉันเท่านั้นแหละค่ะ แค่นั้นจริงๆ” เธอกล่าวสรุปสั้นๆ

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

คนครึ่งห้องพากันหัวเราะอย่างสะใจ ในขณะที่อีกครึ่งห้องดูจะรู้สึกโดนล่วงเกินอย่างชัดเจน

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

เมื่อดูจากความขี้บ่นของเขา Maxine พนันได้เลยว่าเขาต้องเป็นนักพัฒนาอาวุโส—การต้องติดแหง็กอยู่ในสภาพแวดล้อมแบบ Phoenix เป็นเวลานานๆ คงจะบั่นทอนจิตใจคนไปไม่น้อยเลยล่ะค่ะ

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

(ข้ามเนื้อหาบางส่วนที่ขาดหายไป)

...หมดเวลาทั้งวันไปกับการมุดลงไปในรูโพรงกระต่ายที่เธอไม่ควรจะเข้าไปเลยตั้งแต่แรก

สรุปสั้นๆ คือเธอพยายามจะหลอมเศษกระป๋องอะลูมิเนียมเพื่อมาสร้างชิ้นส่วนเครื่องยนต์ที่หายไปเองน่ะแหละค่ะ นั่นมันงี่เง่าจริงๆ เลย Maxine เธอคิดตำหนิตัวเองในใจ คืนนั้นเมื่อเธอกลับถึงบ้าน เธอก็รู้ตัวว่าเธอหอบเอาความหงุดหงิดจากที่ทำงานกลับมาด้วย เธอเตือนสามีและลูกๆ ว่าตอนนี้เธอไม่พร้อมจะคุยกับใครทั้งนั้น และเปิดตู้เย็นหา Veuve Cliquot rosé ขวดเล็กๆ สองขวดมาดื่ม เมื่อลูกวัยรุ่นเห็นเธอ พวกเขาก็รู้ทันทีว่าควรอยู่ห่างๆ เข้าไว้ เธอแสดงออกทางสีหน้าอย่างชัดเจนว่า “ตอนนี้แม่อารมณ์บูดขั้นสุด”

ในขณะที่พวกเขากำลังเตรียมมื้อค่ำ เธอก็มุดตัวลงนอนบนเตียงและเปิดหนังดู

วันนี้เสียเวลาเปล่าชะมัด เธอโมโหอยู่คนเดียว

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

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

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

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

Maxine มีประวัติอันยาวนานและซับซ้อนกับระบบใบแจ้งปัญหา ทั้งในแง่ดีและแง่ร้ายค่ะ

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

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

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

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

วันหนึ่ง Maxine ตัดสินใจลางานทั้งวันเพื่อมาจัดการเรื่องการเปิดใช้งานสาย DSL ของเธอให้จบ หลังจากผ่านไปสามชั่วโมง ในที่สุดเธอก็สามารถคุยจนได้ข้ามขั้นไปหาพนักงานสนับสนุนระดับ Level 3 ที่สามารถเข้าถึงระบบใบแจ้งปัญหาของทั้งสองบริษัทได้ค่ะ เขาเป็นคนเก่งและดูเฉลียวฉลาดมาก เขาสามารถเชื่อมโยงคำขอของ Maxine ไปยังแผนกที่ถูกต้อง โดยใช้คำสำคัญที่ถูกต้องเพื่อดึงตัวผู้จัดการของทั้งสองบริษัทมาร่วมสายโทรศัพท์เพื่อจัดเรียงงานที่จำเป็นทั้งหมดค่ะ หนึ่งชั่วโมงหลังจากนั้น ในที่สุดเธอก็มีอินเทอร์เน็ตความเร็ว 64 Kbps ใช้งานได้เสียทีค่ะ แม้จะผ่านไปหลายสิบปี เธอก็ยังจำได้ว่าเธอรู้สึกขอบคุณพนักงานคนนั้นแค่ไหนค่ะ เธอบอกกับเขาว่า “ฉันอยากคุยกับคนที่มีอำนาจตัดสินใจจริงๆ ว่าคุณทำหน้าที่ได้ยอดเยี่ยมแค่ไหน และฉันรู้สึกขอบคุณสำหรับความช่วยเหลือของคุณจริงๆ ค่ะ” เธอยอมถือสายรออีกสิบนาทีอย่างมีความสุขเพื่อคุยกับผู้จัดการ และใช้เวลาอีกสิบนาทีเพื่อพรรณนาถึงความช่วยเหลือที่เธอได้รับอย่างละเอียดถ่องแท้ค่ะ

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

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

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

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

ขณะที่เลื่อนหน้าจอต่อไป หัวใจของ Maxine ก็เต้นรัวเมื่อเห็นหัวข้ออีเมล:

การแจ้งเตือน: ความเปลี่ยนแปลงในใบแจ้งปัญหา #46132: สภาพแวดล้อม Dev ของ Phoenix

สภาพแวดล้อม Dev ของเธอพร้อมใช้งานแล้วจริงๆ เหรอคะ?

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

เธอร้องเฮออกมาดังลั่น ในที่สุดพวกฝ่าย Ops ก็ทำงานเสร็จซะที! เธอจะได้เข้าสู่โหมดการสร้างระบบจริงๆ แล้วล่ะค่ะ!

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

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

การจะขอรับสภาพแวดล้อม Dev เราต้องการการอนุมัติจากผู้จัดการของคุณก่อนครับ กระบวนการที่ถูกต้องมีระบุไว้ตามเอกสารข้างล่างนี้ ปิดใบแจ้งปัญหาครับ

หน้าของ Maxine ร้อนผ่าวและแดงก่ำขึ้นมาทันทีเลยล่ะค่ะ

Derek ปิดใบแจ้งปัญหาของฉันงั้นเหรอ?! หลังจากที่รอมาตั้งนาน เขาแค่ปิดมันทิ้งไปเฉยๆ เพียงเพราะฉันไม่มีการอนุมัติจากผู้จัดการเนี่ยนะ?

Derek นี่มันเป็นใครกันวะ?! Maxine ตะโกนถามตัวเองในใจเลยล่ะค่ะ

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

ขอบใจมากนะ Derek ไอ้เฮงซวย Maxine คิดด้วยความโกรธจัดเลยล่ะค่ะ

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

สวัสดีค่ะ Derek ขอบคุณมากนะคะที่ช่วยดูเรื่องสภาพแวดล้อมให้ฉัน ซึ่งพวกเราจำเป็นต้องใช้มันอย่างมากสำหรับโปรเจกต์ Phoenix ค่ะ รบกวนดูใบแจ้งปัญหา #46132 (ลิงก์ข้างล่าง) นะคะ ฉันเดาว่าฉันสามารถก๊อปปี้คำอนุมัติจากผู้จัดการของฉัน (Randy Keyes) มาแปะในใบแจ้งปัญหานี้ได้เลยใช่ไหมคะ? เดี๋ยวฉันจะให้ Randy ส่งอีเมลยืนยันการอนุมัติไปให้คุณภายใน 30 นาทีนี้ค่ะ ฉันสามารถโทรหาคุณเพื่อขอให้ช่วยจัดการเรื่องนี้ให้เสร็จภายในวันนี้ได้ไหมคะ?

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

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

Derek ขอบคุณมากค่ะ นี่คือคำอนุมัติจากผู้จัดการของฉันค่ะ ฉันยังจะได้รับสภาพแวดล้อมภายในวันนี้อยู่ไหมคะ?

เธอกดปุ่มส่งค่ะ

เธอเปิดดูทำเนียบโทรศัพท์ของบริษัทและค้นหาคนชื่อ Derek ทุกคนที่อยู่ในฝ่าย IT ค่ะ มีอยู่สามคน คนที่อยู่แผนกช่วยเหลือประสานงาน (helpdesk) ดูมีความเป็นไปได้มากที่สุดค่ะ

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

นี่คือการตอบกลับอัตโนมัติ—รบกวนส่งงานที่เกี่ยวข้องกับส่วนบริการทั้งหมดเข้าไปในระบบใบแจ้งปัญหาครับ ผมจะพยายามอย่างดีที่สุดเพื่ออ่านอีเมลทั้งหมดและตอบกลับภายใน 72 ชั่วโมง หากนี่เป็นกรณีฉุกเฉิน รบกวนติดต่อหมายเลขนี้ . . .

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

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

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

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

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

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

“แน่นอนค่ะ เยี่ยมเลย Derek” เขายิ้มตอบและพาเธอเดินไปยังห้องทำงานด้านนอกค่ะ

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

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

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

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

“แน่นอนค่ะ ไม่มีคำถามไหนโง่หรอกค่ะ ถามมาได้เลย” เธอยิ้มตอบ พยายามไม่ให้ดูเหมือนคนสติหลุดค่ะ

“สภาพแวดล้อม Dev คืออะไรเหรอครับ? ผมเคยจัดการแต่ปัญหาโน้ตบุ๊ก การรีเซ็ตรหัสผ่าน และเรื่องพวกนั้น แต่ผมไม่เคยได้ยินคำว่า ‘สภาพแวดล้อม’ มาก่อนเลยครับ”

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

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

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

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

เธอไปตามหา Randy เพื่อให้แน่ใจว่าเขาจะกดอนุมัติคำขอให้เธอค่ะ แต่เขาไม่ได้อยู่ที่โต๊ะ เธอเลยกดโทรหาเขาที่มือถือทันทีเลยล่ะค่ะ

“ผมอนุมัติให้ไม่ได้จนกว่าจะกลับไปที่โต๊ะน่ะครับ” Randy บอกเธอ “ผมรับปากแน่นอนครับว่าออกจากประชุมแล้วจะรีบไปกดอนุมัติให้ จะทำให้เสร็จก่อนห้าโมงเย็นแน่นอนครับ”

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

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

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

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

ถึงจะผ่านจุดนั้นมาได้ แต่ Maxine ก็ยังคงต้องรอสภาพแวดล้อม Dev ของเธอต่อไปอยู่ดีค่ะ ด้วยความผิดหวัง เธอเลยเดินเตร่จากประชุมหนึ่งไปสู่อีกประชุมหนึ่ง เพราะไม่อยากนั่งแกร่วอยู่ที่โต๊ะทำงานเฉยๆ น่ะค่ะ

ระหว่างที่ยืนฆ่าเวลาอยู่ในห้องครัวเพื่อรอกาแฟหม้อใหม่เดือด โทรศัพท์เธอก็สั่นค่ะ การแจ้งเตือนอีเมลเกี่ยวกับความเปลี่ยนแปลงในใบแจ้งปัญหา #46132 เด้งขึ้นมาหน้าจอแล้วหน้าจอเล่าเลยล่ะค่ะ มีคำขอจัดสรรเครื่องเสมือน (virtual machine) ส่งไปยังกลุ่มระบบกระจายอำนาจ คำขอพื้นที่จัดเก็บข้อมูลจากอีกกลุ่มหนึ่ง คำขอหมายเลข IP จากอีกกลุ่มหนึ่ง คำขอจุดเชื่อมต่อเครือข่ายจากอีกกลุ่ม และคำขอติดตั้งแอปพลิเคชันจากอีกสามกลุ่ม ...

Maxine ร้องเฮด้วยความดีใจ—ในที่สุดก็มีความก้าวหน้าซะที! เหมือนซานตาคลอสเพิ่งจะระดมกองทัพเอลฟ์วิเศษมาเริ่มสร้างสภาพแวดล้อม Dev ที่เธอต้องการอย่างยิ่งยวดเลยล่ะค่ะ กองกำลังเสริมกำลังมาช่วยแล้ว!

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

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

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

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

Maxine กะพริบตาปริบๆ เลยล่ะค่ะ

นี่มันเดือนกันยายนนะคะนั่น

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

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

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

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

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

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

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

พวกเธอกำลังพยายามทำแบบฝึกหัดในห้องเรียนเพื่อคำนวณค่าเฉลี่ย (mean), ฐานนิยม (mode) และช่วงควอไทล์ (interquartile ranges) ของชุดตัวเลขด้วยภาษา Python ค่ะ เธอเห็นทันทีว่าพวกเธอทำผิดพลาดเรื่องการย่อหน้า (indentation) ซ้ำแล้วซ้ำเล่าเลยล่ะค่ะ

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

“ขอฉันแนะนำอะไรหน่อยได้ไหมคะ?” Maxine ถาม พร้อมกับขยับเข้าไปช่วยอย่างจริงใจค่ะ

“แน่นอนค่ะ คุณนาย Chambers” Maia บอก Maxine ถอนหายใจเบาๆ ค่ะ เธอก็ยังไม่แน่ใจเหมือนกันว่าอยากจะให้พวกวัยรุ่นเรียกเธอว่ายังไงดีนะคะ

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

เธอแนะนำวิธีการจัดระเบียบการย่อหน้าให้ถูกต้อง “มาลองดูกันนะคะว่ามันจะแก้ปัญหาแรกได้ไหม ...”

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

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

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

เด็กหญิงทั้งสองยิ้มอย่างมีความสุขเพราะตอนนี้โปรแกรมรันได้จริงๆ แล้วล่ะค่ะ แต่เมื่อดูผลลัพธ์ที่ได้ Maia สังเกตเห็นว่ามีบางอย่างผิดปกติค่ะ ค่าเฉลี่ยที่คำนวณออกมามันเพี้ยนไปเยอะเลยล่ะค่ะ

“อืม ... ฉันว่านี่คือข้อผิดพลาดแบบ ‘off by one’ (ผิดไปหนึ่งตำแหน่ง) ค่ะ” Maxine บอก “นี่คือหนึ่งในข้อผิดพลาดที่พบบ่อยที่สุดที่นักพัฒนาทำกันเลยล่ะค่ะ มันมักจะเกิดขึ้นตอนที่เรากำลังวนลูป (looping) ผ่านสมาชิกทุกตัวในชุดข้อมูล แล้วเราคำนวณตำแหน่งตัวสุดท้ายผิดไปค่ะ และนั่นแหละคือสิ่งที่กำลังเกิดขึ้นที่นี่—พวกเราข้ามสมาชิกตัวสุดท้ายไป ... และเชื่อหรือไม่นะคะ เวลาที่หนูประมวลผลสมาชิกเกินไปแค่ตัวเดียวโดยไม่ได้ตั้งใจเนี่ย มันอาจทำให้โปรแกรมค้าง หรือแม้แต่เปิดทางให้แฮกเกอร์เจาะเข้าระบบได้เลยนะคะ!”

Maxine หยุดยิ้มไม่ได้เลยล่ะค่ะ เธอตื่นเต้นมากที่ได้แบ่งปันบทเรียนนี้ เพราะตลอดหลายทศวรรษที่ผ่านมา เธอได้เรียนรู้ว่าการเปลี่ยนแปลงสถานะ (state mutation) และการวนลูปน่ะมันอันตรายมากและทำให้ถูกต้องได้ยากสุดๆ เลยล่ะค่ะ ปัญหาไดรเวอร์ฐานข้อมูล ODBC ล่มที่เธอแก้ไขกลางดึกเมื่อสิบกว่าปีก่อนจนทำให้เธอโด่งดังน่ะ ก็เกิดจากปัญหาประเภทนี้เป๊ะเลยล่ะค่ะ

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

การเขียนโปรแกรมเชิงฟังก์ชันคือเครื่องมือทางความคิดที่ยอดเยี่ยมกว่าจริงๆ ค่ะ

“อยากเห็นอะไรเจ๋งๆ ไหมคะ?” Maxine ถามเด็กหญิงทั้งสองคน เมื่อพวกเธอพยักหน้า เธอก็บอกว่า “นี่คือสิ่งที่ฉันจะทำค่ะ มันอาจจะดูแปลกๆ หน่อยนะคะ แต่เราสามารถกำจัดลูปทิ้งไปได้เลยโดยการใช้ตัวทำซ้ำ (iterators)—มันเป็นวิธีเขียนลูปที่ง่ายกว่าและปลอดภัยกว่ากันเยอะเลยค่ะ”

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

“วอยล่า! ดูนี่สิคะ มันทำหน้าที่เหมือนกับสิ่งที่พวกหนูเขียนเป๊ะเลย แต่ไม่มีลูปหรือตรรกะเงื่อนไขที่ซับซ้อนอย่างการคอยเช็กว่าถึงสมาชิกตัวสุดท้ายหรือยังค่ะ อันที่จริง มันคือโค้ดเพียงบรรทัดเดียว และไม่มีความเสี่ยงที่จะทำพลาดแบบ ‘off-by-one’ เลยด้วยล่ะค่ะ!” เธอบอกพลางรู้สึกภูมิใจในสิ่งที่เธอเพิ่งเขียนลงไปจริงๆ เลยล่ะค่ะ

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

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

ความสุขจากการได้สอนในสิ่งที่คนอื่นอยากจะเรียนรู้น่ะมันสุดยอดมากจริงๆ ค่ะ แถมเด็กๆ พวกนี้ก็นิสัยดีจริงๆ เธอคิดถึงความง่ายของทุกอย่างที่นี่ คุณแค่กด Control-Enter แล้วโปรแกรมก็สร้างระบบและรันให้เสร็จสรรพค่ะ ถ้ามีข้อผิดพลาด คุณก็แค่แก้ กดปุ่ม แล้วลองใหม่อีกครั้งได้ทันทีค่ะ

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

Maia กับ Paige ทำผิดเรื่องการย่อหน้าแบบเดิมซ้ำๆ เป็นเวลาครึ่งชั่วโมง แต่ที่ Parts Unlimited มีนักพัฒนาเป็นร้อยคนที่น่าจะกำลังทำผิดในเรื่องที่ใหญ่กว่านั้นเยอะเลยล่ะค่ะ และมันคงต้องใช้เวลาอีกหลายเดือนกว่าที่พวกเขาจะรู้ตัวว่าทำอะไรผิดไปน่ะค่ะ

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

Maxine กำลังจะสตาร์ทรถตอนที่โทรศัพท์เธอสั่นค่ะ มันเป็นข้อความจากหนึ่งในผู้ร่วมพัฒนาโปรเจกต์โอเพนซอร์สที่เธอเขียนขึ้นมาเพื่อช่วยในการจัดการงานส่วนตัวของเธอค่ะ เธอเริ่มโปรเจกต์นี้เมื่อห้าปีก่อนเพื่อช่วยในการจดบันทึกการทำงานให้ยอดเยี่ยมค่ะ เธอเป็นคนที่บ้าคลั่งในการจดบันทึกเวลาที่เธอใช้อยู่เสมอเลยล่ะค่ะ ตอนแรกมันก็แค่มีไว้ช่วยให้เธอมีประสิทธิผลมากขึ้น ช่วยคัดกรองงานที่หลั่งไหลเข้ามาจากทั้งอีเมล, Trello, Slack, Twitter, รายการสิ่งที่ต้องอ่าน และแหล่งที่มาของงานอีกเป็นล้านๆ แห่งค่ะ แอปของเธอเปิดทางให้ส่งต่องานไปยัง GitHub, JIRA, Trello และเครื่องมืออื่นๆ ตั้งมากมายที่เธอใช้สื่อสารกับคนอื่นและทีมงานอื่นๆ ได้อย่างง่ายดายค่ะ

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

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

เธอมองดูคำขอการดึงโค้ด (pull request) อันใหม่จากข้อความที่ส่งมา—มีคนสร้างตัวปรับแต่งใหม่สำหรับตัวจัดการงานเข้าไปค่ะ การเปลี่ยนแปลงที่เสนอมานั้นดูยอดเยี่ยมมากเลยล่ะค่ะ เธออยากทำแบบนี้มานานหลายปีแล้ว การแก้ไขของเขาน่ะมันฉลาดมากจริงๆ ค่ะ และเธอก็ชื่นชมวิธีการเขียนการทดสอบแบบอัตโนมัติของเขาเพื่อแสดงให้เห็นว่าสิ่งที่เขาเปลี่ยนน่ะมันทำงานได้โดยไม่ไปทำส่วนอื่นพังค่ะ เขายังจดบันทึกผลงานของเขาไว้อย่างดี เขียนคำบรรยายหลายย่อหน้าเลยว่าเขาทำอะไรและทำไมถึงทำแบบนั้นค่ะ เธอชอบวิธีที่เขาสร้างมันให้เป็นเหมือนคู่มือสอนการใช้งานเพื่อให้คนอื่นสามารถทำตามได้ด้วยล่ะค่ะ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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