ไม่สามารถเข้าใจถึงจุดหนึ่งในหลักการของ Agile Manifesto


24

ผมอ่านเปรียวหลักการ ทุกอย่างดูเหมือนชัดเจนและสมเหตุสมผลยกเว้นเพียงจุดเดียว:

ความเรียบง่าย - ศิลปะของการเพิ่มปริมาณงานที่ไม่ได้ทำเป็นสิ่งจำเป็น

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


2
+1 เพื่อตอบโต้การลงคะแนนเสียง - คุณมีคำถามที่น่าสนใจอย่างน่าประหลาดใจที่นี่

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

คำตอบ:


30

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

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

ฉันมักจะตีความในแง่ของการที่ Pascal ใช้เวลาสั้น ๆ : " ฉันจะเขียนจดหมายสั้น ๆ แต่ฉันไม่มีเวลา " คุณต้องหลีกเลี่ยงสิ่งที่ไม่ได้บรรจุ (จากจดหมายจากรหัส) และนี่คืองานที่ใช้งานและไม่ง่ายหนึ่ง ไม่ใช่สิ่งที่เกิดขึ้นโดยตัวของมันเอง


35

แนวคิดคือการหลีกเลี่ยงการทำงานที่ไม่จำเป็นเช่น "เพิ่มปริมาณงานที่ไม่ได้เพิ่ม "

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

YAGNIเป็นแนวคิดที่เกี่ยวข้อง


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

2
@ Max ฉันคิดว่าจำเป็นต้องเห็นการเปลี่ยนแปลงที่เป็นไปได้ในอนาคต ที่นี่การมองการณ์ไกลเป็นความช่วยเหลือที่ดี และนักพัฒนาซอฟต์แวร์ที่คุณอธิบายนั้นเป็นเหมือนนกกระจอกเทศที่ซ่อนตัวอยู่ในทราย
superM

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

15
@ Max: YAGNI เกี่ยวกับการชะลอการตัดสินใจในช่วงเวลาที่รับผิดชอบล่าสุด สิ่งที่คุณกำลังพูดถึงคือการชะลอการตัดสินใจในช่วงเวลาที่เป็นไปได้ซึ่งเป็นความคิดที่แย่ สิ่งนี้คือคุณจะไม่มีข้อมูลน้อยลงในการตัดสินใจมากกว่าที่คุณมีในขณะนี้ ในกรณีที่เลวร้ายที่สุดคุณจะมีข้อมูลเดียวกันในวันพรุ่งนี้ แต่โดยปกติแล้วคุณจะได้เรียนรู้บางสิ่งในตอนนั้น ในกรณีที่คุณกล่าวถึงคุณรู้ว่าคุณมีจะจำเป็นต้องใช้มันเพื่อ YAGNI ก็ไม่ได้ใช้ พยายามที่จะใช้มันแน่นอนโง่ในกรณีนั้น
Jörg W Mittag

2
@ Max: สิ่งที่คุณอธิบายที่นี่เป็นสิ่งที่ตรงกันข้ามกับการเพิ่มปริมาณงานที่ไม่ได้ทำ มันทำงานได้มากเป็นสองเท่า
pdr

5

เราเคยเรียกสิ่งนี้ว่า "การชุบทอง" ข้อกำหนดสำหรับค้อนคือมันสามารถทุบเล็บให้เป็นเศษไม้ได้ มันไม่ได้ทำงานอะไรได้ดีไปกว่าการเป็นค้อนทองคำ

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


4

ความคิดนี้คล้ายกับแนวคิดจากระบบการผลิตของโตโยต้า (TPS)ซึ่งนำไปสู่การผลิตแบบลีนทั่วไปมากขึ้นแล้วนำเทคนิคเหล่านั้นไปใช้กับการพัฒนาซอฟต์แวร์แบบลีน TPS มีความสำคัญมาก่อนการเคลื่อนไหวที่คล่องตัวด้วยรากฐานของมันในการผลิตในช่วงปลายปี 1950

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

แนวคิดโดยรวมของแนวคิดทั้งสองนั้นเหมือนกัน - สิ่งที่ไม่เพิ่มมูลค่ามีความสิ้นเปลืองและควรลดให้น้อยที่สุด เป้าหมายสูงสุดคือการเพิ่มคุณภาพในขณะที่ลดเวลาและต้นทุนในการผลิต

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