เมื่อเร็ว ๆ นี้ฉันคิดถึงเรื่องการสร้างทีมพัฒนาแบบลีน ท้ายที่สุดฉันต้องการเปิดบ้านซอฟต์แวร์เล็ก ๆ ของฉันด้วยคนจำนวนน้อยที่มีใจเดียวกัน เป้าหมายจะไม่กลายเป็นคนรวย แต่มีสภาพแวดล้อมในการทำงานที่ดี
จนถึงตอนนี้ฉันกำหนดทีมแบบลีนดังต่อไปนี้:
- เล็ก ๆ น้อย ๆ
- จัดการตนเอง;
- สมาชิกทุกคนจะต้องมีการควบคุมคุณภาพในใจ;
- สมาชิกจะต้องสามารถดำเนินการได้หลายบทบาท
จุดสุดท้ายคือที่ที่ฉันกังวลเล็กน้อยเพราะเมื่อมนต์ไป ...
นักพัฒนาทำการทดสอบที่ไม่ดี
ในขณะที่ฉันเข้าใจว่ามักจะมีนักพัฒนา "ใกล้เกินไป" รหัสหรือโค้ดเพื่อนร่วมงานของพวกเขาที่จะทำให้การประเมินผลในระดับที่สูงขึ้นของคุณภาพของพวกเขาผมไม่เชื่อว่าพวกเขาจะพฤตินัยทดสอบที่ไม่ดี ในทางตรงกันข้ามฉันเห็นว่าคุณภาพของนักพัฒนาที่ดีทับซ้อนกันอย่างมากกับคุณภาพของผู้ทดสอบที่ดี
สมมติว่าถูกต้องฉันคิดวิธีที่แตกต่างของการแก้ไขปัญหา dev / ผู้ทดสอบและฉันเชื่อว่าฉันมากับแบบจำลองที่ทำงานได้
โมเดลของฉันต้องการ:
- บ้านซอฟต์แวร์ขนาดเล็กที่มี 2+ โครงการ
- วิธี Agile (ซ้ำ) เพื่อการพัฒนาและการส่งมอบ
- 1 ทีมต่อโครงการ
- สมาชิกในทีมทั้งหมดจะเป็นนักพัฒนาซอฟต์แวร์
- รายละเอียดงานของพวกเขาจะระบุอย่างชัดเจนการพัฒนา , การประกันคุณภาพ , การทดสอบและการจัดส่งสินค้าเป็นความรับผิดชอบ
หากเงื่อนไขทั้งหมดเหล่านี้ได้รับการตอบสนองแล้วโครงการสามารถจัดในรูปแบบต่อไปนี้ (ตัวอย่างนี้จะอ้างถึงสองโครงการAและB ):
- สมาชิกทุกคนในทีมจะสลับกันระหว่างบทบาทนักพัฒนาและบทบาทผู้ทดสอบ
- หากสมาชิกในทีมเป็นผู้พัฒนาโครงการAพวกเขาจะเป็นผู้ทดสอบในโครงการB
- สมาชิกจะได้ทำงานในโครงการเพียง 1 ในเวลาและดังนั้นจึงคาดว่าจะสามารถทำหน้าที่เป็นทั้ง Dev หรือเครื่องทดสอบ
- วงจรบทบาทประกอบด้วย 3 ซ้ำเป็น Dev และ 2 ย้ำเป็น Tester (อีกครั้งในสองโครงการที่แตกต่างกัน)
- ทีมงานโครงการจะมี 3 Devs และ 2 ผู้ทดสอบตลอดเวลา
- รอบบทบาทสมาชิกควรอยู่นอกระยะโดยการวนซ้ำ 1 ครั้ง
- สิ่งนี้จะช่วยลดความเปลี่ยนแปลงของทีมในทันที สำหรับการทำซ้ำแต่ละครั้ง 2 Devs และ 1 ผู้ทดสอบจะยังคงเหมือนเดิมซ้ำ
จากที่กล่าวมาฉันเห็นข้อดีและข้อเสียดังต่อไปนี้:
ข้อดี
- กระจายความรู้โครงการทั่วทั้ง บริษัท
- มั่นใจว่าสมาชิกในทีมไม่ได้ทดสอบโค้ดที่พวกเขาช่วยเขียน
- รอบบทบาทนอกเฟสหมายความว่าโครงการจะไม่มีสวิตช์สมาชิก 100%
- บทบาทสลับแบ่งความน่าเบื่อของโครงการที่น่าเบื่อ
จุดด้อย
- การวนซ้ำของทั้งสองโครงการมีความเชื่อมโยงกันอย่างแน่นหนา หากหนึ่งโครงการต้องยกเลิกการทำซ้ำครึ่งทางและเริ่มอีกครั้งโครงการทั้งสองจะไม่ซิงค์กัน สิ่งนี้จะทำให้วัฏจักรของบทบาทจัดการได้ยาก
- บานพับในการว่าจ้างนักพัฒนาเปิดทำงานเป็นผู้ทดสอบเช่นกัน
ฉันได้รับคำวิจารณ์ที่หลากหลายเมื่อพูดถึงวิธีการนี้กับเพื่อนและเพื่อนร่วมงาน บางคนเชื่อว่าผู้พัฒนาน้อยจะต้องการสลับบทบาทเช่นนี้ในขณะที่คนอื่นบอกฉันว่าพวกเขาชอบที่จะลอง
ดังนั้นคำถามของฉันคือ: แบบจำลองดังกล่าวสามารถใช้งานได้จริงหรือไม่? ถ้าไม่มันจะถูกดัดแปลงเป็นรูปแบบการทำงานหรือไม่?
หมายเหตุ: เพื่อความกะทัดรัดฉันได้มุ่งเน้นเฉพาะบทบาท Dev และผู้ทดสอบเท่านั้น ฉันจะขยายบทบาทอื่น ๆ หากจำเป็น