วันเสาร์, กุมภาพันธ์ 20, 2553

Update Omnigraffle Stencil for web designer

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


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

วันนี้ต้องออกแบบ web ใหม่ จึงเอา Stencil เก่ามาปัดฝุ่น และจัดกลุ่มให้ใช้งานง่ายขึ้น ใครต้องทำงานออกแบบ web เหมือนกัน สามารถ Download ได้จาก http://graffletopia.com/stencils/459

ตัวอย่างการใช้งานลองดูใน video นะครับ



สำหรับคนที่ออกแบบ Application ให้ลองดู Stencil นี้ครับ http://graffletopia.com/stencils/446

วันอังคาร, กุมภาพันธ์ 16, 2553

Usability vs User Experience

วันก่อนได้มีโอกาสคุยกับทีมงาน open dream ได้ความรู้เรื่อง User Experience  จึงมาทำการบ้านเพิ่มเติมจนได้ข้อสรุปขั้นแรกว่า โจทย์ของ Usability และ User Experience นั้นต่างกัน

Usability

ผู้ใช้สามารถทำสิ่งที่ตนเองต้องการได้หรือยัง

User Experience

ผู้ใช้มีความสุขกับการทำงานหรือยัง

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

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

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


Designing Social Interfaces: Principles, Patterns, and Practices for Improving the User Experience (Animal Guide) A Project Guide to UX Design: For user experience designers in the field or in the making

วันจันทร์, กุมภาพันธ์ 08, 2553

Cash Study โปรแกรม ERP: HDD มาก่อน TDD

HDD ไม่ใช่ Hard disk นะครับ แต่เป็น Help Driven Development (ผมตั้งขึ้นมาส่วนตัว) ก่อนหน้านี้เราฮิตเรื่อง Test Driven Development กันมาก ซึ่งผมเห็นด้วยเป็นอย่างยิ่ง แม้ว่าตอนทำงานจริงๆ จะเอามาใช้ได้แค่นิดหน่อย แต่ตอนที่ใช้อยู่จะมีความสุขมาก โดยเฉพาะตอนที่เจอ bug ที่คาดไม่ถึง

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

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

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

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

เมื่อผู้ใช้คุ้นเคยกับ Help จะทำให้ SA, Developer, Tester, User ทำงานบนเอกสารเดียวกัน พูดเป็นภาษาเดียวกัน และเข้าใจกันและกัน มากขึ้น

Test Driven Development: By Example  The RSpec Book: Behaviour Driven Development with Rspec, Cucumber, and Friends