การพัฒนาซอฟต์แวร์โดยทั่วไปมีเป้าหมายเพื่อทำให้ข้อกำหนด (specifications) สอดคล้องกับการนำไปใช้งานจริง (implementation)
ด้วยเหตุผลนี้ เราจึงออกแบบซอฟต์แวร์ให้ตรงตามข้อกำหนด จากนั้นจึงนำไปใช้งานจริงตามการออกแบบนั้น เราใช้การทดสอบเพื่อยืนยันว่าการใช้งานจริงเป็นไปตามข้อกำหนด หากมีความคลาดเคลื่อนจะแก้ไขการใช้งานจริง หรือหากข้อกำหนดมีความกำกวมก็จะชี้แจงให้ชัดเจน
สิ่งนี้สามารถเรียกว่าวิศวกรรมที่ยึดตามข้อกำหนดและการนำไปใช้งานจริง
ในทางตรงกันข้าม เมื่อพูดถึงซอฟต์แวร์ในปัจจุบัน ประสบการณ์ผู้ใช้ (user experience) กำลังมีความสำคัญเพิ่มขึ้นเรื่อยๆ
ยิ่งไปกว่านั้น สิ่งที่สร้างประสบการณ์ผู้ใช้จริงๆ คือพฤติกรรม (behavior) ของซอฟต์แวร์ ไม่ใช่การนำไปใช้งานจริง
ดังนั้น นอกเหนือจากกรอบของข้อกำหนดและการนำไปใช้งานจริง ยังมีประสบการณ์และพฤติกรรมอยู่
ด้วยเหตุนี้ ผมเชื่อว่าแนวคิดของวิศวกรรมประสบการณ์และพฤติกรรม (Experience & Behavior Engineering) ซึ่งอิงตามประสบการณ์และพฤติกรรมนั้น คุ้มค่าแก่การสำรวจ
ลิควิดแวร์ (Liquidware)
วิศวกรรมประสบการณ์และพฤติกรรม (Experience & Behavior Engineering) เป็นแนวทางที่ไม่สามารถทำได้จริงด้วยวิธีการพัฒนาซอฟต์แวร์แบบดั้งเดิม
เป็นเพราะแนวทางนี้จำเป็นต้องปรับปรุงประสบการณ์ผู้ใช้โดยไม่มีขอบเขตที่เข้มงวดหรือการแบ่งแยกฟังก์ชันการทำงานในข้อกำหนด คำขอทั่วๆ ไปจากผู้ใช้เพื่อปรับปรุงประสบการณ์ของพวกเขา อาจจำเป็นต้องทิ้งซอฟต์แวร์ที่พัฒนามาทั้งหมด
ในทางกลับกัน หากถึงยุคที่การพัฒนาซอฟต์แวร์แบบอัตโนมัติโดยใช้เอเจนต์ที่ขับเคลื่อนด้วย Generative AI กลายเป็นเรื่องปกติ การสร้างระบบซอฟต์แวร์ขึ้นใหม่ทั้งหมดก็จะเป็นที่ยอมรับได้
นอกจากนี้ ในยุคดังกล่าว ด้วยการติดตั้งแชทบอท AI engineer ให้กับซอฟต์แวร์ที่เผยแพร่ เป็นไปได้ว่าเราจะเข้าสู่ยุคของ "ลิควิดแวร์" (liquidware) ซึ่งส่วนติดต่อผู้ใช้ (UI) สามารถปรับเปลี่ยนให้เหมาะกับความชอบของผู้ใช้แต่ละรายได้
ลิควิดแวร์ หมายถึงสิ่งที่มีความยืดหยุ่นมากกว่าซอฟต์แวร์แบบดั้งเดิม ซึ่งสามารถปรับให้เข้ากับผู้ใช้แต่ละคนได้อย่างสมบูรณ์แบบ
เมื่อยุคของการพัฒนาอัตโนมัติและลิควิดแวร์มาถึง กระบวนทัศน์ทางวิศวกรรมของข้อกำหนดและการนำไปใช้งานจริงก็จะล้าสมัยไป
แทนที่ด้วยการที่เราจะเปลี่ยนไปสู่กระบวนทัศน์ของวิศวกรรมประสบการณ์และพฤติกรรม (Experience & Behavior Engineering)
พฤติกรรมคืออะไร?
พูดง่ายๆ พฤติกรรมคือสถานะที่เปลี่ยนแปลงไปตามกาลเวลา
และการทดสอบพฤติกรรมก็ไม่ต่างอะไรกับการทดสอบสถานะที่เปลี่ยนแปลงตามกาลเวลานี้
ยิ่งไปกว่านั้น การทดสอบพฤติกรรมไม่ใช่การยืนยันความสอดคล้องกับข้อกำหนดที่ระบุว่าสถานะเปลี่ยนผ่านอย่างไร แต่พฤติกรรมจะถูกทดสอบโดยอิงจากคุณภาพของประสบการณ์ผู้ใช้
แน่นอนว่า หากมีข้อผิดพลาดที่ทำให้ระบบทำงานโดยไม่ตั้งใจโดยผู้ใช้หรือนักพัฒนา สิ่งเหล่านี้ก็ส่งผลกระทบอย่างมากต่อประสบการณ์ผู้ใช้ด้วยเช่นกัน ดังนั้น การทดสอบพฤติกรรมจึงรวมถึงการตรวจสอบความสอดคล้องของฟังก์ชันการทำงานและความถูกต้องของฟังก์ชันการทำงานด้วย
หลังจากปฏิบัติตามข้อกำหนดฟังก์ชันพื้นฐานเหล่านี้แล้ว จุดสนใจจะเปลี่ยนไปสู่การทดสอบพฤติกรรมที่มีคุณภาพสูงจากมุมมองของประสบการณ์ผู้ใช้
ประสบการณ์สูงสุด
สำหรับมนุษย์แล้ว ประสบการณ์ผู้ใช้สูงสุดคือการควบคุมร่างกายของตนเองเมื่อมีสุขภาพแข็งแรง
ลองพิจารณาดูสิว่า: ในแต่ละวัน เราควบคุมร่างกายที่ซับซ้อน แต่มีข้อจำกัดและขีดจำกัดสูง มีน้ำหนักหลายสิบกิโลกรัม เพื่อใช้ในการทำกิจกรรมที่มีจุดมุ่งหมาย
หากใครสักคนพยายามควบคุมระบบที่หนัก ซับซ้อน และมีข้อจำกัดสูงเช่นนี้ เพื่อทำกิจกรรมที่ต้องการ ประสบการณ์ที่ได้รับโดยทั่วไปมักจะค่อนข้างแย่
อย่างไรก็ตาม ตราบใดที่เราไม่รู้สึกไม่สบาย เราจะเคลื่อนย้ายร่างกายที่หนัก ซับซ้อน และมีข้อจำกัดสูงนี้ ราวกับว่ามันไร้น้ำหนัก ควบคุมมันได้อย่างง่ายดายราวกับกลไกง่ายๆ และไม่ใส่ใจในข้อจำกัดและขีดจำกัดของมันราวกับว่าไม่มีอยู่จริง
นี่คือประสบการณ์สูงสุด
ด้วยการมุ่งมั่นที่จะสร้างพฤติกรรมที่มีคุณภาพสูง อาจเป็นไปได้ที่จะมอบประสบการณ์ที่เทียบเท่ากับการควบคุมร่างกายของตนเอง
กล่าวอีกนัยหนึ่ง แม้ว่าระบบจะประมวลผลช้า มีฟังก์ชันการทำงานที่ซับซ้อน และมีข้อจำกัดและขีดจำกัดมากมาย ประสบการณ์ลิควิดแวร์ที่ปราศจากความเครียดโดยสิ้นเชิงก็สามารถเป็นจริงได้
สรุป
ลิควิดแวร์ขั้นสูงสุดจะมอบประสบการณ์ที่คล้ายคลึงกับร่างกายของเรา
ลิควิดแวร์ดังกล่าวจะกลายเป็นสิ่งเหมือนร่างกายสำหรับเรา
ทุกครั้งที่ลิควิดแวร์ขั้นสูงสุดแพร่หลายหรือมีการปรับปรุงฟังก์ชันการทำงาน จะรู้สึกราวกับว่าร่างกายของเรากำลังได้รับการขยายออกไป