วิธีเข้าหา ol '"นี่จะเป็นแอปพลิเคชั่นขนาดเล็ก"? ช่ายยย?


11

ตกลงฉันได้พบกับหลายครั้งนี้ แต่นี่เป็นสถานการณ์กรณีที่เลวร้ายยิ่งที่พูดเกินจริงเล็กน้อย

ลูกค้าบอกว่า "เฮ้คุณช่วยทำให้เราเป็นโมดูลขนาดเล็กเพื่อทำภารกิจเล็ก ๆ นี้ได้ไหม"?
ฉัน: "แน่นอนว่าไม่มีปัญหา"

ดังนั้นตามงบประมาณและข้อ จำกัด อื่น ๆ ฉันข้ามสถาปัตยกรรมและการดำน้ำไปและทำให้ไม่มีเหงื่อ

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

คุณจะทำอย่างไรเมื่อคุณถูกขอให้ทำอะไรเล็ก ๆ คุณไม่รู้ว่ามันจะเพิ่มขึ้นเรื่อย ๆ หรือไม่ ... หากลูกค้าจะขอเพิ่มเติมหรือไม่

คุณไม่สามารถทำสิ่งที่เกินความเป็นสถาปนิกได้เพราะมันเป็นเพียงแอปพลิเคชั่นเล็ก ๆ หลังจากนั้นและพวกเขาจะไปที่อื่นถ้าคุณบอกว่า (ในที่ที่ฉันรู้ว่าเสียงทั้งหมด) "ในกรณีนี้ -o-the-line ความปลอดภัยและการแยกข้อกังวลในความเป็นจริงลองใช้เครื่องมือฉีดพึ่งพาซึ่งจะทำให้สิ่งนี้ยอดเยี่ยม blah blah blah "

พวกเขาจะพูดว่า "ใช่แล้ว" และไปหาคนอื่น

งบประมาณเวลาและการรับรู้มีความสำคัญเท่ากับการสร้างแอปพลิเคชันเอง

สิ่งนี้ควรได้รับการติดต่ออย่างไร?

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

คำตอบ:


17

ฉันพบเจอสิ่งเหล่านี้ไม่มากนักและสิ่งที่ฉันทำตามปกติคือสิ่งที่คุณทำพุ่งเข้าหาและทำให้เสร็จ

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

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

ตรวจสอบให้แน่ใจว่าพวกเขาเข้าใจสามสิ่งแม้ว่า:

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

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

  3. ว่าคุณไม่ได้พยายามทำให้เจ้าชู้รวดเร็ว สิ่งที่ต้องการการออกแบบใหม่

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


ดูเหมือนว่าเป็นวิธีที่สมบูรณ์แบบที่จะไปเกี่ยวกับเรื่องนี้
sevenseacat

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

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

10

เพียงทำให้เขาเป็นแอปเล็ก ๆ และรับเงิน

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

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

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


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

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

@ Thorbjørn Ravn Andersen: คำแนะนำสำหรับเครื่องมือใด ๆ
ริชาร์ด

@ Richard ขึ้นอยู่กับสิ่งที่คุณทำงานด้วย สำหรับ Visual Studio "resharpener" ควรเป็นเครื่องมือที่มีประโยชน์มาก

ฉันคิดว่าคุณกำลังคิด Resharper ... มีเครื่องมืออื่น ๆ เช่นนั้นแน่นอน Visual Studio ยังรองรับเครื่องมือการปรับโครงสร้างพื้นฐานอีกมาก
Ramhound

8

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

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

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

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


ใช่ฉันคิดว่าอาจจะมีการพูดคุยต่อหน้าตัวเลือกหรืออย่างน้อยก็แนวทาง (อย่างรวดเร็วและสกปรกตอนนี้เขียนใหม่ในภายหลัง) อาจเป็นประโยชน์
richard

1

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

เป็นวิธีหนึ่งในการดูแทนที่จะเป็นหนึ่ง ... โครงการ LONGGGGGG


1

คุณจะหลีกเลี่ยง (หรือลดน้อยลง) ในการตัดสินใจเกี่ยวกับงานสถาปัตยกรรมและการออกแบบในช่วงต้นได้อย่างไรซึ่งจะไม่เหมาะสมอย่างสมบูรณ์ในภายหลัง

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

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

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

ผลิตภัณฑ์รกของคุณ

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

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

ค่อยๆปรับปรุงการวนซ้ำของรหัสโดยการทำซ้ำโดยเน้นไปที่ส่วนที่สำคัญจริงๆ

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