บทความ

Extreme Programming (XP) คืออะไร, คุณค่าใดที่อิงตาม, หลักการและแนวทางปฏิบัติ

คุณคุ้นเคยกับการเขียนโปรแกรม แต่ Extreme Programming (เรียกสั้นๆ ว่า XP) ยังคงเป็นปริศนาสำหรับคุณ

อย่าปล่อยให้ชื่อทำให้คุณผิดหวัง คุณอาจเสี่ยงที่จะพลาดข้อมูลที่เป็นประโยชน์

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

Extreme Programming (XP) คืออะไร?

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

สิ่งที่ทำให้ XP แตกต่างจากวิธีการแบบ Agile อื่นๆ คือ XP เน้นด้านเทคนิคของการพัฒนาซอฟต์แวร์ การเขียนโปรแกรมขั้นสูงนั้นแม่นยำเกี่ยวกับวิธีการทำงานของวิศวกร เนื่องจากแนวปฏิบัติด้านวิศวกรรมต่อไปนี้ช่วยให้ทีมสามารถส่งมอบโค้ดคุณภาพสูงได้อย่างยั่งยืน

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

Extreme Programming (XP) ทำงานอย่างไร

XP ซึ่งแตกต่างจากวิธีการอื่น ๆ ขึ้นอยู่กับค่านิยมและหลักการที่สำคัญและเกี่ยวข้องในแง่ของการปฏิบัติทางวิศวกรรม

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

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

หลักการเป็นแนวทางเฉพาะโดเมนที่เชื่อมช่องว่างระหว่างการปฏิบัติและค่านิยม

ค่าของ Extreme Programming XP

ค่า XP: การสื่อสาร ความเรียบง่าย คำติชม ความกล้าหาญ และความเคารพ ลองดูที่แต่ละรายละเอียดเพิ่มเติม

คุณค่าและหลักการของ Extreme Programming

การร่าง BlogInnovazione.ของภาพ alexsoft.com

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

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

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

ข้อเสนอแนะ: ข้อเสนอแนะในแนวทางการพัฒนาซอฟต์แวร์แบบเรียงซ้อนแบบดั้งเดิมมักจะ “น้อยเกินไป สายเกินไป”

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

วัฏจักรของการเขียนโปรแกรมที่รุนแรง

การร่าง BlogInnovazione.ของภาพ alexsoft.com

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

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

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

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

ความกล้าหาญ: เคนท์ เบ็ค defiความกล้าหาญปรากฏเป็น "การกระทำที่มีประสิทธิภาพเมื่อเผชิญกับความกลัว" ในฐานะวิศวกรซอฟต์แวร์ คุณมีความกลัวมากมายและมีโอกาสมากมายที่จะแสดงความกล้าหาญ

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

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

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

หลักการของ Extreme Programming XP

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

การร่าง BlogInnovazione.ของภาพ alexsoft.com

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

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

เศรษฐกิจ: ใน XP ทีมมักจะให้ความสนใจกับความเป็นจริงทางเศรษฐกิจของการพัฒนาซอฟต์แวร์ ประเมินความเสี่ยงทางเศรษฐกิจและความต้องการของโครงการอย่างต่อเนื่อง

ตัวอย่างเช่น พวกเขาจะใช้เรื่องราวของผู้ใช้ตามมูลค่าทางธุรกิจมากกว่าข้อกังวลทางเทคนิค

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

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

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

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

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

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

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

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

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

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

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

ความซ้ำซ้อน: หลักการของความซ้ำซ้อนกล่าวว่าหากปัญหานั้นวิกฤต คุณต้องใช้กลวิธีหลายอย่างเพื่อตอบโต้

ใช้ข้อบกพร่อง ไม่มีกลยุทธ์ใดที่สามารถป้องกันข้อบกพร่องทั้งหมดไม่ให้เล็ดลอดออกจากการผลิตได้

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

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

คุณภาพ: ผู้คนมักคิดว่ามีปัญหาระหว่างคุณภาพและความเร็ว

ตรงกันข้าม: การผลักดันเพื่อปรับปรุงคุณภาพคือสิ่งที่ทำให้คุณไปได้เร็วขึ้น

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

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

ขั้นตอนเล็กน้อย: การเปลี่ยนแปลงครั้งใหญ่มีความเสี่ยง XP ลดความเสี่ยงดังกล่าวโดยทำการเปลี่ยนแปลงในขั้นตอนเล็กๆ ในทุกระดับ

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

ความรับผิดชอบได้รับการยอมรับ: ใน XP ควรยอมรับความรับผิดชอบ ไม่เคยมอบหมาย

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

ความเหมือนและความต่างกับวิธีการแบบดั้งเดิมและไม่คล่องตัว

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

XP แตกต่างอย่างมากจากวิธีการแบบดั้งเดิม เช่น การเรียงซ้อน การหลีกเลี่ยงขั้นตอนที่ยาวนาน

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

XP แตกต่างจากวิธีการแบบ Agile อื่นๆ อย่างไร

โดยธรรมชาติแล้วการเขียนโปรแกรมแบบ Extreme นั้นมีความเหมือนกันหลายอย่างกับวิธีการแบบ Agile อื่นๆ แต่ก็มีลักษณะเฉพาะเช่นกัน

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

การเขียนโปรแกรมขั้นสูงกับ Scrum

Scrum เป็นเฟรมเวิร์กที่ช่วยให้ทีมพัฒนาโครงการที่ซับซ้อนด้วยวิธีที่ปรับเปลี่ยนได้ Scrum ไม่ได้กำหนดวิธีการทำงานของนักพัฒนา ดังที่ได้กล่าวไปแล้ว XP ให้ความสำคัญกับแนวทางปฏิบัติในการเขียนโปรแกรมที่ดีเป็นอย่างมาก

กรอบการต่อสู้

การร่าง BlogInnovazione.th รูปภาพ โซลูชันสุทธิ

นอกจากนี้ XP ยังเป็นเรื่องเกี่ยวกับการเขียนโปรแกรมอีกด้วย ในทางกลับกัน Scrum สามารถนำไปใช้กับโครงการใดๆ ก็ได้ที่ได้รับประโยชน์จากวิธีการทำซ้ำๆ

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

นอกจากนี้ Scrum ยังเป็นเฟรมเวิร์กที่ต้องเสริมด้วยวิธีการและแนวปฏิบัติเพื่อให้งานสำเร็จลุล่วง

ซึ่งหมายความว่าขอแนะนำให้ทำงานในการเขียนโปรแกรมขั้นสูงและ Scrum

หน้าที่และความรับผิดชอบ

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

มาดูบทบาทสำคัญบางประการ:

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

วิธีการและเทคนิค

นี่คือหลักปฏิบัติที่ใช้ใน XP พวกเขาแบ่งออกเป็นสามกลุ่มหลัก: วิศวกรรมซอฟต์แวร์ สถานที่ทำงาน และการจัดการโครงการ

วิศวกรรมซอฟต์แวร์

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

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

ทดสอบก่อนลงโปรแกรม: ใช้คุณสมบัติโดยใช้วิธีทดสอบก่อนหรือที่เรียกว่า การพัฒนาเพื่อทดสอบ (TDD). TDD ประกอบด้วยการพัฒนาโดยใช้ขั้นตอนการทำซ้ำอย่างง่าย:

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

TDD ให้ประโยชน์หลายประการ

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

ประการที่สอง TDD ช่วยให้โปรแกรมเมอร์เชื่อถือโค้ดที่พวกเขาเขียนและสร้างจังหวะการวนซ้ำที่ดีโดยที่ขั้นตอนต่อไปจะชัดเจนเสมอ

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

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

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

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

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

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

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

หากคุณต้องการสิ่งประดิษฐ์หรือเอกสารอื่นๆ ให้พยายามสร้างจากรหัสการผลิตและการทดสอบ

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

สภาพแวดล้อมการทำงาน

นั่งด้วยกัน: ใน XP ทีมต้องการทำงานร่วมกันในพื้นที่เปิดโล่ง วิธีปฏิบัตินี้ส่งเสริมการสื่อสารและความรู้สึกเป็นส่วนหนึ่งของทีม

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

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

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

การจัดการโครงการ

analisi- เขียนความต้องการของผู้ใช้ในรูปแบบที่เรียกว่าการวิเคราะห์ผู้ใช้ การวิเคราะห์ผู้ใช้มีชื่อที่สื่อความหมายสั้นๆ และคำอธิบายสั้นๆ ของสิ่งที่ต้องดำเนินการ

หย่อน: เมื่อวางแผนวงจร ให้เพิ่มงานย่อยที่ทีมสามารถละทิ้งได้หากจำเป็น สามารถเพิ่มเรื่องราวเพิ่มเติมได้เสมอหากทีมนำเสนอมากเกินไป

รอบ (รายเดือนและรายสัปดาห์): การพัฒนาใน XP เกิดขึ้นในสองรอบหลัก: รอบรายสัปดาห์และรอบเดือน

การประชุม รอบ การเปิดตัวตามกำหนดการ: การพัฒนาใน XP ทำงานในสองรอบหลัก: รอบรายสัปดาห์และรอบรายไตรมาส ในขั้นต้น Kent Beck แนะนำรอบสองสัปดาห์ แต่เปลี่ยนในการพิมพ์ครั้งที่สองของหนังสือของเขา

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

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

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

Ercole Palmeri

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

บทความล่าสุด

หน่วยงานกำกับดูแลการต่อต้านการผูกขาดของสหราชอาณาจักรส่งสัญญาณเตือน BigTech เกี่ยวกับ GenAI

UK CMA ได้ออกคำเตือนเกี่ยวกับพฤติกรรมของ Big Tech ในตลาดปัญญาประดิษฐ์ ที่นั่น…

18 2024 เมษายน

Casa Green: การปฏิวัติพลังงานเพื่ออนาคตที่ยั่งยืนในอิตาลี

พระราชกฤษฎีกา "บ้านสีเขียว" ซึ่งกำหนดโดยสหภาพยุโรปเพื่อปรับปรุงประสิทธิภาพการใช้พลังงานของอาคารได้สรุปกระบวนการทางกฎหมายด้วย...

18 2024 เมษายน

อีคอมเมิร์ซในอิตาลีเพิ่มขึ้น 27% ตามรายงานใหม่โดย Casaleggio Associati

รายงานประจำปีเกี่ยวกับอีคอมเมิร์ซในอิตาลีของ Casaleggio Associati นำเสนอ รายงานเรื่อง “AI-Commerce: พรมแดนอีคอมเมิร์ซกับปัญญาประดิษฐ์”...

17 2024 เมษายน

ไอเดียบรรเจิด: Bandalux นำเสนอ Airpure® ม่านฟอกอากาศ

ผลลัพธ์ของนวัตกรรมทางเทคโนโลยีอย่างต่อเนื่องและความมุ่งมั่นต่อสิ่งแวดล้อมและความเป็นอยู่ที่ดีของผู้คน Bandalux นำเสนอ Airpure® เต็นท์…

12 2024 เมษายน

อ่านนวัตกรรมในภาษาของคุณ

จดหมายข่าวนวัตกรรม
อย่าพลาดข่าวสารที่สำคัญที่สุดเกี่ยวกับนวัตกรรม ลงทะเบียนเพื่อรับพวกเขาทางอีเมล

ติดตามเรา