การพัฒนาซอฟต์แวร์ Agile 101

ผู้เขียน: Judy Howell
วันที่สร้าง: 26 กรกฎาคม 2021
วันที่อัปเดต: 23 มิถุนายน 2024
Anonim
Agile Scrum Full Course In 4 Hours | Agile Scrum Master Training | Agile Training Video |Simplilearn
วิดีโอ: Agile Scrum Full Course In 4 Hours | Agile Scrum Master Training | Agile Training Video |Simplilearn

เนื้อหา


Takeaway:

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

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

บทสรุปเกี่ยวกับวงจรการพัฒนาซอฟต์แวร์

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

  1. รวบรวมความต้องการจากลูกค้า
  2. การวิเคราะห์ระบบและความเป็นไปได้
  3. การออกแบบและการสร้างแบบจำลอง
  4. การเข้ารหัสหรือการใช้งาน
  5. การทดสอบ
  6. การปรับใช้และการจัดส่ง
  7. บำรุงรักษาและเปลี่ยนคำขอ

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


ทำไมการพัฒนาที่คล่องตัวแตกต่างกัน

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

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

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


การปฏิบัติที่คล่องตัว

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

แม้ว่าจะไม่มีรายการที่ครอบคลุมของหลักการเปรียวมีวิธีปฏิบัติบางอย่างที่เผยแพร่เปรียว เหล่านี้รวมถึง:

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

ทำไมต้อง Agile

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

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

คุณไม่สามารถพัฒนาทักษะการเขียนโปรแกรมของคุณเมื่อไม่มีใครใส่ใจคุณภาพของซอฟต์แวร์