ในการประชุม SCRUM ทีมผลิตภัณฑ์กำลังถกเถียงกันเกี่ยวกับคุณลักษณะบน API ที่แอพมือถือจะถูกใช้งาน เรามีการจำลองที่แสดงให้เห็นว่าหน้าจอควรมีลักษณะอย่างไรและองค์ประกอบสำคัญที่ควรมี ("รูปแบบ")
จากสิ่งนี้และการสนทนาที่ฉันมีกับเจ้าของผลิตภัณฑ์ฉันสร้างต้นแบบสำหรับการตอบกลับ API (HAL + JSON) มันง่ายมาก JSON ที่สอดคล้องกับ HAL ซึ่งไม่ได้ทำอะไรมากไปกว่าการเป็นตัวแทนของสิ่งที่อยู่ในการจำลอง ฉันไม่ได้รับอิทธิพลจากความคิดในอนาคตที่นักธุรกิจเล็งเห็นเนื่องจากพวกเขามีแนวโน้มที่จะเปลี่ยนความคิดของพวกเขาบ่อยครั้งและฉันตัดสินใจที่จะใช้วิธีการที่เรียบง่าย ข้อเสนอของฉันถูกปฏิเสธโดยทีมงานและฉันได้รับคะแนนมากกว่า 7 ต่อ 1
ทีมตัดสินใจที่จะใช้โครงสร้าง json เชิงนามธรรมที่ซับซ้อนและไม่ใช่ความหมายซึ่งช่วยให้มีความยืดหยุ่นมากขึ้นในการจัดเรียงเค้าโครง ข้อเสียของวิธีการนี้คือเราได้ชุดวัตถุที่เหมือนกันซึ่งอาจมีคุณสมบัติเป็นโมฆะและว่างเปล่าโดยการออกแบบ พวกเขายังคิดว่ามันจะเป็นการดีที่จะทำการทดสอบ A / B แต่มันก็ขึ้นอยู่กับการคาดการณ์ของพวกเขาเท่านั้นเนื่องจากเราไม่มีข้อกำหนดดังกล่าว
เวลาส่วนใหญ่ที่เราถกเถียงกันเกี่ยวกับสิ่งที่ไม่ได้เป็นส่วนหนึ่งของการวิ่งหรือไม่ได้กล่าวถึงในการจำลอง ปัญหาที่อธิบายไว้คือ "จะเกิดอะไรขึ้นถ้าการตลาดในอนาคตจะ ... ", "จะเกิดอะไรขึ้นถ้าธุรกิจอาจต้องการให้เรา ... "
ฉันและเจ้าของผลิตภัณฑ์เป็นโปรแกรมเมอร์ที่มีประสบการณ์และเราเคยเห็นปัญหาแบบนี้มาแล้วในอดีต เราพยายามที่จะปฏิบัติตามหลักการYAGNIและKISS ส่วนที่เหลือของทีมมีประสบการณ์น้อยลงและถึงแม้ว่าพวกเขารู้หลักการเหล่านี้พวกเขาดูเหมือนจะไม่เข้าใจพวกเขา
เราเห็นด้วยกับวิธีแก้ปัญหาของพวกเขาเนื่องจากทีมโดยรวมมีความสำคัญมากกว่าสำหรับเราและเราไม่ต้องการต่อสู้กับบางสิ่งที่ไม่สำคัญ แต่ฉันกลัวว่าสิ่งนั้นจะกลายเป็นแบบอย่างสำหรับการโต้วาทีและการอภิปรายที่ซับซ้อนมากขึ้น? วิธีจัดการกับพฤติกรรมเช่นนี้? มีอะไรบ้างที่ฉันในฐานะหัวหน้าทีมสามารถทำได้ดีกว่า
เป็นมูลค่าการกล่าวขวัญว่าผลิตภัณฑ์นี้เป็น MVP ขั้นต้น
I'm afraid if such thing can become a precedence for upcoming, more complicated debates?
- นั่นเป็นการละเมิด YAGNI: กังวลเกี่ยวกับอนาคตที่อาจไม่เกิดขึ้น หากคุณกำลังจะยืนหยัดอยู่บนพื้นดินคุณควรทำเช่นนั้นแล้ว