คุณสมบัติเทียบกับฟังก์ชั่น [ปิด]


16

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

คำถามของฉันคือเราจะแยกความแตกต่างของคุณสมบัติจากฟังก์ชั่นได้อย่างไร


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

8
หรือเพียงแค่ขอคำจำกัดความของแต่ละคน อาจใช้ทั้งสองเป็นคำเหมือนหลวม ๆ
PéterTörök

สัญลักษณ์แสดงหัวข้อย่อยเทียบกับค่า
Erik Reppen

คำตอบ:


35

คุณสมบัติเป็นสิ่งที่คนขายขาย
ฟังก์ชั่นคือสิ่งที่โปรแกรมเมอร์พัฒนา


4
คำตอบที่ดีน่าจดจำและแตกต่าง
Saeed Neamati

@RobertHarvey คุณมีข้อโต้แย้งที่เฉพาะเจาะจงกับคำตอบนี้หรือไม่?
Zibbobz

@Zibbobz: คุณหมายถึงอย่างอื่นนอกเหนือจากที่ไม่ได้แจ้งโดยทั่วไป? นอกจากนี้ให้สังเกตการโหวตอย่างใกล้ชิดที่ใช้กับคำถาม
Robert Harvey

8

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

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

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

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

ตราบใดที่การวิ่งสิ้นสุดลงฉันยังคงมีซอฟต์แวร์ที่ใช้งานได้โครงการของฉันคือ Agile


6

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

ฟังก์ชั่นบนมืออื่น ๆ ที่เป็นวิธีการที่คุณสมบัติดังกล่าวข้างต้นเป็นจริงการดำเนินการ


2

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

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

"ฟังก์ชั่น" ที่นี่ไม่ควรสับสนกับฟังก์ชั่นภาษาการเขียนโปรแกรม (เมธอด) ซึ่งพูดถึงการติดตั้งซอฟต์แวร์ฟีเจอร์ นั่นน่าจะไม่ใช่สิ่งที่ PM จะพูดถึงเมื่อพวกเขาอ้างถึง "คุณสมบัติและฟังก์ชั่น"

ไม่มีลำดับชั้นที่ดีสำหรับฟังก์ชั่นและฟีเจอร์เนื่องจากอาจใช้ฟีเจอร์เดียวเพื่อสนับสนุนฟังก์ชั่นผลิตภัณฑ์หลายอย่าง


0

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

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

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


1
ผมไม่ทราบว่าคุณมีเหล่านี้จาก แต่ IMHO นิยามปกติมากที่สุดของฟังก์ชั่นและคุณสมบัติที่ไม่ได้ทำใด ๆ ที่แตกต่างเกี่ยวกับความสำคัญ
Doc Brown

ฉันผ่านการตรวจสอบแล้วขอบคุณสำหรับความคิดเห็นของคุณ
NoChance

-1

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

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

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

ข้างต้นไม่ได้ทางวิทยาศาสตร์มันเป็นเพียงความคิดของฉัน


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

-1

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


-2

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


โพสต์นี้ค่อนข้างอ่านยาก (ผนังข้อความ) คุณจะช่วยแก้ไขมันให้เป็นรูปร่างที่ดีขึ้นได้ไหม
ริ้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.