นักพัฒนาซอฟต์แวร์ควรปฏิเสธข้อกำหนดที่เป็นไปไม่ได้อย่างไร [ปิด]


74

นี่คือปัญหาที่ฉันเผชิญ:


อ้างจากผู้จัดการโครงการ:

สวัสดี Spark ฉันกำลังมอบหมายงานให้คุณพัฒนากรอบงานที่สามารถใช้กับแอปพลิเคชั่น iOS ที่แตกต่าง นี่คือข้อกำหนด:

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

สรุป:

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


ฉันเป็นผู้พัฒนาที่ได้รับภารกิจนี้ดังนั้นคำถามของฉันมีดังนี้:

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

7
คุณจะได้รับคะแนนบราวนี่ไม่มากตามข้อกำหนดเหล่านี้ "โง่" และหลีกเลี่ยง "ไม่" ที่เลวร้ายที่สุด อธิบายว่าอุปกรณ์ iOS ไม่รองรับฟังก์ชั่นประเภทนี้
Ramhound

26
How do I say politely, gently & respectfully NO to this? คำแนะนำอีกชิ้นที่ฉันควรให้คุณเพื่อควบคุมเจ้านายคุณควรให้พวกเขาได้ข้อสรุปของตนเอง หากพวกเขาสั่งคุณอย่าบอกเลยเพียงแค่อธิบายข้อเท็จจริงและหารือเกี่ยวกับปัญหา พยายามให้พวกเขารู้ว่าคำขอของพวกเขาโง่แค่ไหนเพราะพวกเขาอาจไม่รู้รายละเอียด พวกเขาอาจจะเห็นว่ามันเป็นความคิดที่โง่และให้งานที่แตกต่างและคุณไม่ต้องพูดว่าไม่ ฉันไม่เคยบอกว่าไม่และฉันจะได้รับข้อกำหนดโง่ตลอดเวลาที่ไม่เคยเกิดขึ้น
maple_shaft

151
ผมคิดว่าเป็นส่วนหนึ่งของความต้องการของคุณได้บ่นเกี่ยวกับการที่พวกเขาเรียกว่าให้คุณเป็นน้ำตาล จากนั้นผมเห็นชื่อผู้ใช้ของคุณ :)
Goran Jovic

6
ไม่ต้องกังวลกับความจริงที่ว่าขนาดนิ้วที่ 'สังเกต' จะเปลี่ยนไปตามวิธีการถืออุปกรณ์ และให้ยืมเพื่อคน? ปุ่มย้ายเป็นสิ่งที่แย่มากและไม่ใช่แค่จากมุมมองของลูกค้า - คุณควรให้การสนับสนุนที่เหมาะสมกับสิ่งนี้อย่างไร (ปุ่มไม่ได้อยู่ในตำแหน่งที่ได้มาตรฐาน) และคุณจะกำหนดนิ้วหัวแม่มือ 'ที่ใหญ่กว่า' / 'เล็กกว่า' และความสัมพันธ์กับอายุอย่างไร ผู้หญิงมักจะมีขนาดเล็กลง (และมีมือเล็ก) กว่าผู้ชาย - แอพของคุณจำเป็นต้องรู้เพศหรือไม่? และปัญหาเรื่องสายตามักจะแย่ลงตามอายุไม่ดีขึ้น
Clockwork-Muse

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

คำตอบ:


102

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

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

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

ดูว่าคุณสามารถเข้าใจเป้าหมายที่แท้จริงของสถานที่นั้น ๆ หรือไม่ - ทำไมจึงถูกมองว่าเป็นข้อกำหนด สิ่งนี้อาจนำคุณไปสู่คุณลักษณะที่แตกต่างและดีกว่าที่จะแก้ปัญหาความต้องการ (ขอบคุณ @spoike)

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


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

8
@Spike "have the project lead explain the actual business goals"เป็นความคิดที่ดีให้สิ่งที่พวกเขาต้องการถึงแม้ว่าพวกเขาไม่รู้ว่าจะขอมันอย่างไร
StuperUser

2
ในกรณีนี้สมมติว่าเป้าหมายคือการทำให้แอปพลิเคชันสามารถเข้าถึงได้สำหรับผู้ที่มีปัญหาทางสายตา แต่ก็สามารถแก้ไขได้ง่ายกว่าในรูปแบบอื่น เช่นการให้ผู้ใช้เลือกหากเขาต้องการข้อความที่ใหญ่ขึ้น / เล็กลงในครั้งแรกที่เขา / เธอเริ่มต้นแอพ (และต่อมาผ่านการตั้งค่าของแอพ) การกำหนดอายุและความบกพร่องทางสายตาด้วยขนาดนิ้วของคุณนั้นค่อนข้างยืดและอาจเป็นปัญหาได้แม้กระทั่ง UX-wise (พูดถึงคนแก่และคนเล็กกับคนหนุ่มสาวและคนที่มีขนาดใหญ่)
Spoike

2
@ Tom ฉันไม่คิดว่าเป็นไปได้ ... คุณยายของฉันเติบโตขึ้นมาในยุคที่การกดปุ่มทีวีเป็นวิธีที่ถูกต้องในการแก้ไขปัญหามัน ..
Izkata

5
ในฐานะผู้จัดการผลิตภัณฑ์ฉันสามารถยืนยันได้ว่า 1) การทำให้เป็นจริงเป็นเรื่องสำคัญ แต่ 2) การถามคำถามเกี่ยวกับสิ่งที่พวกเขาพยายามทำจริงๆจะไปไกล หากพวกเขาเชื่อว่าคุณเข้าใจความต้องการของพวกเขาพวกเขาจะเปิดกว้างต่อสิ่งที่คุณต้องบอกพวกเขา
Taj Moore

30

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

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


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

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

@maple_shaft - ดูเหมือนว่ารายการคุณลักษณะนี้จะเพียงพอสำหรับสร้างต้นแบบเท่านั้น
JeffO

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

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

16

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

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

ที่กล่าวว่ามีปัญหาการใช้งานและการใช้งานอย่างจริงจัง

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

12

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


2
ใช่นี่เป็นวิธีการที่เหมาะสม ไม่เคยปฏิเสธ". เพียงแค่วิเคราะห์ปัญหาและเสนอวิธีแก้ปัญหาที่สามารถใช้งานได้พร้อมกับการประมาณเวลา ดังนั้นเวลาประมาณสำหรับการแก้ไข iOs เพื่อคำนวณความกว้างนิ้วมือแบบไดนามิกคืออะไร? อาจจะ 2 ปีสำหรับนักพัฒนาระบบปฏิบัติการประมาณ 10 คน มีการประเมินของคุณ! :)
Stephen Gross

ในกรณีนี้คุณจะต้องเห็นด้วยกับ Apple ซึ่งหมายถึงการอ้างถึงถูกกฎหมายและทุกสิ่งที่อยู่นอกขอบเขตของการพัฒนาซอฟต์แวร์ ในกรณีนี้ฉันจะบอกว่าคุณสามารถพูดได้ว่า "มันเป็นไปไม่ได้เลยเนื่องจากข้อ จำกัด ของฮาร์ดแวร์ที่เราไม่ได้ควบคุมเราจะต้องเข้าเจรจากับ Apple"
deworde

1
@deworde - ฉันเกลียดคำว่า "เป็นไปไม่ได้" คน 20 ปีที่แล้วคิดว่าเป็นเรื่องที่ดี "เป็นไปไม่ได้" วิธีการพูดว่า "ไม่สามารถทำได้ในขณะนี้กับฮาร์ดแวร์ที่ให้ไว้"
Ramhound

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

1
เพิ่มอีก 2 ปีวิศวกรฮาร์ดแวร์ 100 คนและห้องปฏิบัติการวิจัยและพัฒนามูลค่า 50 ล้านดอลลาร์เพื่อคิดค้นฮาร์ดแวร์ที่จะขายให้ Apple ตามที่คุณคาดการณ์เอาไว้อาจเป็นไปได้
hotpaw2

11

ผู้คนที่ Apple คิดถึงสิ่งเหล่านี้อย่างลึกซึ้งแล้วและพวกเขาไม่ได้มีส่วนต่อประสานที่ปรับขนาดได้ขึ้นอยู่กับขนาดนิ้วหัวแม่มือ / นิ้ว

ในฐานะผู้ใช้ฉันจะเกลียดการย้ายเป้าหมายภายใต้นิ้วมือของฉัน


2
ฉันใช้อาร์กิวเมนต์นี้เมื่อขอให้เขียน meta-query สากลสำหรับฐานข้อมูล Access ที่ออกแบบมาไม่ดี (IE เป็นระบบที่ผู้ใช้สามารถสอบถามอะไรก็ได้โดยไม่ต้องใช้ตัวสร้างแบบสอบถาม) ฉันพูดว่า "ถ้าเป็นไปได้ Microsoft จะทำเช่นนั้นและพวกเขาจะโฆษณาทุกที่
Chris Cudmore

@chris: นั่นคือสิ่งที่ฉันพูดทุกครั้งที่มีคนต้องการตัวช่วยสร้างรายงานที่ต้องทำทุก ๆ ครั้ง ถ้าเป็นไปได้ Access จะกลับมาอีกครั้งในช่วงต้นยุค 90
Neil N

4
-1, 'เพราะ Apple ทำไม่ได้' ไม่ใช่เหตุผลที่ดีที่จะไม่ลองอะไรใหม่ มันอาจจะเป็นที่ความคิดที่โง่อย่างไม่น่าเชื่อและ / หรือเป็นไปไม่ได้ทางร่างกาย หรือไม่. แต่ฉันไม่เห็นว่าอันตรายอยู่ในการทดลองถ้าหัวหน้าของเขาเต็มใจที่จะใช้จ่ายทรัพยากร
GrandmasterB

2
@GrandmasterB - ฉันเดาว่า Apple ทำแล้วปฏิเสธ อย่างไรก็ตามสามัญสำนึกเล็กน้อยบอกว่าจากมุมมองการใช้งานนี้อยู่ไกลจากความสะดวกสบาย ฉันไม่ต้องการหัวหน้าที่มีแนวคิดเช่นนี้
mouviciel

10

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

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


ใช่ฉันเชื่อในKARMAหรือไม่ :)
Sagar R. Kothari

1
@sugar ฉันก็เช่นกัน! หากพวกเขาไม่ฟังคุณพวกเขาจะล้มเหลว
maple_shaft

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

8

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

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

เป้าหมายคือการบรรลุคุณค่าทางธุรกิจหลักของคุณลักษณะ:

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

(รายการจากวิกิพีเดียแตงกวา )

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

วิธีใช้ตัวอย่างการสแกนขนาดนิ้วหัวแม่มือ:

ลูกค้า:เราต้องการตรวจสอบความหนาของนิ้วหัวแม่มือหรือนิ้วมือที่ใช้ในการจัดการ UI

Dev:ทำไมคุณถึงต้องการทำเช่นนั้น?

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

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

ลูกค้า:ฉันไม่เคยคิดอย่างนั้นฉันคิดว่าการออกแบบที่สะอาดกว่าจะทำงานได้ดีสำหรับผู้ที่มีมือเล็ก ๆ ด้วย!


4
+1 สำหรับการเปิดสแต็คทำไมและอ้างถึง:Often the real problem lies at a higher level of abstraction than the problem they've requested you to fix.
Spoike

7

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

เพียงแค่บอกว่าไม่

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

แน่นอนฉันสามารถ & ไม่ควรพูดเบา ๆ ฉันสามารถ "แนะนำอย่างยิ่งต่อสิ่งนี้" ในขณะที่เสนอให้ "ตรวจสอบว่าเป็นไปได้หรือไม่" ก่อนที่จะปฏิเสธ แต่ในที่สุดฉันก็ปฏิเสธไม่ได้เพราะนั่นคืองานของฉัน

มีการเปรียบเทียบมากมายกับสิ่งนี้

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

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

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


2
หมายเหตุ: ฉันตอบคำถาม"นักพัฒนาควรปฏิเสธข้อกำหนดที่เป็นไปไม่ได้"ได้อย่างไร
Kirk Broadhurst

เพิ่มพลังให้คุณ
ThomasX

2

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


1

การตอบสนองของฉันคือฉันจะเริ่มค้นหาเทคโนโลยีที่ไม่ได้ทดลองเหล่านี้และแจ้งให้พวกเขาทราบว่าเป็นไปได้หรือไม่ จากการค้นพบเหล่านั้นสามารถเริ่มแผนการพัฒนาที่มีศักยภาพได้

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

ออกจาก บริษัท คิดออกว่าจะทำอย่างไร ขายให้ได้เงินมากกว่าที่คุณทำอยู่ตอนนี้


1

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

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

ในความเป็นจริงคำถามนี้มีความซับซ้อนมากขึ้น: "เป็นไปได้ไหมที่จะระบุว่านิ้วของผู้ใช้หนาแค่ไหนหลังจากการสัมผัสครั้งแรกในเวลาน้อยกว่า 200 มิลลิวินาทีเพื่อให้สามารถโต้ตอบกันได้ทันทีหรือไม่" (แทนที่ตัวแรกด้วย 2nd หรือ ... ; และ 200 ms โดย 300 ms หรืออะไรก็ตาม ... )

บางทีแม้แต่การตอบคำถามนี้ใช้เวลาหนึ่งเดือน บางทีแม้ว่านี่จะเป็นไปได้ไม่มากก็น้อย แต่ก็ต้องใช้อัลกอริธึมที่ซับซ้อนเป็นพิเศษซึ่งใช้งานได้ดีใน 80% ของคดีทั้งหมด

คุณเห็นว่าฉันกำลังจะไปไหน

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

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


1

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


0

ฉันจะลองพยายามแก้ไขปัญหารากด้วยวิธีอื่นก่อนที่จะบอกว่าไม่สามารถทำได้

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

การนำเสนอโซลูชันที่สร้างสรรค์เช่นนี้น่าจะเป็นสิ่งที่เกินกว่าจะขอให้คุณคิดออกอย่างกว้าง ๆ หนึ่งนิ้ว (ซึ่งคุณสามารถบอกได้ว่ามันไม่ได้อยู่ใน API)

อาจยังคงเป็นเรื่องยาก - วางบริเวณรอบ ๆ ปุ่มเพื่อตรวจจับการผิดพลาด - ดังนั้นประมาณอีกชั่วโมง


0

อย่าพูดออกมาอย่างเด็ดขาดเพราะจะทำให้เขารู้สึกเจ็บ เพียงแค่ทำให้ชัดเจนว่าเนื่องจากข้อ จำกัด ทางเทคโนโลยีที่ 60% ของเวลาที่มันจะทำงานทุกครั้ง

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

พยายามให้เขาระบุปัญหาและความต้องการไม่ใช่วิธีแก้ปัญหาและการออกแบบสำหรับโครงการในอนาคต


-1

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

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

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