นวัตกรรมด้วยระบบที่มีความสำคัญต่อชีวิต
เผยแพร่แล้ว: 2022-03-11ทุกองค์กรมีโครงสร้างพื้นฐานที่ "สำคัญ" โดยทั่วไปแล้ว นี่หมายความว่าหากระบบออฟไลน์ ธุรกิจบางส่วน (หรือทั้งหมด) จะหยุดทำงานชั่วคราวจนกว่าเทคโนโลยีจะกลับมาทำงานอีกครั้ง กรณีนี้มักเกิดขึ้นเมื่อจำเป็นต้องอัปเกรดซอฟต์แวร์ ฮาร์ดแวร์ หรือเครือข่ายขนาดใหญ่: ระบบที่ปรับใช้ใหม่มีจุดบกพร่องที่ไม่คาดคิดซึ่งทำให้ระบบล้มเหลว หรือผู้ใช้ทำผิดพลาดกับระบบใหม่เนื่องจากไม่คุ้นเคย และประสิทธิภาพการทำงานจะหยุดจนกว่าเทคโนโลยีจะสามารถทำได้ ทำงานผ่านจุดบกพร่องในการปรับใช้หรือฝึกอบรมผู้ใช้ ส่วนใหญ่ ระยะเวลาที่ระบบหยุดทำงานหรือผลผลิตที่ลดลงถือเป็นความเสี่ยงที่ยอมรับได้ เพื่อแลกกับคำมั่นสัญญาว่าจะปรับปรุงประสิทธิภาพและประสิทธิภาพของเทคโนโลยีใหม่ แต่นั่นไม่ใช่เรื่องสากล ธุรกิจส่วนใหญ่สามารถจ่ายเวลาหยุดทำงานได้จำนวนหนึ่งโดยไม่ต้องเสี่ยงกับรายได้มากหรือเป็นปฏิปักษ์กับลูกค้า
แต่จะเกิดอะไรขึ้นเมื่อระบบที่คุณต้องปรับเปลี่ยนเป็น ระบบที่มีความสำคัญต่อ ชีวิต โดยที่ความปลอดภัยในชีวิตขึ้นอยู่กับความสามารถในการใช้งานระบบได้อย่างน่าเชื่อถือ
บทความนี้ก้าวออกจากการพัฒนาซอฟต์แวร์แบบเดิมๆ ที่เราใช้เวลาส่วนใหญ่ไป แทนที่จะพิจารณาองค์ประกอบของมนุษย์ในระบบที่มีความสำคัญต่อชีวิต ความคิดของฉันในหัวข้อนี้มาจากประสบการณ์ของฉันในฐานะผู้อำนวยการฝ่ายเทคโนโลยีสารสนเทศสำหรับบริการรถพยาบาล 911 ในฐานะผู้เชี่ยวชาญด้านเทคโนโลยีสำหรับองค์กรตอบสนองภัยพิบัติด้านมนุษยธรรมระหว่างประเทศ และกับปริญญาเอกของฉัน ใน Human Systems Integration เสร็จสมบูรณ์ที่สถาบันเทคโนโลยีแมสซาชูเซตส์
ก่อนที่เราจะเริ่มต้น ฉันต้องการอธิบายว่าเหตุใดสิ่งนี้จึงอาจเกี่ยวข้องกับคุณ แม้ว่าจะไม่ชัดเจนว่าโครงการของคุณเกี่ยวข้องกับระบบที่มีความสำคัญต่อชีวิตจริง ๆ แต่ก็มีโอกาสมากกว่าที่คุณคิด คุณสมบัติทั้งหมดต่อไปนี้ รวมถึงหัวข้ออื่นๆ อีกนับไม่ถ้วน:
- ยานยนต์. ทำงานในโครงการกับผู้ผลิตรถยนต์หรือซัพพลายเออร์รายใดรายหนึ่งของพวกเขา คัดเลือกออกจากมหาวิทยาลัยโดยการเริ่มต้นรถยนต์ที่ขับเคลื่อนด้วยตนเองหรือไม่? การเบรกอัตโนมัติ, ระบบควบคุมความเร็วอัตโนมัติ, การควบคุมเลน, คอมพิวเตอร์วิทัศน์, การจดจำสิ่งกีดขวาง, โมดูลควบคุมเครื่องยนต์แบบอิเล็กทรอนิกส์ ฯลฯ ทุกระบบคือระบบที่มีความสำคัญต่อชีวิต ซึ่งความล้มเหลวอาจถึงแก่ชีวิตได้
- การบิน. เมื่อคุณอยู่บนอากาศ 30,000 ฟุต ความล้มเหลวของระบบเกือบทั้งหมดอาจมีความสำคัญถึงชีวิต เมื่อพิจารณาจากเหตุการณ์ล่าสุดที่เกิดขึ้นกับเครื่องบินโบอิ้ง 737 MAX พบว่ามีระบบขับเคลื่อนอัตโนมัติและควบคุมการบินด้วยคอมพิวเตอร์ที่มีความสำคัญอย่างยิ่งยวด แต่ยังมีอีกหลายสิ่งที่คุณอาจคิดไม่ถึง ที่บ้าน หากพัดลมในระบบ HVAC ของคุณไม่ทำงานและมีควันเล็กน้อย คุณเปิดหน้าต่างหรือก้าวออกไปข้างนอกเพื่อรับอากาศบริสุทธิ์ คุณเคยพยายามเปิดหน้าต่างและก้าวออกไปข้างนอกระหว่างเที่ยวบินข้ามมหาสมุทรแอตแลนติกหรือไม่? แม้แต่ระบบพื้นฐานที่สุด ตั้งแต่ปลั๊กไฟในห้องครัวไปจนถึงเบรกที่ล้อรถเข็นเครื่องดื่ม ก็อาจเป็นปัจจัยสำคัญต่อชีวิตบนเครื่องบินได้
- การสื่อสาร นักพัฒนาหรือวิศวกรส่วนใหญ่จะทำงานในโครงการระบบการสื่อสารในบางจุดในอาชีพของตนหรืออย่างอื่น สำหรับคนจำนวนมาก โทรคมนาคมไม่ได้มีความสำคัญต่อชีวิตในช่วงแรก ท้ายที่สุด อารยธรรมมาก่อนโทรศัพท์และอินเทอร์เน็ต ในฐานะที่เป็นคนที่ได้นำไปใช้กับเขตภัยพิบัติที่โครงสร้างพื้นฐานโทรคมนาคมถูกทำลาย ให้ฉันบอกคุณว่าเกิดอะไรขึ้นจริง: ผู้คนป่วยหนักหรือได้รับบาดเจ็บและไม่สามารถโทรหา 911; ผู้สูงอายุไม่สามารถโทรหาบุตรหลานเพื่อขอให้ไปรับใบสั่งยาจากร้านขายยาได้ เจ้าหน้าที่รับมือเหตุฉุกเฉินไม่สามารถสื่อสารกับผู้มอบหมายงานหรือกันเองได้ และคนที่ไม่สามารถติดต่อกับสมาชิกในครอบครัวได้ก็กลายเป็นกังวลและตกอยู่ในสถานการณ์ที่อันตรายอย่างยิ่งเพื่อพยายามค้นหาพวกเขา ระบบการสื่อสารมีความสำคัญอย่างยิ่งต่อชีวิต
ในโลกปัจจุบันที่ต้องพึ่งพาเทคโนโลยีอย่างหนัก โครงการที่คุณไม่เคยถือว่ากึ่งสำคัญอาจกลายเป็นองค์ประกอบสำคัญของระบบที่มีความสำคัญต่อชีวิตได้
แต่ถ้ามันไม่พังอย่าซ่อมมัน
คุณเคยได้ยินหรือใช้คำว่า "มรดก" ที่เกี่ยวข้องกับระบบเทคโนโลยีหรือไม่? เป็นคำพูดที่หนักแน่น ชวนให้นึกถึงประเพณีที่มีมาช้านาน เชื้อสาย และช่วงเวลาที่ยากลำบากในสมัยโบราณ ในโลกของวิศวกรรม มีการใช้เพื่อแสดงการออกแบบที่มีมาช้านานและได้รับการพิสูจน์แล้วว่าทำงานได้อย่างน่าเชื่อถือ และมักถูกมองว่าเป็นลักษณะที่พึงประสงค์ในการลดความเสี่ยง ในความเป็นจริง มันเป็นคำสละสลวยสำหรับเทคโนโลยีโบราณที่ไม่เคยได้รับการปรับปรุงเนื่องจากการหลีกเลี่ยงความเสี่ยง และเป็นที่แพร่หลายในอุตสาหกรรมที่ความล้มเหลวของระบบสามารถนำไปสู่ผลร้ายแรง
มีเหตุผลที่ดีเบื้องหลังความสัมพันธ์นี้กับซอฟต์แวร์และฮาร์ดแวร์ที่เป็นมรดก เป็นที่ทราบกันดีว่าใช้งานได้ ไม่น่าเป็นไปได้ที่บั๊กที่ไม่รู้จักจะเกิดขึ้น และราคาของมันก็คงที่และคาดเดาได้ ตัวอย่างที่ดีคืออุตสาหกรรมการบินในอวกาศ: ยานอวกาศโซยุซของรัสเซียได้ส่งนักบินอวกาศเข้าสู่อวกาศมานานกว่า 50 ปี โดยมีการแก้ไขเพียงเล็กน้อยในช่วงเวลานั้น และยังคงใช้ต่อไปเพราะเชื่อถือได้และปลอดภัย น่าเสียดาย นี่หมายความว่ามันยังไร้ประสิทธิภาพอย่างมากเมื่อเทียบกับการออกแบบสมัยใหม่: ในขณะที่โซยุซมีราคา 81 ล้านดอลลาร์สหรัฐฯ ต่อที่นั่งสำหรับนักบินอวกาศเพื่อส่งนักบินอวกาศไปยังสถานีอวกาศโดยใช้ฮาร์ดแวร์ดั้งเดิม SpaceX และโบอิ้งคาดว่าจะเสนอที่นั่งในราคา 58 ล้านดอลลาร์ต่อที่นั่ง โดยใช้การออกแบบจรวดที่ทันสมัย
เป็นที่เข้าใจกันว่ามีคนเพียงไม่กี่คนที่ต้องการอัพเกรดระบบเก่าที่ยังใช้งานได้ ผู้บริหารไม่ต้องการความเสี่ยง ช่างเทคนิคไม่ต้องการจัดการกับเซิร์ฟเวอร์ลึกลับในตู้เสื้อผ้าที่มีเวลาทำงานถึง 12 ปี และลูกค้าไม่ต้องการเรียนรู้การออกแบบใหม่ น่าเสียดายที่มีจุดเปลี่ยนระหว่างการลดความเสี่ยงและการประหยัดต้นทุน: การออกแบบมรดกจะต้องได้รับการอัพเกรดในที่สุด แม้ในสภาพแวดล้อมที่มีความเสี่ยงสูง
ส่วนที่เหลือของบทความนี้ครอบคลุมขั้นตอนที่สำคัญกว่าบางส่วนในกระบวนการดังกล่าว เมื่อระบบของคุณมีความสำคัญต่อชีวิต เช่น ขั้นตอนที่ใช้โดยหน่วยกู้ภัยก่อน หน่วยทหาร หรือเครื่องบิน
เชื่อคนทองเหลือง
จากประสบการณ์ของผม ขั้นตอนที่ยากที่สุดของกระบวนการคือการโน้มน้าวผู้มีอำนาจตัดสินใจและผู้มีส่วนได้ส่วนเสียว่าจำเป็นต้องมีการอัปเกรด ระบบที่ทำงานในสภาพแวดล้อมที่วิกฤตต่อชีวิตมักอยู่ภายใต้กฎระเบียบทางกฎหมายและนโยบายองค์กรที่กว้างขวาง ซึ่งหมายความว่าคุณต้องโน้มน้าวพวกเขาว่าพวกเขาไม่ควรเสี่ยงและใช้จ่ายเงินเท่านั้น แต่ยังต้องมีส่วนร่วมในสิ่งที่อาจเป็นไปได้ง่าย ๆ ปีแห่งการตัดเทปข้าราชการ ฝ่ายค้านที่แข็งแกร่งที่สุดที่คุณจะเผชิญมักจะมาจากทีมกฎหมาย ซึ่งจะอธิบายรายละเอียดเกี่ยวกับ ความรับผิดที่อาจเกิดขึ้นที่ คุณจะเปิดองค์กรด้วยการแนะนำเทคโนโลยีใหม่อย่างละเอียดถี่ถ้วน ถูกต้อง: ความรับผิดเป็นปัญหาใหญ่ และหากมีสิ่งใดแตกหักและมีผู้ได้รับบาดเจ็บหรือเสียชีวิต อาจเป็นภาระด้านจริยธรรม ชื่อเสียง และการเงินจำนวนมหาศาล
ไม่ว่าคุณจะทำงานกับบริษัทที่ติดอันดับ Fortune 500 หรือกับอาสาสมัครดับเพลิงในพื้นที่ของคุณ สิ่งสำคัญคือเงินเสมอ บริษัทต่างๆ ไม่อยากสูญเสียมันไป และองค์กรไม่แสวงผลกำไรก็ไม่ต้องทำอะไรมากตั้งแต่แรก วิธีเดียวที่น่าเชื่อถือที่ฉันพบว่าโน้มน้าวผู้นำองค์กรให้เสี่ยงที่จะเปลี่ยนแปลงระบบที่มีความสำคัญต่อชีวิตคือการแสดงให้เห็นว่ามีแนวโน้มว่าจะสร้างรายได้หรือประหยัดเงินมากกว่าที่จะสูญเสียหรือสามารถทำได้ ลดความรับผิดโดยการปรับปรุงเทคโนโลยีให้ทันสมัยและปรับปรุงความปลอดภัย
นั่นหมายความว่าคุณต้องทำคณิตศาสตร์ โอกาสที่จะมีการหยุดทำงานนานขึ้นหรือเกิดปัญหาขัดข้องในอนาคตอันเนื่องมาจากข้อบกพร่อง (อิงจากการปรับใช้ครั้งก่อนในองค์กรของคุณ หรือข้อมูลจากองค์กรอื่น) คืออะไร? อะไรคือผลกระทบที่คาดหวังหากล้มเหลว และมีค่าใช้จ่ายเท่าไร? ในทางกลับกัน ประสิทธิภาพที่คาดหวังหรือความน่าเชื่อถือที่เพิ่มขึ้นคืออะไร และอะไรคือสิ่งที่คุ้มค่า? หากคุณสามารถแสดงให้เห็นว่ามีความเป็นไปได้สูงที่คุณจะออกมาข้างหน้า ก็มีโอกาสสูงที่คุณจะได้รับไฟเขียว
ไม่เกี่ยวกับคุณ
คุณอาจคุ้นเคยกับวลี "โดยวิศวกร สำหรับวิศวกร" ซึ่งเป็นสำนวนที่บอกว่าวิศวกรสร้างบางสิ่งขึ้นมาเพื่อใช้โดยผู้ที่มีคุณสมบัติคล้ายกับพวกเขาเอง เป็นเหตุการณ์ที่เกิดขึ้นบ่อยมากและเป็นหนึ่งในปัจจัยที่กระตุ้นให้เกิดการศึกษาการใช้งานคอมพิวเตอร์ในช่วงต้นทศวรรษ 1990 ในฐานะวิศวกร เรามักจะมีแบบจำลองทางความคิดที่แตกต่างกันเกี่ยวกับวิธีการทำงานของระบบเทคโนโลยีมากกว่าที่ผู้ใช้ปลายทางทั่วไปทำ ซึ่งนำไปสู่แนวโน้มที่จะออกแบบระบบโดยสันนิษฐานว่าผู้ใช้ปลายทางทราบแล้วว่าระบบทำงานอย่างไร ในระบบทั่วไป สิ่งนี้นำไปสู่ข้อผิดพลาดและลูกค้าที่ไม่พึงพอใจ ในระบบวิกฤติชีวิต อาจทำให้เสียชีวิตได้
พิจารณากรณีของ Air France Flight 447 เมื่อวันที่ 1 มิถุนายน 2552 เครื่องบินแอร์บัส A330 อยู่เหนือมหาสมุทรแอตแลนติกระหว่างทางจากรีโอเดจาเนโรไปปารีส ผลึกน้ำแข็งบดบังหลอดพิโทต ทำให้เกิดความไม่สอดคล้องกันในการวัดความเร็วลม คอมพิวเตอร์เที่ยวบินปลดนักบินอัตโนมัติ โดยตระหนักว่าไม่สามารถบินเครื่องบินด้วยข้อมูลความเร็วอากาศที่ไม่ถูกต้องได้อย่างน่าเชื่อถือ จากนั้นจึงวางตัวเองให้อยู่ในโหมด "ขยายขอบเขตการบิน" ซึ่งอนุญาตให้นักบินทำการซ้อมรบที่ปกติแล้วคอมพิวเตอร์ไม่อนุญาต คุณสามารถจินตนาการถึงวิศวกรที่สร้างระบบโดยคิดว่า "ถ้าระบบขับเคลื่อนอัตโนมัติหยุดทำงาน อาจเป็นเพราะมีสถานการณ์ที่นักบินอาจต้องการการควบคุมเพิ่มเติม! ”
นี่เป็นขบวนการทางความคิดตามธรรมชาติสำหรับวิศวกร ซึ่งเข้าใจว่าสิ่งใดที่อาจทำให้นักบินอัตโนมัติหลุดจากการทำงาน สำหรับนักบิน มันไม่ใช่อย่างนั้น พวกเขาบังคับเครื่องบินให้ปีนขึ้นไปสูงโดยไม่สนใจคำเตือนของ "STALL" จนกระทั่งสูญเสียความเร็วของเครื่องบินและตกลงสู่มหาสมุทร ผู้โดยสารและลูกเรือทั้งหมด 228 คนเสียชีวิต แม้ว่าจะมีแนวคิดหลายอย่างเกี่ยวกับแรงจูงใจที่แน่นอนสำหรับการกระทำของพวกเขา ทฤษฎีที่มีอยู่คือนักบินสันนิษฐานว่าคอมพิวเตอร์การบินจะป้องกันอินพุตควบคุมที่จะทำให้เครื่องบินหยุดนิ่ง (ซึ่งเป็นความจริงสำหรับซองเที่ยวบินปกติ) และไม่ได้ตระหนักว่า มันเปลี่ยนไปใช้โหมดเอนเวโลปแบบขยายเพราะพวกเขาไม่ได้แบ่งปันแบบจำลองทางจิตใจของวิศวกรเกี่ยวกับตรรกะที่ขับเคลื่อนการตัดสินใจของคอมพิวเตอร์
แม้ว่าจะเป็นเส้นทางที่คดเคี้ยวเล็กน้อย สิ่งนี้นำเราไปสู่ประเด็นหลักของฉัน: การกระทำที่คุณต้องการให้ผู้ใช้ทำภายใต้เงื่อนไขเฉพาะจะต้องเป็นการกระทำที่ ผู้ใช้รู้สึกเป็นธรรมชาติ

ผู้ใช้สามารถได้รับคำแนะนำให้ปฏิบัติตามขั้นตอนเฉพาะ แต่มักจะไม่จำสิ่งที่ถูกต้องที่ต้องทำหรือทำความเข้าใจกับสิ่งที่เกิดขึ้นภายใต้สภาวะที่มีความเครียดสูง เป็นความรับผิดชอบของคุณในการออกแบบซอฟต์แวร์ การควบคุม และอินเทอร์เฟซในลักษณะที่เป็นธรรมชาติซึ่งทำให้ผู้ใช้ ต้องการ ทำสิ่งที่พวกเขาควรจะทำโดยเนื้อแท้
สิ่งนี้หมายความว่าเป็นสิ่งสำคัญอย่างยิ่งที่ผู้ใช้ปลายทางจะต้องมีส่วนร่วมในทุกขั้นตอนของกระบวนการออกแบบและพัฒนา ไม่สามารถสันนิษฐานได้ว่าผู้ใช้จะทำอะไร ทั้งหมดจะต้องเป็นไปตามหลักฐาน เมื่อคุณออกแบบอินเทอร์เฟซ คุณต้องทำการศึกษาเพื่อกำหนดรูปแบบความคิดที่พวกมันกระตุ้นผู้ใช้และปรับตามความจำเป็น เมื่อคุณทดสอบระบบใหม่ คุณต้องทดสอบกับผู้ใช้จริงในสภาพแวดล้อมจริงภายใต้สภาวะจริง และน่าเสียดาย เมื่อคุณเปลี่ยนการออกแบบ คุณต้องทำตามขั้นตอนเหล่านี้ใหม่ทั้งหมดอีกครั้ง
แม้ว่าระบบที่ซับซ้อนทุกระบบจะมีเอกลักษณ์เฉพาะตัว แต่ฉันอยากจะพูดถึงข้อควรพิจารณาในการออกแบบสามประการ โดยเฉพาะอย่างยิ่ง ที่ควรใช้ในระดับสากล:
- การควบคุมควรเป็นตัวแทนของการกระทำที่พวกเขาเรียกใช้ โชคดีที่ไอคอนนี้พบได้ทั่วไป โดยมักเห็นในรูปแบบของการเลือกไอคอนที่เกี่ยวข้องสำหรับปุ่ม GUI หรือรูปร่างที่เกี่ยวข้องสำหรับการควบคุมทางกายภาพ ปุ่ม "ไฟล์ใหม่" ใช้ไอคอนกระดาษเปล่า และคันเกียร์ลงจอดในเครื่องบินจะมีปุ่มเป็นรูปวงล้อ อย่างไรก็ตาม มันง่ายที่จะเกิดความพึงพอใจ เหตุใดเราจึงยังคงเห็นไอคอนฟลอปปีดิสก์ 3.5” สำหรับปุ่ม “บันทึก” ใครที่อายุน้อยกว่า 25 รู้บ้างว่าฟลอปปีดิสก์คืออะไร? เราใช้ต่อไปเพราะเราคิดว่าเป็นตัวแทน แต่จริงๆ แล้วไม่ใช่แล้ว ต้องใช้ความพยายามอย่างต่อเนื่องเพื่อให้แน่ใจว่าการแสดงการควบคุมมีความหมายต่อผู้ใช้ แต่ก็จำเป็นและยากที่จะปรับสมดุลให้มีความต่อเนื่อง
- หากระบบเตือนขัดข้อง จะต้องตรวจจับได้ เรามักใช้ไฟเตือนที่เปิดใช้งานเมื่อเกิดปัญหา เช่น ไฟสัญญาณสีแดงกะพริบ เป็นการดีสำหรับการดึงดูดความสนใจของผู้ใช้ แต่จะเกิดอะไรขึ้นหากแสงหมดลง ยานอวกาศที่ใช้ในภารกิจทางจันทรคติของ Apollo มีไฟเตือนหลายสิบดวงสำหรับระบบทุกประเภท แต่ไม่ได้ทำงานในลักษณะทั่วไป แทนที่จะให้แสงสว่างเมื่อมีปัญหา ไฟเหล่านี้ยังคงส่องสว่างเมื่อทุกอย่างเรียบร้อยและดับ ลง เมื่อมีปัญหา สิ่งนี้ทำให้มั่นใจได้ว่าไฟเตือนที่ดับแล้วจะไม่ทำให้นักบินอวกาศพลาดข้อผิดพลาดของระบบที่อาจถึงตายได้ ฉันไม่ได้บอกว่าคุณควรใช้การออกแบบนี้ เนื่องจากหลอดไฟมีความน่าเชื่อถือมายาวนานตั้งแต่ทศวรรษ 1960 แต่มันให้แนวคิดว่าการวางแผนของคุณต้องมีเชิงลึกเพียงใด มีกี่ครั้งที่ระบบล่ม แต่คุณไม่รู้เพราะการบันทึกหรือการแจ้งเตือนทำงานไม่ถูกต้อง?
- การเปลี่ยนโหมดจะต้องชัดเจนสำหรับผู้ใช้ จะเกิดอะไรขึ้นหาก Airbus A330 เปลี่ยนจากโหมดควบคุมปกติเป็นโหมดควบคุมขั้นสูงโดยที่ผู้ใช้ไม่ได้สังเกต และจู่ๆ เครื่องบินก็ทำในสิ่งที่ผู้ใช้ไม่คิดว่าจะทำได้ จะเกิดอะไรขึ้นหากรถยนต์ที่ขับด้วยตนเองปลดระบบอัตโนมัติ ปล่อยให้ผู้ใช้ควบคุมอย่างเต็มที่โดยไม่คาดคิด จะเกิดอะไรขึ้นเมื่อมีการเปลี่ยนแปลงที่สำคัญในโหมดหรือการทำงานที่ต้องการการเปลี่ยนแปลงทันทีในการกระทำของผู้ใช้ แต่ผู้ใช้ต้องใช้เวลาหนึ่งหรือสองนาทีเพื่อค้นหาว่าเกิดอะไรขึ้น แม้ว่าโหมดการทำงานที่หลากหลายอาจมีความจำเป็นในระบบที่ซับซ้อน แต่โหมดต่างๆ จะไม่สามารถเปลี่ยนแปลงได้หากไม่มีการแจ้ง คำอธิบาย และการโต้ตอบกับผู้ใช้อย่างเพียงพอ
นำระบบวิกฤติชีวิตออกจากร้าน
เพื่อให้สอดคล้องกับแนวทางปฏิบัติที่ดีที่สุดในอุตสาหกรรม ระยะเบต้ามีความสำคัญอย่างยิ่งต่อการปรับใช้ระบบใหม่ที่มีความสำคัญต่อชีวิต การทดสอบเทคโนโลยีใหม่ของคุณอาจช่วยคุณแก้ไขจุดบกพร่องและปัญหาการใช้งานส่วนใหญ่ได้ แต่อันตรายที่ซ่อนอยู่อาจปรากฏขึ้นเมื่อต้องใช้ร่วมกับระบบอื่นๆ ในสภาพแวดล้อมจริง ในสาขาวิศวกรรมระบบเรียกว่า "ภาวะฉุกเฉิน" คุณสมบัติฉุกเฉินคือ "พฤติกรรมที่ไม่คาดคิดซึ่งเกิดจากการโต้ตอบระหว่างส่วนประกอบของแอปพลิเคชันและสภาพแวดล้อม" และโดยธรรมชาติแล้วเป็นไปไม่ได้ที่จะตรวจพบในการตั้งค่าห้องปฏิบัติการ ด้วยการเชิญกลุ่มผู้ใช้ปลายทางให้ทดลองใช้ระบบใหม่ของคุณภายใต้การดูแลอย่างระมัดระวัง คุณสมบัติเหล่านี้จำนวนมากสามารถตรวจพบและประเมินผลด้านลบที่อาจปรากฏในการปรับใช้เต็มรูปแบบ
อีกหัวข้อหนึ่งที่มักเกิดขึ้นในการสนทนาเกี่ยวกับสถาปัตยกรรมกับลูกค้าของฉันคือเรื่องการเปิดตัวแบบค่อยเป็นค่อยไป นี่คือทางเลือกระหว่างค่อยๆ แทนที่องค์ประกอบของระบบที่มีอยู่ก่อนด้วยองค์ประกอบใหม่ จนกระทั่งในที่สุดทุกอย่างจะถูกแทนที่กับการเปลี่ยนแปลงทุกอย่างในครั้งเดียว มีข้อดีและข้อเสียสำหรับแต่ละรายการ: การเปิดตัวแบบค่อยเป็นค่อยไปช่วยให้ผู้ใช้เคยชินกับการออกแบบใหม่อย่างค่อยเป็นค่อยไป ทำให้มั่นใจได้ว่าการเปลี่ยนแปลงมาในปริมาณที่จัดการได้และผู้ใช้จะไม่ถูกครอบงำ ในทางกลับกัน มันสามารถลากกระบวนการออกไปในช่วงเวลาที่ขยายออกไป และส่งผลให้เกิดการเปลี่ยนแปลงอย่างต่อเนื่อง การเปิดตัวในทันทีนั้นมีประโยชน์ในการที่พวกเขา "ดึงแถบความช่วยเหลือออก" และทำให้สิ่งต่าง ๆ เร็วขึ้น แต่การเปลี่ยนแปลงอย่างฉับพลันอย่างฉับพลันสามารถครอบงำผู้ใช้ได้
สำหรับระบบที่มีความสำคัญต่อชีวิต ฉันพบว่าการเริ่มใช้งานแบบค่อยเป็นค่อยไปนั้นโดยทั่วไปจะปลอดภัยกว่า เนื่องจากอนุญาตให้มีการประเมินส่วนประกอบแต่ละรายการในสภาพแวดล้อมการผลิตที่เพิ่มขึ้น และอนุญาตให้มีการย้อนกลับที่น้อยลงหากจำเป็นต้องย้อนกลับ นี่คือสิ่งที่ต้องได้รับการประเมินเป็นกรณี ๆ ไป
การทำให้เป็นมาตรฐานของความเบี่ยงเบน
ตกลง การทดสอบผู้ใช้ของคุณช่วยให้คุณออกแบบระบบที่ใช้งานง่าย ระยะเบต้าของคุณระบุปัญหาที่เกิดขึ้น การเปิดตัวแบบค่อยเป็นค่อยไปของคุณทำให้ผู้ใช้รู้สึกสบายใจกับการออกแบบ และทุกอย่างทำงานได้อย่างราบรื่น เสร็จแล้วใช่ไหม แต่น่าเสียดายที่ไม่ได้.
ปัญหากับระบบของคุณจะเกิดขึ้นอย่างหลีกเลี่ยงไม่ได้ ไม่มีทางแก้ไขได้ เมื่อผู้ใช้พบปัญหาเหล่านี้ พวกเขามักจะพัฒนาวิธีแก้ปัญหาแทนที่จะรายงานปัญหาต่อทีมเทคนิค การแก้ปัญหาเฉพาะหน้าจะกลายเป็นแนวปฏิบัติมาตรฐาน แบ่งปันกันเป็น “เคล็ดลับ” ตั้งแต่ทหารผ่านศึกไปจนถึงมือใหม่ นักสังคมวิทยา ไดแอน วอห์น ได้ประดิษฐ์วลีเพื่ออธิบายปรากฏการณ์นี้: "การทำให้เป็นมาตรฐานของการเบี่ยงเบน" ผู้ใช้คุ้นเคยกับพฤติกรรมเบี่ยงเบนมากจนลืมไปว่าแท้จริงแล้วพฤติกรรมเบี่ยงเบน
ตัวอย่างคลาสสิกคือกระสวยอวกาศชาเลนเจอร์: ส่วนประกอบในเครื่องกระตุ้นจรวดแบบแข็งนั้นมักจะสึกกร่อนในระหว่างการปล่อย และแม้ว่าทุกคนจะรู้ว่าการกัดเซาะส่วนประกอบของจรวดนั้นเป็นสิ่งที่ไม่ดี แต่ก็เกิดขึ้นบ่อยครั้งที่การสละสิทธิ์ได้รับการยกเว้นอย่างสม่ำเสมอและได้รับการพิจารณา ปกติ. เมื่อวันที่ 28 มกราคม พ.ศ. 2529 ปัญหาที่ทุกคนรู้แต่แรกไม่ควรจะได้รับอนุญาต แต่ปัญหากลับกลายเป็นปกติ ส่งผลให้เกิดการระเบิดของผู้ท้าชิงและการเสียชีวิตของนักบินอวกาศเจ็ดคน
ในฐานะผู้ดูแลระบบของระบบที่มีความสำคัญต่อชีวิต การป้องกันไม่ให้เหตุการณ์ดังกล่าวเกิดขึ้นจะขึ้นอยู่กับคุณ ศึกษาว่าผู้ใช้ของคุณโต้ตอบกับระบบอย่างไร ซ่อนพวกเขาไว้สองสามวันและดูว่าพวกเขากำลังใช้วิธีแก้ไขปัญหาชั่วคราวที่ไม่คาดคิดหรือไม่ ส่งแบบสำรวจเป็นระยะเพื่อขอการเปลี่ยนแปลงและการปรับปรุงที่แนะนำ อุทิศเวลาและความพยายามในการปรับปรุงระบบของคุณ ก่อนที่ผู้ใช้ของคุณจะหาวิธีแก้ไขปัญหาโดยไม่มีคุณ
การฝึกอบรมเพื่อการปฏิบัติงานภายใต้ความกดดัน
มักเป็นกรณีที่ความล้มเหลวในระบบที่มีความสำคัญต่อชีวิตเกิดขึ้นเมื่อผู้ใช้ประสบกับความเครียด อะดรีนาลีนพลุ่งพล่าน และการมองเห็นในอุโมงค์ มันเกิดขึ้นกับนักบินของสายการบินแอร์ฟร้านซ์ 447 เกิดขึ้นกับหน่วยพยาบาลที่จำไม่ได้ว่าจะใช้เครื่องวัดหัวใจอย่างไรกับผู้ป่วยภาวะหัวใจหยุดเต้นรายแรก และเกิดขึ้นกับทหารที่ไม่สามารถสั่งงานวิทยุได้อย่างถูกต้องในขณะที่ถูกไฟไหม้
ความเสี่ยงบางส่วนได้รับการแก้ไขโดยใช้การออกแบบที่ใช้งานง่ายตามที่กล่าวไว้ก่อนหน้านี้ แต่นั่นไม่เพียงพอ โดยเฉพาะอย่างยิ่งในสภาพแวดล้อมที่เกิดสถานการณ์ที่มีความเครียดสูงแต่เกิดขึ้นไม่บ่อยนัก จำเป็นต้องฝึกอบรมผู้ใช้ของคุณ ไม่เพียงแต่วิธีใช้งานระบบของคุณเท่านั้น แต่ยังต้องคิดอย่างชัดเจนภายใต้เงื่อนไขดังกล่าวด้วย หากผู้ใช้จดจำการกระทำที่เกี่ยวข้องกับอุปกรณ์ปฏิบัติการ พวกเขาไม่สามารถจัดการกับความล้มเหลวที่ไม่คาดคิดได้ เนื่องจากการกระทำที่เรียนรู้อาจไม่เหมาะสมอีกต่อไป หากพวกเขาฝึกคิดอย่างมีเหตุมีผลและชัดเจนภายใต้ความเครียด พวกเขาสามารถตอบสนองต่อสถานการณ์ที่เปลี่ยนแปลงไปและช่วยให้ระบบของคุณมีชีวิตอยู่ได้เมื่อมีบางอย่างผิดปกติ
บทสรุป
เห็นได้ชัดว่าการพัฒนา การปรับใช้ และการบำรุงรักษาซอฟต์แวร์ที่มีความสำคัญต่อชีวิตนั้นซับซ้อนกว่ามากเกินกว่าจะอธิบายรายละเอียดได้ในบทความเดียว อย่างไรก็ตาม ข้อควรพิจารณาเหล่านี้อาจช่วยให้คุณมีความคิดที่ดีขึ้นเกี่ยวกับสิ่งที่คาดหวังเมื่อคุณกำลังคิดเกี่ยวกับการทำงานในโครงการดังกล่าว สรุป:
- นวัตกรรมเป็นสิ่งจำเป็นแม้ในขณะที่ทุกอย่างทำงานได้อย่างราบรื่น
- เป็นการยากที่จะโน้มน้าวผู้บริหารว่าความเสี่ยงนั้นคุ้มค่า แต่ตัวเลขไม่โกหก
- ผู้ใช้ปลายทางต้องมีส่วนร่วมในทุกขั้นตอนของกระบวนการ
- ทดสอบและทดสอบซ้ำกับผู้ใช้จริงในสภาพแวดล้อมจริงภายใต้สภาพจริง
- อย่าคิดว่าคุณทำถูกต้องในครั้งแรก แม้ว่าจะใช้งานได้ แต่อาจมีปัญหาที่ตรวจไม่พบซึ่งผู้ใช้ของคุณไม่ได้บอกคุณ
- ฝึกอบรมผู้ใช้ของคุณ ไม่ใช่แค่เพียงวิธีการใช้ระบบ แต่ยังรวมถึงการคิดอย่างชัดเจนและปรับตัวอย่างไรภายใต้ความเครียด
ในการสรุป ฉันต้องการทราบว่าในระบบที่มีความสำคัญด้านความปลอดภัยที่ซับซ้อน สิ่งต่างๆ จะผิดพลาดในบางจุด ไม่ว่าคุณจะวางแผน ทดสอบ และบำรุงรักษามากเพียงใด เมื่อระบบเหล่านี้มีความสำคัญต่อชีวิต อาจเป็นไปได้ว่าความล้มเหลวอาจนำไปสู่การสูญเสียชีวิตหรือแขนขาได้
ในกรณีที่โศกนาฏกรรมดังกล่าวเกิดขึ้นกับสิ่งที่คุณต้องรับผิดชอบ มันจะเป็นน้ำหนักที่บดบังมโนธรรมของคุณ และคุณอาจจะคิดว่าคุณสามารถป้องกันได้หากคุณให้ความสนใจมากขึ้นหรือทำงานหนักขึ้น บางทีนั่นอาจเป็นจริง อาจจะไม่ แต่ก็เป็นไปไม่ได้ที่จะคาดการณ์ทุกเหตุการณ์ที่อาจเกิดขึ้นได้
ทำงานอย่างระมัดระวัง อย่าอวดดี แล้วคุณจะทำให้โลกนี้น่าอยู่ขึ้น