Cognitive Overload
เคยไหมครับที่เวลาเราเข้าไปเว็บที่มี content เยอะๆ จนเราไม่รู้ว่าจะไปต่อยังไงดี
เคยไหมครับที่เวลาที่เราเจอใครสักคนเอาสไลด์ที่อัดไปด้วยข้อมูลตระการตา มาใส่เรา แต่สุดท้ายเรากลับจำอะไรกับมันไม่ได้เลย
เคยไหมครับที่เวลาเราเขียนโปรแกรม แล้วไปดูโค้ดใครสักคนที่มันอัดแต่ตัวแปรที่ไม่รู้ความหมาย อัด function เดียวมา 1000 กว่าบรรทัด แล้วรู้สึกเหนื่อยกับการไล่โค้ด
ทั้งหมดนี้มันมีที่มาที่เหมือนกันครับ คือสิ่งที่เรียกว่า Cognitive Overload
แล้ว Cognitive Overload คืออะไร เราอาจจะต้องไปทำความเข้าใจกับกระบวนการทางสมองสักหน่อย
สิ่งที่ต้องทำความเข้าใจสิ่งแรกคือ สัมผัสต่างๆ ของร่างกายก็เหมือนเซนเซอร์ ที่สามารถรับข้อมูลจากภายนอกได้เร็วมาก มันอาจจะมีสิ่งต่างๆ เกิดขึ้นรอบตัวเป็นปริมาณมาก
อย่างไรก็ตาม สมองของเราก็ไม่ได้สามารถจัดการข้อมูลต่างๆ เหล่านั้นได้เร็วเพียงพอ นั่นคือข้อจำกัดว่า สมองของคนเรา เก็บข้อมูลในแต่ละครั้งได้จำกัด เช่น ในการมองเรามีข้อมูลที่เข้ามาถึง 10 ล้านต่อวินาที แต่สมองประมวลได้เพียง 40 ต่อวินาที สิ่งที่เกิดขึ้น เราจะเห็นว่า บางครั้งบางคราวเราก็มองผ่านบางสิ่งที่มันก็อยู่ข้างหน้าเราด้วยซ้ำ
ดังนั้นเมื่อสมองสามารถรับปริมาณข้อมูลได้จำกัด แต่ถ้ามีข้อมูลที่มากเกินไป เช่น สไลด์ที่มีข้อมูลเยอะมากๆ เราอาจจะจำได้เฉพาะฝั่งซ้ายของสไลด์ สักพักพอย้ายมาดูข้างขวา มันก็ลืมข้างซ้ายไปเรียบร้อย ซึ่งถ้าเราจำเป็นต้องใช้ข้อมูลของสไลด์ทั้งสองข้าง สิ่งที่เกิดขึ้นก็คือการที่เราต้องมาโหลดข้อมูลเข้าสมองตลอดเวลา ทำให้เปิดความล้า และการที่ข้อมูลมันไม่ได้ครบด้วย ก็ทำให้ส่งผลต่อการตัดสินใจต่างๆ
เช่นเดียวกับการเขียนโค้ด ถ้าเราต้องไปเจอโค้ดที่ไม่ได้เขียนมาดีๆ แล้วมาเป็นตับๆ สิ่งที่เกิดขึ้นก็คือ เราจะมีการ “ทด” โค้ดบางส่วนเข้าไปในสมองเพื่อ เชื่อมต่อความคิดกับโค้ดที่กำลังดูอยู่ แต่เนื่องจากปริมาณข้อมูลที่จำกัด scrollbar ก็จะช่วยให้ เราลืมของเก่า จำของใหม่ สลับไปสลับมาอย่างนี้เรื่อยๆ เช่นเดียวกัน
ภาพตัวอย่างการนำเสนอของ Steve Job มีวัตถุประสงค์ที่ชัดเจน ในหน้าที่นำเสนอว่า ตอนนี้มีคน download app ที่เป็น Game/Entertainment ไปแล้ว 1.5 พันล้านครั้ง
อีกตัวอย่าง โค้ด 2 ข้างให้ผลลัพธ์การทำงานที่เหมือนกัน แต่วิธีเขียนแตกต่างกัน แต่ฝั่งซ้ายเชื่อว่าจะมีการประมวลผลในใจเพื่อที่จะหาว่าบริเวณที่ เป็น switch
นั้นทำอะไร ขณะที่ฝั่งขวาการเขียนให้สอดคล้องไปตามภาษาอังกฤษช่วยให้เข้าใจง่ายขึ้นกว่า
เรื่องของระดับของ Detail ก็น่าสนใจ ถ้าเราต้องดูแล component ที่มีหลายตัว ถ้าทุกๆ ตัวต้องลงรายละเอียดไปถึงระดับล่าง มันก็จะมีข้อมูลมากมายที่ขึ้นมาเต็มไปหมด ก็จะเกิดเหตุการณ์เดียวกัน
แต่ถ้าเราดูรายละเอียดเพียงแค่ทราบว่า Component แต่ละตัวมันยังอยู่ดีหรือไม่อยู่ดี มันก็จะช่วยให้เราเข้าใจในสิ่งที่แสดงได้ง่ายขึ้น และสบายหัวมากขึ้น
ภาพแรก ก็จะเป็นการแสดงข้อมูลแบบ table ที่พยายามจะแจกแจงรายละเอียด ขณะที่อีกภาพก็จะโฟกัสไปเลยว่า สี่เหลี่ยมแต่ละกล่องคือ entity ถ้าสีเขียวแสดงว่าดี โดยไม่ต้องรู้ว่าแต่ละกล่องชื่อเสียงเรียงนามอะไร บ้าง
ในเรื่องของพฤติกรรมของมนุษย์ มีกฏอยู่ตัวหนึ่งชื่อว่า Hick’s laws กฎข้อนี้กล่าวไว้ว่า
เมื่อเราเพิ่มตัวเลือกให้ผู้ใช้มากขึ้น การตัดสินใจจะใช้เวลามากขึ้นเป็น Logarithm Scale
แต่อยากให้สังเกตว่า เมื่อเพิ่มไปจนถึงระดับหนึ่ง เวลาในการตัดสินใจก็จะเริ่มคงที่
กฎข้อนี้ถูกนำไปใช้ในหลากหลายแขนง เช่นการออกแบบ interface ที่มีตัวเลือกในการตัดสินใจไม่มาก หรือ ในช่วงหนึ่งที่ Apple มี iPhone แค่แบบเดียว ในแบบนั้นก็มี config จำกัดอยู่เพียง 3 ทาง ขณะที่คู่แข่งมีตัวเลือกมากมาย
ที่น่าสนใจคืออย่าง Google เองที่แม้จะ search ข้อมูลที่เราต้องการค้นหาออกมาเป็นล้านๆ เขาก็ไม่ได้อยากให้เราไปหาข้อมูลในทุกหน้าที่เขาแสดงมาให้ แต่เขาก็จะพยายาม ตีกรอบให้เราดูแค่เฉพาะหน้าแรก โดยเฉพาะ พวกที่ search มาต้นๆ ที่จะมีความใกล้เคียงมากที่สุด จนเราไม่ต้อง scroll ไปดูอันอื่น
ดังนั้น คำแนะนำสำหรับการที่เราจะจัดการข้อมูลให้ลด Cognitive OverLoad ได้นั้น ในภาพรวมๆก็จะมีดังนี้ครับ
- Content มีโฟกัส มีเป้าหมายที่ชัดเจน
ถ้าเป็น Presentation น่าจะเคยได้ยินหลักการของ 1 Main Idea / Slide
ถ้าเป็นการเขียนโค้ด น่าจะเคยได้ยินในเรื่องของ Single Responsibility - Detail เหมาะสม
ถ้า content แสดงภาพรวม detail ก็จะเน้นสิ่งที่จำเป็นไม่กี่ตัว
ถ้า content เจาะ ก็สามารถแสดงรายละเอียดได้เพิ่ม - ตัวเลือกไม่เยอะเกินไป