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


52

เราอยู่ตรงกลางผ่านการเปลี่ยนจากน้ำตกเป็นเปรียวโดยใช้การต่อสู้ เราได้เปลี่ยนจากทีมใหญ่ในไซโลเทคโนโลยี / สาขาวินัยเป็นทีมข้ามสายงานขนาดเล็ก

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

ปัญหาพื้นฐานคือ: นักพัฒนาบางคนได้รับแรงบันดาลใจจากความปิติของการทำงานที่ยาก, การคิดผ่านการออกแบบ, การคิดผ่านปัญหาที่อาจเกิดขึ้น, จากนั้นการแก้ปัญหาทีละชิ้นโดยมีปฏิสัมพันธ์น้อยที่สุดกับคนอื่น ๆ ช่วงเวลา. พวกเขามักจะทำงานให้เสร็จสมบูรณ์ในระดับสูงและในเวลาที่เหมาะสม; งานของพวกเขาบำรุงรักษาได้และเหมาะสมกับสถาปัตยกรรมโดยรวม การเปลี่ยนไปใช้ทีมข้ามสายงานที่ให้ความสำคัญกับการมีปฏิสัมพันธ์และความรับผิดชอบร่วมกันสำหรับการทำงานและการส่งมอบฟังก์ชั่นการทำงานภายในระยะเวลาอันสั้นทีมพัฒนาขึ้นเพื่อให้ทั้งทีมได้รับความเดือดร้อนจากปัญหาที่ยาก หลายคนพบว่านี่เป็นการเปลี่ยนแปลงเชิงบวก คนที่รักที่จะใช้ปัญหาและเป็นเจ้าของอย่างอิสระตั้งแต่ต้นจนจบสูญเสียโอกาสในการทำงานเช่นนั้น

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

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


7
There’s a great story of a manager of a Coca-Cola plant whose numbers were far better than his peers. When asked what his “secret” was, he said simply that rather than take a best practice and modify it to meet what the plant did, he instead modified the plant to match the best practice.คุณไม่กระฉับกระเฉงจนกว่าคุณจะเข้าใจว่าทำไมคุณถึงทำอย่างนั้น
ไม่มีใคร

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

แม้ว่ารายละเอียดจะมีความเฉพาะเจาะจงกับการเขียนโปรแกรม แต่เป็นปัญหาในที่ทำงานทั่วไปของการจัดการการเปลี่ยนแปลงและจะถูกถามมากกว่าในที่ทำงาน
mattnz

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

คำตอบ:


22

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

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

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

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

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


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

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

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

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

44

พวกเขาไม่พบความสุขในการทำงานเหมือนที่เคยทำ

แก้ไข.

นั่นเป็นอาการใหญ่ที่คุณทำผิด

เปรียวไม่ควรกำหนดระเบียบใหม่ที่ไม่ดีกับคน

Agile ควรอนุญาตให้ทีมจัดระเบียบตัวเองในวิธีที่ทำให้มีประสิทธิภาพมากที่สุด

องค์กรตนเองหมายถึงการจัดการไม่ได้กำหนดกฎแปลก ๆ มันไม่ได้กำหนดตารางเวลาที่ไม่ดีและไม่ได้กำหนดให้มีการโต้ตอบที่ไม่จำเป็น

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

ทำไมพวกเขาไม่สามารถทำสิ่งนี้ต่อไปได้?

ทำไมต้องเปลี่ยนพวกเขา

โปรดอ่าน Agile Manifesto สองสามครั้ง

แถลงการณ์เปรียวกล่าวว่า

บุคคลและการมีปฏิสัมพันธ์เหนือกระบวนการและเครื่องมือ

ไม่ได้บอกว่าบังคับให้คนทำงานในลักษณะที่อึดอัดและไม่ก่อผล

หากคุณกำลังบังคับให้ผู้คนเข้ามา "ปฏิสัมพันธ์" ที่มีมูลค่าต่ำมากเกินไปแสดงว่าคุณไปไกลเกินไป

ซอฟต์แวร์ที่ทำงานผ่านเอกสารที่ครอบคลุม

พวกเขากำลังทำสิ่งนี้หรือไม่? จากนั้นทิ้งไว้คนเดียว

การทำงานร่วมกันของลูกค้าในการเจรจาสัญญา

คุณทำสิ่งนี้อยู่แล้ว? จากนั้นไม่เปลี่ยน

ตอบสนองต่อการเปลี่ยนแปลงมากกว่าการทำตามแผน

คนเหล่านี้สามารถตอบสนองต่อการเปลี่ยนแปลงได้ที่ไหน? ถ้าเป็นเช่นนั้นพวกเขาก็เปรียวแล้ว พวกเขาไม่จำเป็นต้องเปลี่ยน


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

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

1
@Kris: "ในบางครั้งบุคคลในทีมไม่รู้สึกได้รับรางวัลในแบบที่พวกเขาเคยทำ" แก้ไข. นั่นเป็นเพราะสิ่งต่าง ๆ มีการเปลี่ยนแปลง คุณอาจต้องการพิจารณาว่าคำอธิบายที่ยาวสำหรับฉัน (คนแปลกหน้าทั้งหมด) อาจไม่เป็นประโยชน์เท่ากับการพูดคุยในเชิงลึกกับผู้ที่มีปัญหาจริง "บุคคลและการมีปฏิสัมพันธ์กับกระบวนการและเครื่องมือ" คุยกับพวกเขา. พวกเขาไม่ชอบอะไร แก้ไขสิ่งที่ต้องการแก้ไข หากพวกเขาต้องการที่จะทำไปด้วย "เปรียว" แล้วก็ไปทำกับเปรียวและทำให้พวกเขาสร้างตารางที่เข้มงวด ดำเนินการต่อเพื่ออนุญาตการเปลี่ยนแปลงกำหนดการ
S.Lott

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

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

23

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

การเปิดตัวครั้งล่าสุดฉันอยู่ในทีม "ว่องไว" ที่มีนักพัฒนา IMHO จำนวนมากเกินไปที่มีระดับทักษะทั่วทุกสถานที่และเราพยายามทำให้ทุกคนมีส่วนร่วมในโครงการเดียวกัน มันเป็นหายนะ เราได้พูดคุย / โต้แย้งมากกว่างานและท้ายที่สุดสิ่งที่ทีมงานสร้างขึ้นก็คืองานเฉลี่ย (อ่าน Peopleware หรือ Mythical Man Month เกี่ยวกับการทำงานโดยเฉลี่ย) ลืมเกี่ยวกับรูปแบบการออกแบบลืมเกี่ยวกับการมีเพศสัมพันธ์ต่ำหรือทำลายรหัสลงในชั้นเรียนขนาดเล็กและวิธีการ ลืมเกี่ยวกับการพยายามทำสิ่งที่น่าสนใจเพราะก) สมาชิกทีมทุกคนไม่สามารถอธิบายและเข้าใจได้ (อย่างน้อยก็ไม่ใช่ในเวลาที่เหมาะสม) และข) เนื่องจากเรามีความคล่องตัวไม่ว่าฉันจะเริ่มต้นทำซ้ำครั้งนี้ จะดำเนินการต่อในการทำซ้ำครั้งถัดไป ส่วนตัว,

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

ในเวลาเดียวกันมีคนจำนวนไม่มาก (น้อยมาก) ใน บริษัท ของฉันที่ฉันชอบทำงานเคียงข้างกันและแบ่งปันรหัสทั้งหมดของฉัน

แต่ตอนนี้คุณต้องเผชิญกับทางเลือก A) นำนักพัฒนาอาวุโสที่ดีของคุณทั้งหมดที่สร้างรหัสที่มีคุณภาพสูงและนำพวกเขาไปไว้ในทีมของพวกเขาเอง หรือ B) พยายามสร้างความสมดุลให้กับทีมและนำทีมที่ดีออกมาด้วยทีมที่ไม่ดีนัก ใน (A) ปัญหาคือว่าหนึ่งในทีมของคุณจะมีประสิทธิภาพต่ำกว่าและจะไม่รับทักษะ / นิสัยที่ดีจากคนดี ใน (B) คนดีของคุณ (ในสภาพแวดล้อมที่บริสุทธิ์เปรียว) จะรู้สึกหงุดหงิดและจะเริ่มทำงานกับประวัติย่อของพวกเขา ของฉันทันสมัย

แล้วคุณจะทำอย่างไร

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

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

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


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

8

Agile คืออะไร

ใช่ไหม:

  • ชุดของกฎที่คุณต้องปฏิบัติตามเพื่อให้บรรลุสิ่งที่ผู้กำหนดกฎตั้งใจทำ

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

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

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

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

อลิสแตร์เบิร์นอธิบายเรื่องนี้ในวิธีการของเขา หากคุณมี "ผู้ฝึกหัดระดับ 3" วิธีการที่ถูกต้องสมบูรณ์แบบนี้มีดังนี้:

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

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


4

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

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

มีวิธีการที่ไม่พยายามเปลี่ยนแปลงอะไรจากกระบวนการพัฒนาของคุณ - การแย่งชิงกันไม่ใช่วิธีการหนึ่ง วิธีการที่คล่องตัวทั้งหมดเน้นการปรับปรุงอย่างต่อเนื่อง คุณจะตรวจพบขั้นตอนที่ไม่มีประสิทธิภาพในกระบวนการของคุณและคุณจะพยายามปรับปรุง / เปลี่ยนแปลง - นั่นคือวิธีที่คล่องตัว ตรวจสอบระเบียบวิธีแบบเปรียวยอดนิยมอื่น - Kanban

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

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

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

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


2

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

คุณไม่ได้ใส่รหัสลงในตัวหารร่วมที่ต่ำที่สุด คุณทำให้นักพัฒนาที่ไม่มีประสบการณ์ทันกับนักพัฒนาที่ดีขึ้น


2

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

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


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

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

2

ฉันจะพยายามอธิบายบางแง่มุมที่ไม่ได้รับการตอบสนองโดยคำตอบอื่น ๆ และ IMO นั้นมีความสำคัญ

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

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

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

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

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

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

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

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

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

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

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

แค่ 2 เซ็นต์ของฉัน


1
Some developers are primarily motivated by the joy of taking a piece of difficult 
work, thinking through a design, thinking through potential issues, then solving
the problem piece by piece, with only minimal interaction with others, over an 
extended period of time

ดูเหมือนว่าพวกเขาเป็น "Lone Rangers" ในการต่อสู้ที่เป็นที่ยอมรับคนเหล่านี้ไม่สามารถเข้าร่วมทีมได้ (พวกเขาพลาดบิต "การโต้ตอบ")

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

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

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


3
-1 - สำหรับการสมมติว่าคนที่มีประสิทธิผลเป็นพิเศษนั้นเป็นแรนเจอร์คนเดียวเพราะพวกเขาไม่สนใจวิธีการที่คล่องตัว คุณเคยได้ยินวลี "ใช้ชีวิตให้ได้ตามศักยภาพ" หรือ "สนุกกับการท้าทาย" บางทีพวกเขาอาจพลาดในขณะที่ฝึกฝนวิธีการที่คล่องตัว
Dunk

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

0

หาก Joe (ผู้พัฒนา Hero ของคุณ) ยืดหยุ่นเล็กน้อยฉันไม่เห็นปัญหา:

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

ความท้าทายเดียวที่ยังคงอยู่ภายในข้อ จำกัด บางประการที่ Scrum เรียกเก็บ:

  1. การนำเสนอฟังก์ชั่นตามช่วงเวลาปกติ: ถ้าคุณปล่อยให้โจเคี้ยวปัญหานานหลายเดือนโดยไม่มีอะไรจะแสดงจนกว่าจะถึงตอนสุดท้ายโจก็ไม่คล่องแคล่วแน่นอน: เขากำลังจับตัวประกันของเจ้าของผลิตภัณฑ์และไม่ยอมให้เขามีโอกาส ส่วนหนึ่งของผลิตภัณฑ์นั้น ด้วยการฝึกฝนนี้ยังมีความเสี่ยงที่เขาจะมาสายและไม่มีใครสังเกตเห็น (แต่ตามคำอธิบายของคุณที่ไม่น่าจะเป็นเช่นนั้น) เยียวยา: มันจะมากเกินไปที่จะขอจากโจนั่งร่วมกับ PO สลายเรื่องราวของผู้ใช้และเห็นด้วยกับการส่งมอบระดับกลางโดยเฉพาะอย่างยิ่ง (แต่ไม่จำเป็น) ด้วยมูลค่าของผู้ใช้?

  2. เคารพลำดับความสำคัญที่เจ้าของผลิตภัณฑ์กำหนดไว้: หากผู้เชี่ยวชาญเป็นเจ้าของโค้ดคุณจะเสี่ยงต่อสถานการณ์ที่การวิวัฒนาการของผลิตภัณฑ์ถูกกำหนดโดยความพร้อมใช้งานของผู้เชี่ยวชาญแต่ละคนไม่ใช่ลำดับความสำคัญทางการค้า: ทีมที่เหลืออาจ ทำงานกับฟีเจอร์ที่สำคัญน้อยกว่าในขณะที่ฟีเจอร์ 3 อันดับแรกกำลังถ่วงเวลาเพราะ "มีเพียงโจเท่านั้นที่สามารถทำได้" เลวร้าย. ในขณะนั้นทีมควร (ชั่วคราว) เปลี่ยนนิสัยและแบ่งโจทำงานกับสมาชิกในทีมมากขึ้น

กล่าวโดยย่อ: ถ้าโจผู้พัฒนาฮีโร่เห็นด้วยกับ PO ว่าเขาจะแสดงความคืบหน้าในแต่ละการวิ่งอย่างไรทีมสามารถกำหนดเรื่องราวบางอย่างให้เขาและปล่อยให้เขาอยู่คนเดียว แต่ถ้า PO ทำงานให้โจมากเกินไปและไม่เพียงพอสำหรับทีม (หรือในทางกลับกัน) โจและทีมต้องปรับตัวไม่ใช่ PO


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

-1

กฎสำหรับทีมเปรียวควรได้รับการปรับแต่งให้เหมาะสมกับทีมซึ่งสามารถปรับแต่งได้ตามความเป็นส่วนตัว ตัวอย่างเช่นฉันทำงานกับทีมที่มีกฏ:

รหัสทั้งหมดจะต้องเขียนโดยคู่ยกเว้นเดวิดอาจเขียนรหัสเพียงอย่างเดียว

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

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


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

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

ฉันกำลังเตรียมที่จะเขียนคำตอบของตัวเองซึ่งฉันเน้นเกณฑ์สำหรับการประเมินผลการปฏิบัติงานสำหรับ "ผู้เชี่ยวชาญในทีมที่คล่องตัว": แทนที่จะจ่ายเงินสำหรับ เพิ่มความรู้โดยรวม (โดเมนพิเศษ) ของทั้งทีม "
rwong

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