hand tlhand crfog b
22Jun, 2023
Language blog :
Thai
Share blog : 
22 June, 2023
Thai

Agile vs waterfall

By

2 mins read
Agile vs waterfall

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

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

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

1. การใช้งานของ User

2. ความเป็นไปได้ในเชิง Technical

3. ความเป็นไปได้ในมุมของธุรกิจ

 

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

วันนี้ผมจะมาแนะนำ 2 Models หลัก ๆ ที่ใช้ในการพัฒนาซอฟต์แวร์ในยุคปัจจุบัน ก่อนอื่นเรามาเข้าใจความหมายในแต่ละโมเดลกันก่อน

 

1. Waterfall Model

โมเดลที่มีการมุ่งเน้นประสิทธิภาพและขั้นตอนของการพัฒนา โดยมีลักษณะการพัฒนาเรียงลำดับดังนี้ 1. Planning and Analysis 2. Design 3. Development 4. Testing 5. Deployment 6. Maintenance โดยลักษณะการดำเนินการของโมเดลนี้จะมีลักษณะการดำเนินการแบบเส้นตรง (Linear) โดยจะมีการดำเนินการให้เสร็จทีละขั้นตอนแบบ 100% จากนั้นค่อยเริ่มทำขั้นตอนถัดไป โดยผลลัพธ์ที่ได้จากการพัฒนาจะมุ่งเน้นประสิทธิภาพที่ตอบสนองกรอบแนวคิดที่ได้จากขั้นตอนแรก           (Planning and Analysis) เท่านั้นโดยไม่คำนึงถึง Change หรือ Initiative ที่ได้เข้ามาระหว่างการพัฒนาเนื่องจากเป็นโมเดลที่มีการพัฒนาแบบไม่ย้อนกลับ จึงทำให้การดำเนินการภายใต้โมเดล นี้มักที่การกำหนด Budget, Timeline และ Scope ไว้อย่างชัดเจนเพื่อเป็นตัววัดผลในการควบคุมประสิทธิภาพของผลลัพธ์ให้ตรงกับกรอบแนวคิดที่ได้จากขั้นตอนแรก

 

2. Agile model

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

 

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

 waterfall vs agile  Photo credit : www.forbes.com/advisor/business/agile-vs-waterfall-methodology

การเลือกใช้ Waterfall Model

Waterfall model มักเหมาะกับการพัฒนาที่มีกรอบแนวคิดที่ชัดเจนในมุมมองดังนี้

 1. การใช้งานของ User : เมื่อมั่นใจว่า ผลลัพธ์ของการพัฒนาผลิตภัณฑ์ซอฟต์แวร์นั้นจะสามารถตอบสนองต่อวัตถุประสงค์ของการใช้งานของ User ในทุก ๆ ช่วงเวลาระหว่างการพัฒนา

 2. ความเป็นไปได้ในเชิง Technical : เมื่อมั่นใจว่า Technology ที่เลือกใช้นั้น ในการพัฒนาจะสามารถตอบสนองต่อวัตถุประสงค์ ในทุก ๆ ช่วงเวลาระหว่างการพัฒนา

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

ตัวอย่างเช่น การพัฒนาระบบเก็บข้อมูลแบบดิจิตอลเพื่อแก้ปัญหาเฉพาะจุด



การเลือกใช้ Agile Model

Agile Model มักเหมาะกับการพัฒนาผลิตภัณฑ์ซอฟต์แวร์ในระยะยาว เนื่องจากการเปลี่ยนแปลงอันรวดเร็วของพฤติกรรมการใช้ผลิตภัณฑ์ซอฟต์แวร์ของผู้บริโภค การเจริญเติบโตของเทคโนโลยี และการเปลี่ยนแปลงของห่วงโซ่อุปทานของอุตสาหกรรม จึงทำให้ Agile Model สร้างความได้เปรียบในเชิงประสิทธิผล เนื่องจากการวัดผลแบบ Micro ใน Iteration สั้น ๆ จะส่งผลให้ภาคธุรกิจสามารถมั่นใจได้ว่า ผลลัพธ์ของผลิตภัณฑ์ซอฟต์แวร์นั้นจะตอบสนองต่อทั้งสามมุมมองในช่วงเวลานั้นอย่างแน่นอน นอกเหนือจากนั้น Agile model ยังสามารถสร้างความได้เปรียบในเชิงความยืดหยุ่นต่อการปรับเปลี่ยนผลิตภัณฑ์ซอฟต์แวร์ให้ตอบสนองต่อวัตถุประสงค์ที่เปลี่ยนแปลงในทุกๆช่วงเวลา ตัวอย่างเช่น การพัฒนา Digital Product หรือการพัฒนา Internal software ที่มีวัตถุประสงค์ในการดำเนินการในระยะยาว หรือมี Scale ที่ใหญ่ และอาศัยการพัฒนาที่ใช้เวลานาน

 

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

 

Written by
Senna Labs
Senna Labs

Subscribe to follow product news, latest in technology, solutions, and updates

- More than 120,000 people/day visit to read our blogs

Other articles for you

12
October, 2024
The Importance of Email Marketing Everyone Should Know
12 October, 2024
The Importance of Email Marketing Everyone Should Know
Email marketing is the best way to do marketing for your business. This summary doesn't come without any evidence. Let's see why it is: Everyone has internet access, also emails. Just using

By

4 mins read
English
12
October, 2024
How we built a corporate risk and compliance management application and mobile app in 8 weeks
12 October, 2024
How we built a corporate risk and compliance management application and mobile app in 8 weeks
One of our clients, a large international energy company, contacted us with an urgent project. The previous vendor that was lined up to implement the project had pulled out at

By

4 mins read
English
12
October, 2024
Preview email ด้วย Letter Opener
12 October, 2024
Preview email ด้วย Letter Opener
Letter Opener เป็น gem ของ ที่ใช้แสดงรูปแบบของอีเมลที่เราต้องการจะส่ง ก่อนที่จะส่งจริง เพื่อให้ง่ายและไวต่อการทดสอบ Let's Get started... Installation เพิ่ม Gem ใน Gemfile จากนั้นรัน `bundle install` # Gemfile group :development do gem "letter_opener" gem "letter_opener_web", "~> 1.0" end กำหนดการส่งอีเมลโดยใช้ letter_opener (กรณี Production จะใช้เป็น :smtp) # config/environments/development.rb config.action_mailer.delivery_method

By

3 mins read
Thai

Let’s build digital products that are
simply awesome !

We will get back to you within 24 hours!Go to contact us
Please tell us your ideas.
- Senna Labsmake it happy
Contact ball
Contact us bg 2
Contact us bg 4
Contact us bg 1
Ball leftBall rightBall leftBall right
Sennalabs gray logo28/11 Soi Ruamrudee, Lumphini, Pathumwan, Bangkok 10330+66 62 389 4599hello@sennalabs.com© 2022 Senna Labs Co., Ltd.All rights reserved.