ในหลาย ๆ โดเมนลูกค้าทั่วไปคือ:
- สนใจเรื่องการปฏิบัติงานประจำวัน - กลยุทธ์ระยะสั้น ... ไม่ใช่กลยุทธ์;
- เกี่ยวข้องกับวิธีแก้ปัญหาเฉพาะหน้าเท่านั้น
- โดยทั่วไปแล้วเป็นนักคิดที่ไม่มีมิติ
- ความสนใจหลักในการ "ทำให้งานเสร็จ" ไม่ใช่การแก้ปัญหาที่มีคุณภาพและยั่งยืน
พวกเขามักจะมีเหตุผลที่ดีที่จะคิดแบบนี้ ก่อนอื่นพวกเขากำลังทำธุรกิจซึ่งควรสร้างรายได้ทั้งวันนี้และวันพรุ่งนี้ไม่ใช่ในอนาคตอันไกล ประการที่สองพวกเขาไม่ใช่ผู้เชี่ยวชาญด้านเทคนิค - พวกเขาไม่รู้ว่าอะไรเป็นไปได้และอะไรที่ไม่ได้และสิ่งที่ตามมาคือตัวเลือกสถาปัตยกรรม / การออกแบบ / การนำไปปฏิบัติ นี่คือสิ่งที่เรารู้
ดังนั้นคำตอบคือ - แทบจะไม่น่าแปลกใจ - การสื่อสาร
คุณจำเป็นต้องสื่อสารกันมากเพื่อให้ความรู้ซึ่งกันและกันเพื่อให้เข้าใจมุมมองของอีกฝ่ายอย่างน้อยในระดับพื้นฐาน คุณต้องอธิบายพวกเขาถึงผลกระทบระยะสั้นและระยะยาวของทางเลือกที่เป็นไปได้ และคุณจำเป็นต้องใช้ภาษาที่พวกเขาเข้าใจ
- ถ้าคุณบอกว่า"นี้จะเป็นสับซึ่งทำให้โค้ดอ่านน้อยและขยาย"พวกเขากล่าวว่า"ใช่สิ่งที่"
- ถ้าคุณบอกว่า"นี้จะมีการแก้ไขในระยะสั้นซึ่งจะทำให้การพัฒนาในระยะยาวและการบำรุงรักษาค่าใช้จ่ายมากขึ้นและเพิ่มความเสี่ยงของการแนะนำข้อบกพร่อง"พวกเขากล่าวว่า"ฮ่าขอพิจารณา"
- และถ้าคุณพูดว่า"วิธีนี้จะทำให้คุณเสียค่าใช้จ่าย $ 100 ในขณะนี้ แต่แนะนำหนี้ทางเทคนิค $ 500 ซึ่งคุณต้องจ่ายคืนพร้อมดอกเบี้ยไม่ช้าก็เร็ว OTOH โซลูชันอื่นนี้มีค่าใช้จ่ายคุณ $ 400 ในขณะนี้ ต้องการ "พวกเขาพูดว่า" ตอนนี้เรากำลังพูดถึง! " .
OTOH พวกเขาสามารถสอนเราหนึ่งหรือสองสิ่งเกี่ยวกับมุมมองทางธุรกิจ ธุรกิจต้องการโซลูชันที่ใช้งานได้ดีและสมบูรณ์แบบแทบจะไม่สมบูรณ์แบบ. และพวกเขารู้ดีกว่าใคร ๆ ที่ "สมบูรณ์แบบเป็นศัตรูของความดี" ดังนั้นคุณต้องจำไว้ว่างานของเราคือการให้บริการแก้ปัญหาของลูกค้าของเราแทนที่จะผลิตซอฟต์แวร์ที่สมบูรณ์แบบทางเทคนิค บางครั้งทั้งสองมาบรรจบกันเหมือนกัน แต่ไม่บ่อยนัก หลายคนอาจเห็นว่าเป็นเรื่องน่าเศร้า แต่เป็นความจริงทางธุรกิจ สำหรับฉันถ้าฉันจัดการเพื่อแก้ปัญหาลูกค้าของฉันและฉันเห็นว่ามันทำให้ชีวิตของพวกเขาง่ายขึ้นอย่างเห็นได้ชัดฉันมีความสุขเหมือนที่พวกเขาเป็น OTOH ถ้าฉันสามารถใช้การออกแบบที่สมบูรณ์แบบที่ฉันมีในใจ แต่ บริษัท ล้มละลายในสัปดาห์ต่อมามันแทบจะไม่ชนะใครเลยใช่ไหม
เจ้าของธุรกิจที่มีเหตุผลจะเข้าใจ - ถ้าคุณอธิบายให้พวกเขาใช้ภาษาของตัวเอง - ทำไมการรักษาความสะอาดของซอฟต์แวร์การเขียนการทดสอบหน่วยการ refactor เป็นต้นทำไมถึงมีความสำคัญถึงแม้ว่าสิ่งเหล่านี้ดูเหมือนจะไม่ได้มีส่วนช่วยอะไรเลยโดยตรง มีความจำเป็นสำหรับการบำรุงรักษาในระยะยาว และลูกค้าที่มีเหตุผลจะดูแลเกี่ยวกับการบำรุงรักษาในระยะยาวของธุรกิจดังนั้นพวกเขาจึงยินดีที่จะลงทุนเมื่อเห็นมูลค่าการลงทุนที่พวกเขาสร้างขึ้น อย่างไรก็ตามทั้งทรัพยากรและเวลาของคุณมี จำกัด ดังนั้นคุณต้องจัดลำดับความสำคัญและมุ่งเน้นไปที่สิ่งที่สำคัญที่สุด แต่มันสำคัญถ้ามันสำคัญกับคุณทั้งคู่
คุณอาจต้องการ refactor โมดูล A เพราะรหัสในนั้นแย่มากและคุณมีความคิดที่น่าทึ่งว่าจะสร้างรหัสใหม่ให้กระชับหรูหราและสะอาดได้อย่างไรโดยใช้รูปแบบการออกแบบที่คุณเพิ่งอ่าน อย่างไรก็ตามหากโมดูลนั้นไม่ได้สัมผัสมานานหลายปีและใช้งานได้อย่างน่าเชื่อถือคุณน่าจะดีกว่าที่จะมุ่งเน้นไปที่โมดูล B ซึ่งจะขยายในสัปดาห์หน้าด้วยคุณสมบัติใหม่ที่สำคัญมากและมีข้อบกพร่องมากมาย แล้ว.