เราจะวิจารณ์หรือด่า Solution ได้ยังไงถ้าเรายังไม่เข้าใจเลยว่าเขาจะแก้ปัญหาอะไร
สมัยก่อนคนหลายคนวิจารณ์ Go ว่าห่วยเพราะไม่มี Generic โดยไม่เข้าใจว่า Go มันออกแบบมาเพื่อเน้นแก้ปัญหาอะไร คือเขาต้องการ System programming language ที่มี Dev productivity ที่ดีและ Learning curve ต่ำ เขาก็เลยไม่ได้ให้ความสำคัญกับเรื่องนั้นจนมันมาหลังๆ
สมัยนี้เห็นคนบ่นว่าเว็บ Complex กว่าทำ UI สมัยก่อน แต่ไม่ได้เข้าใจว่า Web app เดี๋ยวนี้มันมี Brand identity ที่ต้องใส่เข้าไปในแต่ละเว็บไซต์หรือแม้แต่เว็บแอพ ลองทำ ปุ่ม Label Textbox ที่แบบต้องได้สีได้ลุคแอนด์ฟีลที่ใช่ที่เข้ากับ Brand identity ในสมัยที่เรามี Winform ดิ เหนื่อยมากนะ
(นี่ผมยังไม่นับเรื่อง Interactivity นะ เว็บเดี๋ยวนี้กรอกฟอร์มเป็น Wizard แบบสมัยก่อนไม่ได้แล้วนะ)
บางคนอาจจะเถียงกลับว่า UI ที่ดีควรล้อเข้ากับ Native อะไรที่อยู่บนแมคก็ควรมี Look & Feel แบบแมค อะไรบนแอนดรอยด์ต้องเป็นตาม Guideline ของแอนดรอยด์ดิวะ ทำไมคนสมัยนี้ UX ทำตามใจแบรนด์ตัวเองหมดไม่เคารพแพลตฟอร์มเลย
อันนี้คือข้อแตกต่างระหว่างโจทย์ที่ว่า
"เราให้ความสำคัญกับปัญหานี้เยอะไปมั้ยทำไมเราต้องมาบ้าเรื่องทำ Custom UI ที่ตรงกับแบรนด์ Identity ขนาดนี้ มันใช่มั้ยเนี่ยที่จะเอาปัญหานี้มาเป็นจุดโฟกัสของงานแล้วสร้างเฟรมเวิร์คเยอะแยะไปหมด"
กับ
"ปํญหานี้ที่เราเลือกมาแล้วว่าจะแก้ เราจะสร้าง Custom UI ให้ได้แล้วเนี่ย เราได้สร้าง Solution ที่ดีสมเหตุสมผลมั้ย มัน Unnecessary bloat, ไร้ประสิทธิภาพและซับซ้อน complex เกินไปมั้ย"
เนี่ยเป็นข้อแตกต่างที่ชัดเจนมาก คำถามแรกคือ Design question ส่วนคำถามที่สองคือ Problem solving question สองโจทย์นี้เป็นโจทย์คนละระดับกันเลย มันเอามาปนกันแล้วจะงงไปหมด