สิ่งแรกที่ต้องเริ่มสำหรับการออกแบบคือการ plaining โดยเน้นว่าจะสร้างไปทำไม และจะสร้างไปเพื่อใคร

เราต้องบอกได้ว่ากลุ่มผู้ใช้มีพื้นฐานอย่างไร มีประสบการณ์อย่างไร เคยใช้งานคอมพิวเตอร์หรือเปล่า มีความรู้ความเชียวชาญในสายงานใด มากน้อยแค่ไหน ยกตัวอย่างเช่น โปรแกรม iphoto ออกแบบมาสำหรับคนทั่วไป ไม่ได้มุ่งเน้นไปที่กลุ่มผู้เชียวชาญ (pro) ดังนั้นคำศัพท์ที่ใช้ ขนาดของ icon รูปร่างและสีสัน จะไม่เหมือนกับ aperture ที่ออกแบบสำหรับ pro

Aperture

iPhoto
จะเห็นว่าหน้าจอปกติของ iphoto ไม่ได้เป็นสีดำโดยพื้นฐาน และไม่มี menu ที่ใช้งานได้เอนกประสงค์แต่เน้นว่าทำความเข้าใจได้ง่ายๆ
ถ้ามาดูว่าสิ่งที่ต้องคำนึงในการวางแผนมีอะไรบ้าง ก็คงเรียงออกมาตามนี้
เข้าใจคนที่จะใช้ว่าอะไรที่เค้าให้ความสำคัญ
ไม่มีประสบการณ์
มีประสบการณ์มาก่อน
เข้าใจว่าโปรแกรมของเราเอาไว้แก้ปัญหาอะไรเป็นสำคัญ โดยให้วิเคระห์สิ่งที่เราช่วยผู้ใช้ เอาสิ่งที่เป็น value-add และเป็นจุดเข็งของโปรแกรมของเรา (core strength) ออกมาชัดๆ จากนั้นก็ออกแบบให้เหมาะกับการใช้งาน โดยคำนึงถึงการใช้งาน (Design for usability)
workflow ว่ากระบวนการคิดของผู้ใช้เป็นอย่างไร โปรแกรมก็ควรจะช่วยลดเวลา หรือเพิ่มประสิทธิภาพแต่ไม่ใช่พยายามไปเปลี่ยน flow
การเชื่อมต่อกับโปรแกรมอื่นๆ (ผ่าน file, ผ่าน framework) เพราะไม่มีโปรแกรมรองรับความต้องการได้ทุกรูปแบบ แต่โปรแกรมจะสามารถรองรับได้มากขึ้นถ้าสามารถคุยกับโปรแกรมอื่นได้ เช่นการเปิด web services ของ google map หรือ การที่เรา เรียกใช้ totem ผ่านทาง command line ได้ หรือการที่โปรแกรมมากมายบน apple พยายามให้สร้าง function ให้โปรแกรมอื่นๆ เรียกผ่าน automator หรือ apple script เป็นต้น
ให้นำเสนอ solution แทนที่จะเป็น feature
พึงระลึกว่า โปรแกรมที่ดีจะทำให้เราไม่รู้สึกว่ากำลังต้องใช้โปรแกรมอยู่
เข้าใจความต้องการของตลาด (market’s need) รู้ว่าผู้ใช้ต้องการใช้โปรแกรมของเราไปทำแก้ปัญหาอะไร และอะไรเป็นปัญหาที่เราต้องการจะแก้ให้เค้า ถ้าโปรแกรมของเราทำออกมาสำหรับตกแต่งภาพทางการแพทย์ ก็ต้องเข้าใจว่าปัจจุบันผู้ใช้มีปัญหาอะไรที่ photoshop, gimp, acdsee แก้ให้เค้าไม่ได้
เข้าใจลำดับความสำคัญของตลาด (market’s priority) การพยายามเขียนโปรแกรมที่สามารถแก้ได้ทุกปัญหาจะทำให้โปรแกรมซับซ้อน หรืออาจใช้งานไม่ได้เลย ถ้าอยากให้โปรแกรมขายออกก็ให้แก้ปัญหาใหญ่ที่สุดที่คนส่วนมากเจอก่อน

ตารางนี้เป็นเหมือนแผนที่ ซึ่งจะบอกว่าเราน่าจะแบ่งกลุ่มผู้ใช้อย่างไร และช่วยบอกด้วยว่าผู้ใช้แต่ละกลุ่มต้องการอะไร เช่น สิ่งที่ผู้ใช้กลุ่มธุรกิจต้องการ ไม่ใช่เรื่องความเร็วในการใชงาน แต่เค้ามองว่าเรื่องการเข้ากันได้กับโปรแกรมอื่นๆ มีความสำคัญมากที่สุด ถ้าโปรแกรมเราสร้างเอกสารออกมาแล้วส่งไปให้ลูกค้า แต่ลูกค้าดันเปิดไม่ออกก็ถือว่าโปรแกรมของเราสอบตกในฐานะโปรแกรมสำหรับธุรกิจ นั่นคือเหตุผลว่าทำไม Open office ถึงยังไม่ถูกใช้ในธุรกิจ และเป็นเหตุผลว่าทำไมถึงต้องพยายามดัน Open Document ให้เป็นมาตรฐานโดยเร็วที่สุด
ก่อนเริ่มพัฒนาให้พิจารณาแล้วสำรวจตัวเองเป็นข้อๆ