How to build a Design System on a budget — Design system ฉบับสามัญชน!

Jaonow Somruetai
odds.team
Published in
3 min readMay 26, 2024
How to build a design system on a budget By คุณมาร์ช — UXTH Conference 2024

สำหรับบทความนี้จะเป็นสรุปใน Session : How to build a design system on a budget ทั้งนี้คุณมาร์ชได้มาเล่าถึงความพยายามในการทำ Design Systems ที่มีข้อจำกัดในด้านงบประมาณให้สามารถเกิดขึ้นได้ โดยที่ไม่มีทีม Design System 🔥🔥

เรามาเริ่มกันที่ Design system คืออะไร?

Design system คือของที่เราใช้ซ้ำ สามารถนำกลับมาใช้ใหม่ได้เรื่อยๆ เลยมาทำเก็บเป็นชุดเดียวกัน ยกตัวอย่างเช่น

  • หากเป็น Designer ก็จะมี Figma Library, Design Principle, Design Tokens
  • UX Writer ก็จะมี Content Library, Voice & Tone
  • ในส่วนของทาง Dev ก็จะมี Code Library, Documentation

จะเห็นว่าของที่มีนั้นเยอะมาก หากจะทำทั้งหมดก็คงจะไม่ไหว หากอยากทำให้ Design System สมบูรณ์และใช้งานได้จริงก็ต้องอาศัยความร่วมมือจากหลากหลาย Role ที่กล่าวมา คุณมาร์ชจึงได้แนะนำ 5 สิ่งในการสร้าง Design system ฉบับสามัญชนขึ้นมา

1. ทำใจ

ตัดสิ่งที่(ยัง)ไม่ควรทำทิ้ง

เราต้องทำใจว่าเราสร้างทั้งหมดไม่ได้ เลือกทำอันที่แก้ปัญหาให้เราก่อน ตัดสิ่งที่ไม่คิดว่าจะทำตอนนี้ทิ้งไปก่อน พอถึงเวลาที่ควรเราจะรู้เองว่าสิ่งที่เราได้ตัดออกไปควรจะนำกลับมาทำในช่วงเวลาไหน

กล้าแก้ปัญหาที่ท้าทาย

ถ้าเราเจอปัญหาจริงๆแล้วถึงปัญหาจะยาก แต่ลองหาวิธีแก้ปัญหาไปก่อน อย่ากลัวที่จะแก้ปัญหาที่ดูยาก

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

01 — เลือกอันที่แก้ปัญหาเรา

2.ทำเท่าที่ทำไหว

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

02 — แรงสนับสนุนจากหลายๆส่วน
  • ส่วนแรกคือดูจากตัวเราเองว่าเรามีความรู้ ทักษะและความสามารถแค่ไหน
  • แรงจากคนรอบข้าง เช่นหัวหน้า เพื่อนร่วมงาน ทำงานคนเดียวสู้มีคนรอบข้างช่วยทำไม่ได้เพราะสิ่งที่เราขาดไม่แน่ว่าคนรอบข้างอาจจะช่วยซัพพอร์ตเรามากขึ้นได้
  • แรงจากบริษัท เช่น ต้องดูว่าบริษัทให้ความสำคัญกับ Design system มากแค่ไหน
02 — แรงที่ไม่เท่ากัน

แรงทั้งหมดที่พูดมาข้างต้นจะสื่อว่า แรงที่เรามีมันมีหลายเลเวล แต่ละแรงไม่เท่ากัน ซึ่งงาน Design system เป็นงานที่ต้องการแรงจากเพื่อนร่วมทีม หากสุดท้ายแล้วแรงเราไม่ไหวจริงๆลองขอแรงเพิ่ม ถ้าอยากลองแก้ปัญหาที่เกิดขึ้นจริงๆ

“ ทำเท่าที่ไหว ฝันต้องสัมพันธ์กับแรง ถ้าปัญหาใหญ่ ให้หาแรงเพิ่ม ถ้าแรงไม่พอให้ลองลดขนาดของปัญหา ”

3.ทำแบบบ้านๆ

“Good enough is fine — Rework (Jason Friedmand & DHH)”

ลองจินตนาการว่าถ้าเราอยากรู้ว่านกบินแล้วมองเห็นโลกเป็นยังไง ถ้าเราอยากรู้ เราอาจจะลองขึ้นเครื่องบิน ขึ้นลิฟต์แก้วที่สูงๆ ขึ้นไปอยู่ตึกสูง ตามความจริงถ้าหากเรามีเงิน เราจะทำอะไรก็ได้ แต่ในทาง Design system เงินก็คือแรง ถ้ามีแรงเราจะทำอันไหนก็ได้ แต่ถ้าไม่มีแรง เราอาจจะต้องปรับลงมาหน่อย

“ศึกษา best practices + ทำที่เหมาะกับเรา”

ในภาพรวมของ Design system มีมาเพื่อแก้ปัญหา ทุกบริษัทที่ทำก็อยากให้ทำงานได้เร็วและมีประสิทธิภาพ ถ้าเราสามารถเรียนรู้จากคนที่ทำมาก่อนได้จะมีประโยชน์กับเรามาก คนที่ทำมาก่อนอาจจะมีแรงเยอะ แต่ถ้าเราไม่ได้แรงเยอะ เราก็เรียนรู้จากสิ่งที่เขาทำไว้แล้วมาปรับให้เหมาะกับเรา

ตัวอย่างสิ่งที่ได้ทำแล้วคิดว่าเวิร์ค

03 — การทำ Foundation (ในมุมของ Designer)

การทำ Foundation (ในมุมของ Designer)

การทำ Foundation ในมุมของ Design system ถ้าพื้นฐานแน่น คนที่เอาไปใช้ หรือเอาไปทำต่อจะสามารถเอาไปใช้ได้เลย ในทางกลับกัน ถ้าเราเริ่มทำที่ Components ก่อนโดยที่ Foundation ไม่แน่น เราจะต้องไปคอยซัพพอร์ตเขาอีก เพราะมันจะมี Components ที่ขาดอยู่

03 — ตั้งชื่อสีแบบ Semantic

ตั้งชื่อสีแบบ Semantic

แทนที่จะเอาValueสีมาใช้เลย ก็ให้เราตั้งชื่อสีและสเกลขึ้นมาว่ามันจะมีอะไรบ้าง หลังจากนั้นลองมาตั้งชื่อให้เป็น Semantic ก็คือการใส่ความหมายให้สี เช่น NocNoc — 100 อาจจะไม่ได้มีความหมายอะไร แต่ลองมาตั้งเป็น primary-fg- low ก็คือเป็นสีหลักหรือสีแบรนด์ของเรา fg ก็คือ foreground ก็คือให้ใช้กับสิ่งที่อยู่ข้างหน้า ตัวหนังสือ ไอคอน เป็นต้น

การตั้งชื่อสีแบบนี้ ดีตรงที่เวลาDesignerจะเลือกสีไปใช้ ก็สามารถพิมพ์หาชื่อสีในLibratyไปใช้ได้เลย

03 — ตั้งชื่อ Icon ด้วยรูปร่างพร้อมคำอธิบาย

ตั้งชื่อ Icon ด้วยรูปร่างพร้อมคำอธิบาย

โดยจะตั้งชื่อตามลักษณะและส่วนประกอบที่เห็นได้ชัด เวลาค้นหาIconก็สามารถพิมพ์คำที่เรานึกออกในช่องค้นหาได้เลย และใส่คำอธิบายว่าเหมาะสำหรับการนำไปใช้ในสถานการณ์แบบไหนบ้าง

03 — การทำ Foundation (ในมุมของ Dev)

การทำ Foundation (ในมุมของ Dev)

ในมุมองของ Dev จะมีการซับซ้อนมากกว่า Designer หากมี Code library ที่เป็น Foundation ก่อนก็จะสะดวกสามารถดึงไปใช้งานได้เลย และเมื่อไรที่มี Projext ขึ้นมาใหม่ก็สามารถดึงไปใช้ได้ทันที

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

“ไม่ตาม Best practices ศึกษา Best practices เพื่อเรียนรู้ สร้างแบบที่เหมาะกับเรา สร้างที่ใช้บ่อยๆจะได้คุ้มๆ”

4. ทำให้คนใช้

Design System จะไม่มีค่าเลยถ้าไม่มีคนใช้ บางครั้งเราอาจจะอยากทำให้ดีที่สุด จดจ่ออยู่กับมัน แต่การที่เราอยากให้มันออกมาดี ก็ต้องเอาไปให้คนใช้ด้วย เราจะได้รับฟีดแบคกลับมาว่าดีหรือไม่ดี เราควรปรับไปในทิศทางไหน

แบ่งปล่อยออกไปให้คนใช้

รีบให้ใช้เพื่อเอา Feedback

งานแต่ละสเต็ปถ้ามันไม่ซ้อนกันเราก็สามารถปล่อยให้คนไปลองใช้ก่อนได้เลย การทำแบบนี้จะทำให้เราได้รับฟีดแบคระหว่างทางและนำมาปรับปรุงได้

เดโมให้ดู / ให้ลองเล่น /เซ็ทอัพให้

ถ้าไม่มีคนใช้ เราก็ต้องพยายามให้มีคนใช้ ลองเพิ่มความแอคทีฟเข้าไป เช่น ทำเดโม่ออกมาให้ดู เซ็ทอัพในเครื่องเราแล้วเอาไปให้คนลองเล่น หรือ ไปเซ็ทอัพให้เลย

ชวนคุย+สังเกต

คอยชวนคุยถามไถ่ว่าใช้แล้วเป็นยังไงบ้าง และสังเกตว่าเขาใช้จริงไหม สิ่งที่เขาพูดกับสิ่งที่เขาทำจริงๆอาจจะไม่ตรงกันก็ได้ พยายามเก็บ feedback ไวๆและเก็บบ่อยๆหากได้อะไรดีๆก็เก็บไว้เป็นหลักฐานและนำกลับไปพัฒนา

“ ทำให้คนใช้ จะได้มี Feedback อำนวยความสะดวกให้ผู้ใช้ เก็บไวๆ เก็บบ่อยๆ บันทึกไว้เป็นหลักฐาน”

5. ทำให้โลกรู้

A Good Design (can’t) speak for it self

เราออกแบบอะไรที่ดี ไม่ต้องขายคนก็ซื้อ แต่การที่ทำอย่างเดียวไม่ขายกับทำไปด้วยขายไปด้วย ผลลัพธ์จะต่างกัน

ออกไปเล่า ออกไปขาย เพื่อเพิ่มแรง

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

เนื้อหา — ช่องทาง — คู่สนทนา

แล้วการที่เราจะไปเล่าให้เขาฟังเนี่ย เราจะเล่ายังไง?

  • เนื้อหา — เราต้องมีเนื้อหาที่เราอยากจะเล่า เช่นเล่าว่าความคืบหน้าเป็นอย่างไรบ้าง ได้รับ feedback อะไรกลับมา และวางแผนจะทำอะไรต่อไป
  • ช่องทาง — เราอาจจะนำไปคุยในตอนประชุหรือตอนนั่งคุยเล่นก็ได้
  • คู่สนทนา — แล้วนำไปคุยกับใคร ก็ยกตัวอย่างเช่นเพื่อนร่วมงาน หัวหน้างาน

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

“ ทำให้โลกรู้ จะได้มีแรงเพิ่ม เล่าบ่อยๆในหลายๆเหตุการณ์ เล่าในสิ่งที่ผิดพลาดด้วย จะมีคนอยากช่วยเอง “

และข้อสุดท้ายจาก Session: How to build a Design System on a budget

สรุปจบ Session: How to build a Design System on a budget

ทำวนไป

--

--