ข้ามไปยังเนื้อหา

ฟังหาคำนาม

มีให้อ่านอีก 28 ภาษา

English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

An empty distribution center at dawn: a truck backed to the dock, pallets of parcels, a route board, crew vests on hooks and a manifest on a clipboard.
ภาพสร้างด้วย AI

โมดูลที่ 1 จาก 6 ในบท การสร้างโมเดลข้อมูลเพื่อความหมาย บทที่ 2 ของหลักสูตร Data Architect แต่ละโมดูลอ่านแยกกันได้ ก่อนหน้า: ภาพรวมของบท · ถัดไป: วาดความสัมพันธ์

คำถามที่โมดูลนี้ตอบ: จะหาจุดเริ่มต้นของโมเดลข้อมูลในบทสนทนาทางธุรกิจได้อย่างไร?

หนึ่งในสิ่งที่ผมทำในการคุยครั้งแรกกับลูกค้าคือการฟังหาคำนาม

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

พวกเขาพูด ผมฟัง

และผมฟังหาคำอย่างเช่น:

พันธมิตรค้าปลีก (Retail Partner) ผู้รับ (Recipient) ศูนย์กระจายสินค้า (Distribution Center) ใบรายการสินค้า (Manifest) การจัดส่ง (Delivery) เส้นทาง (Route) ทีมจัดส่ง (Crew) รถบรรทุก (Truck)

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

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

สำหรับผม ทุกอย่างเริ่มจากคำนาม

ตรงนี้คือจุดที่ผมอยากให้คุณต้านสัญชาตญาณที่แรงเป็นพิเศษถ้าคุณเป็นผู้ดูแลระบบ Salesforce มาสักพัก

ลูกค้าพูดว่า ลูกค้า แล้วคุณคิดว่า:

บัญชี

พวกเขาพูดว่า บุคคล แล้วคุณคิดว่า:

ผู้ติดต่อ

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

อย่าเพิ่งทำแบบนั้น

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

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

ดังนั้นลืม Salesforce ไปสักสองสามนาที ฟังว่าคนที่บริหารธุรกิจจริงๆ อธิบายโลกของพวกเขาอย่างไร

ก่อนที่เราจะฟังธุรกิจ ลองฟังบางอย่างที่ทุกคนเข้าใจอยู่แล้ว เวลาผมสอนสด ผมเริ่มด้วยสุนัข

นี่คือสุนัขตัวหนึ่ง: Marcus เป็นเจ้าของ Bella คอก Maple Ridge Kennels เป็นผู้เพาะพันธุ์เธอ เธอเป็นลาบราดอร์ และเธอทำท่านั่ง คอย และยื่นมือได้

ฟังหาคำนาม: Marcus, Bella, Maple Ridge Kennels, ลาบราดอร์, นั่ง แต่สิ่งเหล่านั้นคือชื่อ: สิ่งที่เจาะจง สิ่งที่ผมต้องการคือประเภทของสิ่งที่แต่ละชื่อสังกัดอยู่ Bella เป็นสุนัข (Dog) Marcus เป็นเจ้าของ (Owner) Maple Ridge Kennels เป็นผู้เพาะพันธุ์ (Breeder) ลาบราดอร์เป็นสายพันธุ์ (Breed) นั่งเป็นท่า (Trick) คำนามห้าคำ กล่องที่เป็นไปได้ห้ากล่อง

คำนามของโมเดลสุนัขเป็นกล่องธรรมดา กล่องธรรมดาห้ากล่อง ไม่มีเส้นเชื่อมระหว่างกัน: เจ้าของและผู้เพาะพันธุ์อยู่เคียงกันด้านบน สุนัขอยู่ด้านล่างระหว่างทั้งสอง และสายพันธุ์กับท่าซ้อนกันอยู่ทางขวา เจ้าของ ผู้เพาะพันธุ์ สุนัข สายพันธุ์ ท่า © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

แล้วก็คำถามที่ผมถามกับทุกคำนาม: มันคือคนที่กำลังทำงานหนึ่งอยู่ หรือเป็นชิ้นข้อมูล? Marcus เป็นคน แต่การเป็นเจ้าของ Bella ไม่ใช่งาน มันคือข้อเท็จจริงเกี่ยวกับ Bella และไม่ช้าก็เร็วจะมีคนถามว่า “ใครเป็นเจ้าของสุนัขตัวนี้?” เจ้าของจึงควรอยู่ในโมเดล ครูฝึกที่สอนให้ Bella ยื่นมือคือคนที่กำลังทำงานหนึ่งอยู่ และอาจไม่ต้องมีกล่องเลย เว้นแต่ธุรกิจจะเริ่มถามว่าใครสอนท่าไหน

และสังเกตคำว่า เป็นไปได้ (candidate) สายพันธุ์เป็นกล่องของตัวเองจริงหรือ หรือเป็นแค่คำที่เขียนไว้บนสุนัข? เก็บคำถามนั้นไว้ เราจะตอบมันตอนทำ normalization ในโมดูลที่ 4

นั่นคือเทคนิคทั้งหมด กับสิ่งเล็กๆ ทีนี้มาฟังธุรกิจจริงกัน

ลองฟัง Steve Trucking บริษัทครอบครัวที่เราจะใช้ตลอดหลักสูตรนี้ บริษัทจัดส่งสินค้าชิ้นใหญ่ (ตู้เย็น เครื่องซักผ้า ทีวี) จากศูนย์กระจายสินค้าของร้านค้าปลีกรายใหญ่ไปถึงบ้านของผู้คน และติดตั้งให้บางรายการ

ในบทสนทนาแรกเราได้ยิน:

  • พันธมิตรค้าปลีก
  • ผู้รับ
  • ศูนย์กระจายสินค้า
  • ใบรายการสินค้า
  • การจัดส่ง
  • เส้นทาง
  • ทีมจัดส่ง
  • รถบรรทุก

แค่นั้นก็มีประโยชน์แล้ว ผมเริ่มวางกล่องบนไวต์บอร์ดได้

ดังนั้นใส่คำนามลงในสี่เหลี่ยม ณ จุดนี้มันเป็นแค่นั้น: กล่อง ไม่มีเส้น ไม่มีสี ไม่มีอะไรที่บอกว่าเป็น Salesforce ภายหลังในหลักสูตร รูปร่างและสีจะเริ่มมีความหมาย สำหรับตอนนี้ สี่เหลี่ยมคือสิ่งที่ธุรกิจพูดถึงเท่านั้น

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

ที่ Steve Trucking พันธมิตรค้าปลีกและผู้รับเป็นข้อมูลลูกค้า ใบรายการสินค้า การจัดส่ง และเส้นทางเป็นธุรกรรม ศูนย์กระจายสินค้า ทีมจัดส่ง และรถบรรทุกเป็นสิ่งที่งานต้องพึ่งพา

คำนามบนไวต์บอร์ด กล่องธรรมดาแปดกล่อง หนึ่งกล่องต่อคำนามหนึ่งคำที่ได้ยินในการคุยครั้งแรกกับ Steve Trucking จัดกลุ่มตามชนิดของข้อมูล ข้อมูลลูกค้า: พันธมิตรค้าปลีกและผู้รับ ข้อมูลธุรกรรม: ใบรายการสินค้า การจัดส่ง และเส้นทาง ข้อมูลอ้างอิง: ศูนย์กระจายสินค้า ทีมจัดส่ง และรถบรรทุก ยังไม่มีเส้นเชื่อมระหว่างกล่อง ข้อมูลลูกค้า ข้อมูลธุรกรรม ข้อมูลอ้างอิง พันธมิตรค้าปลีก ผู้รับ ใบรายการสินค้า การจัดส่ง เส้นทาง ศูนย์กระจายสินค้า ทีมจัดส่ง รถบรรทุก © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

แต่มีคำสำคัญคำหนึ่งตรงนี้: ที่เป็นไปได้ (candidate)

คำนามเป็นเบาะแส มันไม่ได้เป็นเอนทิตีโดยอัตโนมัติ และแน่นอนว่าไม่ได้เป็นออบเจกต์ Salesforce โดยอัตโนมัติ

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

ทีนี้ คำนามบางคำจะเป็นคน ที่ Steve Trucking นั่นคือผู้รับที่รอตู้เย็นอยู่ คนที่พันธมิตรค้าปลีกที่ส่งใบรายการสินค้า และทีมจัดส่ง: คนขับและผู้ช่วยบนรถบรรทุก สิ่งเหล่านี้คือบทบาท และบทบาทอาจดูไม่เหมือนข้อมูล แต่เมื่อคนลงมือกับข้อมูล หรือเกี่ยวข้องกับข้อมูล พวกเขาเองก็ต้องถูกแทนไว้ในข้อมูลด้วย ใครเป็นคนจัดส่ง? ใครเซ็นรับ? ใครส่งใบรายการสินค้า? ดังนั้นบทบาทจำนวนมาก บางครั้งทั้งหมด ก็ลงเอยอยู่ในโมเดลด้วย

ฟังวิธีที่ Steve Trucking พูด แล้วคุณจะสังเกตเห็นบางอย่าง พวกเขาไม่เคยพูดแค่ว่า “ลูกค้า” มีลูกค้าสองแบบ พันธมิตรค้าปลีกคือร้านค้าปลีกรายใหญ่ที่ Steve Trucking จัดส่งให้: เป็นผู้ส่งใบรายการสินค้าและจ่ายเงินต่อการจัดส่ง ผู้รับคือคนที่ตู้เย็นถูกส่งไปถึง ผู้รับซื้อมันจากร้าน และอาจไม่เคยได้ยินชื่อ Steve Trucking เลย

ถ้าผมเขียนกล่องเดียวชื่อลูกค้า ผมก็จะผสมสองสิ่งที่ต่างกันโดยสิ้นเชิงเข้าด้วยกัน

บางทีศูนย์กระจายสินค้าอาจสำคัญพอที่จะมีเรกคอร์ด ประวัติ ความสัมพันธ์ และแอตทริบิวต์ของตัวเอง

บางทีคำนามอีกคำอาจกลายเป็นแค่แอตทริบิวต์ของอย่างอื่น

นั่นคือสิ่งที่เรากำลังพยายามค้นหา เรายังไม่ได้สร้างออบเจกต์ เรากำลังสร้างความเข้าใจในธุรกิจ

คำนามให้จุดเริ่มต้นแก่ผม แล้วผมก็ฟังว่าธุรกิจเชื่อมโยงมันอย่างไร

พันธมิตรค้าปลีกดำเนินงานศูนย์กระจายสินค้า

พันธมิตรค้าปลีกส่งใบรายการสินค้าสำหรับแต่ละ DC และแต่ละวันจัดส่ง

ใบรายการสินค้าระบุการจัดส่ง

การจัดส่งไปถึงผู้รับ

เส้นทางคือรอบวิ่งหนึ่งวันที่มีจุดแวะราวสิบจุด

ทีมจัดส่งสองคนประจำรถบรรทุกหนึ่งคัน

ตอนนี้มีบางอย่างเกิดขึ้น ผมไม่ได้มองรายการคำนามอีกต่อไป ผมเริ่มเห็นโมเดล

เส้นแรกระหว่างคำนาม กล่องแปดกล่องของ Steve Trucking จากโมดูลที่ 1 ยังจัดกลุ่มเป็นข้อมูลลูกค้า ข้อมูลธุรกรรม และข้อมูลอ้างอิง ตอนนี้เชื่อมกันด้วยเส้นธรรมดาที่มีป้ายกำกับ โดยยังไม่มีเครื่องหมายที่ปลายเส้น: พันธมิตรค้าปลีกดำเนินงานศูนย์กระจายสินค้าและส่งใบรายการสินค้า ใบรายการสินค้าระบุการจัดส่ง การจัดส่งไปที่ผู้รับ และทีมจัดส่งขับรถบรรทุก เส้นทางยังไม่มีเส้นเชื่อม ข้อมูลลูกค้า ข้อมูลธุรกรรม ข้อมูลอ้างอิง ดำเนินงาน ส่ง ระบุ ไปที่ ขับ พันธมิตรค้าปลีก ผู้รับ ใบรายการสินค้า การจัดส่ง เส้นทาง ศูนย์กระจายสินค้า ทีมจัดส่ง รถบรรทุก © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

นี่ยังเป็นจุดที่คำถามเริ่มปรากฏ

พันธมิตรค้าปลีกมีศูนย์กระจายสินค้ามากกว่าหนึ่งแห่งได้ไหม?

การจัดส่งคือสิ่งเดียวกับจุดแวะหรือเปล่า?

จุดแวะหนึ่งจุดจัดส่งให้ผู้รับสองคนได้ไหม?

ทีมจัดส่งเป็นสองคนเดิมเสมอหรือเปล่า?

เราสนใจว่าเดือนที่แล้วทีมไหนใช้รถคันไหน หรือสนใจแค่ว่าวันนี้พวกเขาขับรถคันไหน?

สังเกตสิ่งที่เรากำลังทำ เรายังไม่ได้ถามคำถามเกี่ยวกับ Salesforce เรากำลังถามคำถามทางธุรกิจ และคำตอบเหล่านั้นจะขับเคลื่อนการออกแบบ Salesforce ในที่สุด

ผมไม่คาดหวังว่ากล่องแรกที่ผมวาดจะรอดมาได้โดยไม่เปลี่ยนแปลง ที่จริง ถ้ามันรอด ผมจะสงสัยด้วยซ้ำ

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

วางการจัดส่ง เส้นทาง ทีมจัดส่ง และรถบรรทุกบนกระดาน แล้วผู้คนจะมีปฏิกิริยากับมันได้

“จริงๆ แล้ว การจัดส่งไม่ได้มีสินค้าชิ้นเดียวเสมอไป อาจเป็นเครื่องซักผ้า เครื่องอบผ้า และการขนของเก่าทิ้ง”

ดีครับ เล่าต่ออีก

“เราไม่ได้มอบหมายทีมให้การจัดส่ง เรามอบหมายทีมให้เส้นทาง”

เยี่ยม แล้วในเส้นทางมีอะไรบ้าง?

“และถ้ามีการติดตั้ง ทีมจะปิดจุดแวะไม่ได้จนกว่าเช็กลิสต์และรูปถ่ายจะเสร็จ”

ตอนนี้เรากำลังเรียนรู้บางอย่างที่สำคัญ

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

โมเดลเป็นส่วนหนึ่งของบทสนทนา

สิ่งที่เราเริ่มสร้างมีชื่อทางการ: โมเดลข้อมูลเชิงแนวคิด

ในระดับนี้ ผมสนใจสิ่งสำคัญที่ธุรกิจใส่ใจและความสัมพันธ์ระหว่างกัน ผมยังไม่กังวลเรื่องออบเจกต์มาตรฐานกับที่กำหนดเอง API name ของฟิลด์ lookup กับ master-detail ฟิลด์บังคับ อินเด็กซ์ ระบบอัตโนมัติ Apex หรือ Flow สิ่งเหล่านั้นสำคัญ และเราจะไปถึง แต่ถ้าเราตัดสินมันก่อนเข้าใจว่ากำลังสร้างโมเดลอะไร เราก็กำลังแก้ปัญหาผิดข้อก่อน

โมเดลเชิงแนวคิดควรเข้าใจได้สำหรับคนในห้องที่ไม่รู้จัก Salesforce นั่นเป็นบททดสอบที่มีประโยชน์ ถ้าผมต้องอธิบายว่า Delivery__c หมายถึงอะไรก่อนที่ผู้จัดการฝ่ายปฏิบัติการจะอ่านไดอะแกรมของผมได้ ผมก็กระโดดเข้าสู่การ implement เร็วเกินไป

ผมอยากให้พวกเขามองโมเดลแล้วพูดว่า:

“ใช่ ธุรกิจของเราทำงานแบบนั้น”

หรือดียิ่งกว่านั้น:

“ไม่ ไม่ได้ทำงานแบบนั้น”

เพราะตอนนี้ผมมีสิ่งที่ต้องแก้ไขแล้ว

นี่ไม่ใช่สิ่งที่ผมใช้เฉพาะตอนค้นหาความต้องการกับลูกค้า มันยังใช้ได้เมื่อ “ลูกค้า” เป็นเอกสาร

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

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

โมเดลไม่ใช่แค่สิ่งที่คุณสร้างหลังจากแก้ปัญหาได้แล้ว มันเป็นหนึ่งในเครื่องมือที่คุณใช้แก้ปัญหา

เมื่อจบรอบแรกนี้ ผมพยายามตัดสินใจว่า:

  • คำนามใดแทนเอนทิตีที่เป็นไปได้ที่มีความหมาย
  • คำที่ต่างกันคำใดแทนแนวคิดทางธุรกิจเดียวกัน และคำเดียวคำใดที่ซ่อนแนวคิดสองอย่างไว้ (เช่น “ลูกค้า”)
  • แนวคิดใดต้องมีเรกคอร์ดและวงจรชีวิตของตัวเอง
  • แนวคิดหลักสัมพันธ์กันอย่างไร
  • ธุรกิจต้องตอบคำถามอะไรบ้างก่อนที่ผมจะสร้างโมเดลได้อย่างมั่นใจ

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

นอกเหนือจากการสอบ: AI เปลี่ยนอะไร ให้เอกสารความต้องการแก่เครื่องมือ AI แล้วมันจะหาคำนาม เสนอเอนทิตี และร่างความสัมพันธ์ได้ในไม่กี่วินาที ใช้มันเพื่อเร่งการค้นหาความต้องการ แต่อย่าจ้างคนอื่นมาเข้าใจแทน: มันไม่มีทางรู้ว่า “ลูกค้า” หมายถึงสองอย่างที่ต่างกันที่ Steve Trucking เว้นแต่ธุรกิจจะบอกคุณ นำโมเดลแรกของมันไปวางตรงหน้าคนที่บริหารธุรกิจแล้วถามว่า “ธุรกิจของคุณทำงานแบบนี้จริงๆ หรือเปล่า?”