ความแตกต่างระหว่างการพัฒนาแบบ DevOps กับ Agile 
 
 
การพัฒนา Software ใหม่รวมถึงการแก้ปัญหาและปรับปรุงเพิ่มความสามารถให้กับ Software จึงเป็นสิ่งที่สำคัญ ในปัจจุบันมีการนำรูปแบบการพัฒนาระบบที่เรียกว่า DevOps มาใช้ช่วยให้สามารถพัฒนาระบบหรือโปรแกรม (Software) ให้สำเร็จได้รวดเร็วขึ้น มีคุณภาพมากขึ้น ในขณะที่ต้นทุนที่ต่ำลง การพัฒนาแบบ DevOps เป็นแนวทางการพัฒนาระบบที่ได้รับความนิยมในนักพัฒนาอุตสาหกรรมไอทีมานาน บริษัทที่ไม่สามารถนำแนวคิดการพัฒนาแบบ DevOps มาปรับใช้ ก็มีโอกาสที่จะสูญเสียความสามารถในแข่งขันทั้งในด้านระยะเวลา คุณภาพ และงบประมาณ จนทำให้อาจพ่ายแพ้ในการแข่งขันให้คู่แข่งได้ในที่สุด หลายครั้งพบว่ามีคนสับสนหรือยังมีข้อสงสัยอีกมากมายในการทำงาน โดยเฉพาะเรื่องของความแตกต่างระหว่างการทำงานแบบ DevOps กับแบบ Agile ว่ามีแตกต่างกันอย่างไรอันไหนมีข้อดีข้อเสียต่างกันอย่างไร ทำให้ DevOps และ Agile ยังเป็นข้อถกเถียงที่ไม่สิ้นสุดในกลุ่มนักพัฒนาในอุตสาหกรรมไอที
 
DevOps คือ ชุดแนวทางการพัฒนาซอฟต์แวร์ที่รวมการพัฒนาซอฟต์แวร์และการดำเนินงานด้านเทคโนโลยีสารสนเทศ เพื่อลดวงจรชีวิตของการพัฒนาระบบในขณะที่นำเสนอคุณลักษณะการแก้ไขและการอัปเดตบ่อยครั้งเพื่อให้สอดคล้องกับวัตถุประสงค์ทางธุรกิจ DevOps มีหลักการคือ การนำความคล่องตัวมาสู่งานการพัฒนาและการดำเนินงานระบบ DevOps อาจไม่สามารถทดแทน Agile ได้แต่ DevOps จะสามารถนำมาปรับปรุงต่อยอดส่วนที่ยังขาดในเรื่องของการดำเนินงานได้ดี DevOps อาจไม่ใช่การแทนที่ Agile ได้ แต่ก็อาจใช้ร่วมเพื่อให้การปฏิบัติมีระบบดีขึ้น เมื่อเวลาผ่านไป Agile ก็ได้เพิ่มความท้าทายและ DevOps ก็กลายเป็นแนวทางปฏิบัติที่เหมาะสมที่สุด 
- กระบวนการหรือการปฏิบัติ ของ DevOps เกี่ยวข้องกับชุดของกระบวนการทางเทคนิคเช่น การพัฒนาอย่างต่อเนื่อง, การรวมอย่างต่อเนื่อง (CI), การทดสอบอย่างต่อเนื่อง (CI), การปรับใช้อย่างต่อเนื่อง (CD) และการตรวจสอบอย่างต่อเนื่อง
- พื้นที่โฟกัสที่สนใจให้ความสำคัญ จะมุ่งเน้นไปที่การรับประกันซอฟต์แวร์ที่มีคุณภาพในเวลาที่เหมาะสม การรับประกันคุณภาพจะทำโดยการตรวจสอบซอฟต์แวร์อย่างต่อเนื่องหลังจากการปรับใช้
- มีรอบระยะเวลาทั้งในส่วนของการเผยแพร่และการพัฒนา จะมุ่งเน้นไปที่ระยะการปล่อยที่สั้นลง มุ่งให้มีการส่งมอบงานที่เร็วขึ้นแต่ติดตามผลการตอบรับอย่างต่อเนื่องทันที 
- ผู้ให้ข้อเสนอแนะ จะมีการวัดผลจากทีมภายในพัฒนาภายใน โดยอาจใช้เครื่องมือการตรวจสอบมาช่วยอย่างต่อเนื่อง
 
Agile คือ แนวคิดที่มีการนำเอาระบบการผลิตแบบลีน (Lean) มาเป็นรากฐานสำคัญในการทำงานเน้นกระบวนการทำงานที่สั้นที่สุดซึ่งจะทำให้มีระยะเวลาในการทำงานที่สั้นที่สุดไปด้วย ในปี 2001 ได้มีการกำหนดคำแถลงอุดมการณ์ (Agile Manifesto) ซึ่งมีเนื้อหาสำคัญคือ
1. ให้ความสำคัญกับคนและการมีปฏิสัมพันธ์ในงานร่วมกัน มากกว่าการทำตามขั้นตอนและเครื่องมือ (Individuals and interactions over processes and tools)
2. เน้นให้ซอฟต์แวร์ที่ได้นำไปใช้งานได้จริง มากกว่าการเน้นในเอกสารการทำงานที่ครบถ้วนสมบูรณ์ (Working software over comprehensive documentation)
3. เน้นการทำงานร่วมกับลูกค้ามากกว่าการทำงานตามข้อกำหนดตกลงในสัญญา (Customer collaboration over contract negotiation)
4. เน้นการตอบรับกับการปรับปรุงเปลี่ยนแปลงที่พบ มากกว่าการทำตามแผนที่วางไว้ (Responding to change over following a plan)
แนวคิดนี้นี้ถูกนำไปปรับใช้กลายเป็นวิธีการพัฒนาระบบและโปรแกรมงานแบบ Agile มีหลักการคือ การนำความคล่องตัวมาสู่การพัฒนาระบบ โดยมุ่งให้เกิดการเสริมในงานโมเดลแบบ Waterfall ที่แยกส่วนงานย่อยให้เล็ก การพัฒนาซอฟต์แวร์แบบ Agile นั้นเกี่ยวกับการปฏิบัติตามชุดแนวทางปฏิบัติที่ดีที่สุดสำหรับการสร้างซอฟต์แวร์ที่มีคุณภาพในเวลาที่เหมาะสม แต่ปัญหาคือแนวทางปฏิบัติที่ดีที่สุดเกี่ยวข้องกับคนที่ทำงานในกลุ่มของตนเองเท่านั้นเช่น คณะทำงาน ผู้พัฒนาระบบ ผู้ทดสอบ หรือผู้ติดตามประเมิน โดยจะมีการสื่อสารน้อยมากระหว่างกันเพราะเน้นที่การแยกส่วนทำงานให้มีความรวดเร็วเป็นหลัก หากจะมีการคุยกันบ้างก็ในกลุ่มผู้พัฒนาระบบ โดยจะไม่ได้เน้นหรือตระหนักถึงสิ่งที่ผู้ปฎิบัติงานจริงหรือคนที่กำลังทำงานทำอยู่ในชีวิตจริง
- กระบวนการหรือการปฏิบัติ ในการพัฒนาแบบ Agile นั้นเกี่ยวข้องกับการปฏิบัติเช่น Agile Scrum & Agile Kanban
- พื้นที่โฟกัสที่สนใจให้ความสำคัญ การพัฒนาแบบจะเน้นที่ความว่องไวมุ่งไปที่การปล่อยซอฟต์แวร์ที่มีคุณภาพเป็นหลัก ในเวลาที่เหมาะสม
- มีรอบระยะเวลาทั้งในส่วนของการเผยแพร่และการพัฒนา โดยจะมุ่งเน้นไปที่ระยะเวลาที่สั้นลง มุ่งให้มีการส่งมอบงานที่เร็วขึ้น
- ผู้ให้ข้อเสนอแนะ ความคิดเห็นส่วนใหญ่จะได้รับจากลูกค้าเมื่อใช้งาน 
 
คุณสมบัติ DevOps Agile
ความว่องไว (Agility) มีความคล่องตัวในทั้ง 2 ส่วนคือระยะพัฒนาและระยะการดำเนินงาน (Development & Operations) มีความคล่องตัวในส่วน ระยะพัฒนาเท่านั้น (Development)
กระบวนการ / การปฏิบัติ (Processes/ Practices) ให้ความสำคัญและเกี่ยวข้องในกระบวนการต่าง ๆ มากมายเช่น CI, CD, CT

ให้ความสำคัญกับการปฏิบัติเช่น Agile Scrum, Agile Kanban, etc.

การให้ความสำคัญ (Key Focus Area) ให้ความสำคัญกับการตรงต่อเวลาและคุณภาพของงาน ในระดับที่มีความสำคัญเท่ากัน ให้ความสำคัญกับการตรงต่อเวลาเป็นสิ่งสำคัญที่สุด
รอบการเผยแพร่และรอบในการพัฒนา (Release Cycles/ Development Sprints)

มีรอบในการเผยแพร่และรอบในการพัฒนาที่เล็กและรับข้อเสนอแนะในทันที

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

 

 

 -----------------------------------------------

🌏 ติดตามข้อมูลข่าวสารได้จากช่องทางสื่อสาร iOK2u ได้ที่

📱 Line: @iok2u.com
📱 Twister: iok2u.com
💻 E-Mail: This email address is being protected from spambots. You need JavaScript enabled to view it.
😍 ลงข้อมูล เกียรติพงษ์ อุดมธนะธีระ Line: Rainubon

ผู้สนับสนุน (Sponser)

ชมรมเพื่อนเบ็ญจะมะ รุ่น 2521-2526 www.ben21-26.org
Big Brother DIP
Orapin Udomtanateera
Geological Society of Thailand (GST)
กองโลจิสติกส์ กรมส่งเสริมอุตสาหกรรม
Fanpage KKUGTA
อัลปั้มภาพ
google
กรมส่งเสริมอุตสาหกรรม กระทรวงอุตสาหกรรม
Kiattiphong Udomtanateera

.

.

Copyright © 2014. All Rights Reserved.

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

โครงการภายใต้การดูแลของ iOK2u.com พัฒนาเว็บไซต์โดย เกียรติพงษ์ อุดมธนะธีระ

🌏 ติดตามข้อมูลข่าวสารได้จากช่องทางสื่อสาร iOK2u ได้ที่

💻 Web: www.iok2u.com / 💻 Twister: iok2ucom / 💻 Facebook: www.facebook.com/iok2ucom / 💻 YouTube: iok2ucom / 💻 Line: @iok2ucom / 💻 E-Mail: iok2ucom@gmail.com