การใช้ต้นแบบเป็นข้อกำหนดผลิตภัณฑ์ API

เผยแพร่แล้ว: 2016-02-02

ในฐานะผู้จัดการผลิตภัณฑ์ Developer Experience ที่ SendGrid ฉันได้รับมอบหมายให้ระบุโอกาส คุณลักษณะ และผลิตภัณฑ์ที่เกี่ยวข้องกับ API ของเรา สิ่งหนึ่งที่ฉันกำลังดำเนินการอยู่คือการระบุวิธีการเพื่อให้การสื่อสารแนวคิดผลิตภัณฑ์ของฉันกับ PMs วิศวกร และลูกค้าคนอื่นๆ มีประสิทธิภาพมากขึ้น

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

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

การกำหนดข้อกำหนด

อินเทอร์เฟซที่ทดสอบได้นี้ควรมีลักษณะอย่างไรตามข้อกำหนดของผลิตภัณฑ์ มันจะทำงานอย่างไร? มันมีอยู่หรือไม่?

ขณะที่ฉันกำลังอ่านบทที่ 18 "การสร้างสเปกผลิตภัณฑ์ใหม่" ของ Inspired: How to Build Products Customer Love ของ Marty Cagan ฉันก็ตระหนักว่าฉันต้องการแชร์เครื่องมือที่ฉันใช้อยู่ซึ่งเป็นไปตามข้อกำหนดของ Cagan สำหรับข้อมูลจำเพาะของผลิตภัณฑ์ ส่วนใหญ่ สิ่งที่อยากได้ของเขาสำหรับข้อมูลจำเพาะของผลิตภัณฑ์ และรายการส่วนตัวของฉันเองตามข้อกำหนดของต้นแบบตามข้อกำหนด

ข้อกำหนดของ Cagan*:

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

รายการความปรารถนาของ Cagan*:

  • คุณจะต้องเสริมต้นแบบ [กับ]:
    • ตรรกะทางธุรกิจ
    • ข้อกำหนดการเปิดตัว
    • ข้อกำหนดในการส่งมอบแพลตฟอร์ม
    • กรณีการใช้งาน
  • ฉันต้องการที่จะสามารถใส่คำอธิบายประกอบต้นแบบ

ข้อกำหนดของฉันสำหรับต้นแบบตามข้อกำหนด:

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

ขอแนะนำ StopLight

เครื่องมือที่ฉันใช้อยู่ซึ่งตอบสนองเกือบทุกอย่างข้างต้นเรียกว่า Stoplight.io เป็นแกนหลักของกลไกเอกสาร API และเว็บพรอกซี ช่วยให้คุณสามารถกำหนด API ของคุณโดยใช้ UI ที่ใช้งานง่าย ซึ่งมีทั้ง Swagger และ RAML ที่ดีที่สุดเบื้องหลังเป็นเอ็นจิ้นข้อมูลจำเพาะพร้อมกับความสามารถในการนำเข้าหรือส่งออกจากรูปแบบใดรูปแบบหนึ่ง

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

พร็อกซีของ StopLight ยังมีคุณสมบัติที่น่าทึ่งอีกมากมาย:

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

หากคุณเปรียบเทียบการรวมกันของรายการสินค้าที่ต้องการของฉัน ข้อกำหนดคุณสมบัติของ Cagan และรายการสินค้าที่ต้องการของเขากับฟังก์ชันการทำงานที่ StopLight มีให้ คุณจะเห็นว่า StopLight ตอบสนองทุกความต้องการและความปรารถนา:

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

เวิร์กโฟลว์ใน StopLight นั้นเรียบง่ายและ ทุกคน สามารถทำได้ โดยไม่คำนึงถึงความสามารถทางเทคนิคของพวกเขา:

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

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

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


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