มีความว่องไวเกี่ยวกับการพัฒนาหรือการจัดการ?


9

จากการถกเถียงกันว่า Scrum เกี่ยวข้องกับอะไรฉันพบว่าบางทีฉันอาจเข้าใจผิดถึงความว่องไว สำหรับฉันแล้วดูเหมือนว่า Scrum (ซึ่งถือว่าเป็นกระบวนการแบบ Agile) เป็นเรื่องเกี่ยวกับการจัดการคุณสมบัติและ sprints และบทบาทและสิ่งต่าง ๆ โดยไม่เกี่ยวข้องกับ TDD, การเขียนโปรแกรมคู่, CI, refactoring และเทคนิคการพัฒนาศูนย์กลางอื่น ๆ จนถึงปัจจุบัน) คือหัวใจแห่งความคล่องตัว ตอนนี้ฉันกำลังเผชิญกับความยากลำบาก!

1) Scrum ไม่เชื่อเรื่องพระเจ้าหรือไม่ว่าผู้พัฒนาทำแบบฝึกหัดที่คล่องตัวหรือไม่?

2) คุณสามารถใช้ Scrum ในทีมที่ไม่ใช้การทดสอบอัตโนมัติได้หรือไม่? ไม่ทำการปรับโครงสร้างใหม่หรือไม่ปฏิบัติตามแนวทางการเขียนโปรแกรมแบบเปรียว?

คำตอบ:


19

เป็นความผิดพลาดทั่วไปที่คิดว่าการแย่งชิงกันเท่ากับเปรียว

เป็นเปรียวกำลังติดตามสี่หลักการของเปรียว Scrum เป็นกระบวนการจัดการโครงการที่สอดคล้องกับหลักการเหล่านั้น แต่ไม่ใช่ในตัวของมันเองการเป็น Agile XP (TDD, การเขียนโปรแกรมคู่) เป็นกระบวนการพัฒนายังสอดคล้องกับหลักการเหล่านั้นและสอดคล้องกับการต่อสู้ แต่มันไม่ได้เป็นเปรียว บูรณาการอย่างต่อเนื่อง, การจัดส่งอย่างต่อเนื่อง, DevOps ทั้งหมดสอดคล้องกับหลักการเปรียว

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


3
agilemanifesto.org/principles.html ให้รายละเอียดเกี่ยวกับการประกาศ

1
@ ashy_32bit: ไม่ใช่คำถามที่ทุกคนสามารถตอบได้โดยไม่ทราบว่าทีมและโครงการ ไม่ใช่ทุกทีมหรือโครงการที่จะได้รับประโยชน์จากความคล่องตัว อย่างไรก็ตามฉันได้ทำงานกับทีมที่ทำ Scrum และ CI และไม่มีอะไรอื่น (จากกลอุบายกล่อง Agile) และมันก็ทำงานได้ดีขึ้นในกรณีนั้นมากกว่าทำสิ่งเหล่านี้ แต่เราพยายามปรับปรุงความคล่องตัวของเราตลอดเวลา
pdr

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

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

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

6

Scrum ไม่เชื่อเรื่องพระเจ้าหรือไม่ว่านักพัฒนาทำการฝึกที่คล่องตัวหรือไม่?

Scrum เป็นชุดแนวทางที่ส่งเสริมให้ทีมมีความคล่องตัว

คุณสามารถใช้ Scrum ในทีมที่ไม่ใช้การทดสอบอัตโนมัติได้หรือไม่? ไม่ทำการปรับโครงสร้างใหม่หรือไม่ปฏิบัติตามแนวทางการเขียนโปรแกรมแบบเปรียว?

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


สั้นและหวาน!
Kris Van Bael

5

Alistair Cockburn (หนึ่งในผู้ริเริ่มการเคลื่อนไหวแบบ Agile) กล่าวถึงสิ่งนี้เกี่ยวกับ Crystal Clear (หนึ่งในแง่มุมของวิธีการ Agile ของเขา):

Crystal Clear สามารถอธิบายให้ผู้ฟังระดับ 3 ได้ด้วยคำต่อไปนี้:

“ ใส่คน 4-6 คนในห้องที่มีเวิร์คสเตชั่นและไวท์บอร์ดและเข้าถึงผู้ใช้ ให้พวกเขาส่งมอบซอฟต์แวร์ที่ทำงานทดสอบแล้วแก่ผู้ใช้ทุกหนึ่งหรือสองเดือนและปล่อยให้พวกเขาอยู่คนเดียว”

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

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

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

อลิสแตร์ยังกล่าวถึง Kent Beck นี้อีกด้วย:

ถามเกี่ยวกับ XP และห้าระดับของ "Capability Maturity Model" เขาตอบด้วย XP ครบกำหนดสามระดับ:

  1. ทำทุกอย่างตามที่เขียนไว้

  2. หลังจากทำเช่นนั้นแล้วให้ทดสอบกับตัวแปรในกฎ

  3. ในที่สุดไม่สนใจว่าคุณกำลังทำ XP หรือไม่

ในที่สุดไม่สนใจว่าคุณกำลังทำ XP หรือไม่ ... คำที่ฉลาดที่ควรเตือนคุณไม่ให้ตกหลุมพรางนี้


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

0

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

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


0

มีความว่องไวเกี่ยวกับการพัฒนาหรือการจัดการ?

เปรียวเป็นชุดของการพัฒนาซอฟต์แวร์เพื่อความยืดหยุ่นในการตอบสนองความต้องการและเฟสเปลี่ยนแปลงอย่างรวดเร็ว requirements- ตลาดหรือเพื่อให้เรียกว่าการส่งมอบเร่ง ดังนั้นในภาพรวมมันเป็นวิธีการที่ยืดหยุ่นในการตอบสนองความต้องการที่ซับซ้อนของลูกค้าโดยการแบ่งงานในกลุ่มเล็ก ๆ

อย่างไรก็ตามเพื่อตอบสนองความยืดหยุ่นนี้ทีมพัฒนาจะต้องมีการฝึกการเขียนโปรแกรม Agile

คำอธิบายจาก Wiki เกี่ยวกับการพัฒนาซอฟต์แวร์ Agile :

การพัฒนาซอฟต์แวร์แบบ Agile เป็นกลุ่มของวิธีการพัฒนาซอฟต์แวร์บนพื้นฐานของการพัฒนาแบบวนซ้ำและแบบเพิ่มขึ้นซึ่งความต้องการและการแก้ปัญหามีวิวัฒนาการผ่านการทำงานร่วมกันระหว่างทีมที่จัดระเบียบเองและข้ามสายงาน มันส่งเสริมการวางแผนที่ปรับเปลี่ยนได้การพัฒนาและการส่งมอบวิวัฒนาการวิธีการวนซ้ำแบบกำหนดเวลาแบบกำหนดเวลาและสนับสนุนการตอบสนองที่รวดเร็วและยืดหยุ่นต่อการเปลี่ยนแปลง มันเป็นกรอบความคิดที่ส่งเสริมการมองเห็นการมีปฏิสัมพันธ์ตลอดวงจรการพัฒนา

ป้อนคำอธิบายรูปภาพที่นี่


0

Infact คุณสามารถใช้การต่อสู้ในโครงการที่ไม่มีส่วนเกี่ยวข้องกับการพัฒนาซอฟต์แวร์ใด ๆ มันเป็นวิธีการจัดการโครงการ / ทีม


-2

1) ไม่ !!!! Scrum คือ Agile ซึ่งหมายถึงการปฏิบัติที่คล่องแคล่วว่องไว (TDD, การเขียนโปรแกรมคู่, CI, การปรับโครงสร้าง ฯลฯ ) มีความสำคัญต่อทุกแง่มุมของโครงการการต่อสู้ มันจะยากกว่านี้ถ้าคุณคิดว่าอัตราการวิ่งของทีมประเมินงานกำหนดขนาดการวิ่งที่เหมาะสม ฯลฯ หากคุณไม่ได้ใช้แนวทางเหล่านี้

2) ใช่คุณสามารถใช้การต่อสู้ในทีมที่ไม่ยึดติดกับการปฏิบัติเปรียว แต่ฉันรู้สึกว่ามัน จำกัด ศักยภาพของทีม ส่วนใหญ่ของเหตุผลที่ Scrum / Agile ประสบความสำเร็จมากคือประสิทธิภาพและคุณภาพที่คุณได้รับจากการฝึกฝนแบบ Agile dev ซึ่งเป็นแกนหลักในการส่งมอบคุณสมบัติที่สมบูรณ์แบบด้านหน้า - หลังทุกการวิ่ง

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


1
โปรดอย่าใช้คำเช่น "Scrum / Agile" ซึ่งเป็นคำที่ไกลเกินไปจากคำที่ใช้แทนกันได้ฉันคิดว่าคุณรู้เรื่องนี้ แต่คุณยังคงสานต่อความคิดที่ว่าพวกเขาเป็นเมื่อคุณใช้พวกเขาในลักษณะนั้น
Jimmy Hoffa

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

2
@Tim เปรียวคำเป็นคำคุณศัพท์ แต่ในกรณีนี้ Agile หมายถึงชื่อ "การพัฒนาซอฟต์แวร์ Agile" ตามที่กำหนดไว้ที่agilemanifesto.orgและเป็นเช่นนี้ไม่ใช่คำคุณศัพท์ แต่เป็นคำนาม นี่คือการร้องเรียนของฉันเกี่ยวกับคนที่อ้างถึงการต่อสู้อย่างคล่องแคล่วผู้คนคิดว่า "การต่อสู้คือความคล่องตัว" และจากนั้นไม่เคยเรียนรู้เกี่ยวกับการประกาศแบบเปรียวซึ่งเป็นจุดเริ่มต้นของคำว่า "เปรียว" ทั้งหมด . การอ้างถึงสิ่งต่าง ๆ ที่มีความคล่องตัวโดยคำคุณศัพท์นั้นมีความคลุมเครือการประกาศไม่ชัดเจนมันมีหลักการและเฉพาะเจาะจง
จิมมี่ฮอฟฟา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.