แนวโน้มทิศทางของการพัฒนาซอฟแวร์ในปี 2018
นวัตกรรมคือหัวใจหลักของการขับเคลื่อนธุรกิจองค์กร ณ วันนี้ ซึ่งทำให้การพัฒนาซอฟแวร์เป็นส่วนที่มีความสำคัญอย่างยิ่ง เพราะเป็นครื่องมือที่ใช้ช่วยสร้างนวัตกรรมให้เกิดขึ้นได้จริง และใช้ในการสร้างความแตกต่างของในแต่ละธุรกิจให้มีความสามารถเหนือต่อคู่แข่ง ทำให้ทุกองค์กรในเวลานี้ให้ความสำคัญกับเรื่องธุรกิจซอฟแวร์เป็นอย่างยิ่ง ทางสถาบันวิจัย Forresterได้มองถึงแนวโน้มของเทคโนโลยีของการพัฒนาซอฟแวร์ เป็น สอง แนวทางใหญ่ๆ ที่คู่ขนานกัน แนวทางแรก ทิศทางของการพัฒนาก็ยังคงมีการปรับเปลี่ยนระบบซอฟแวร์ที่ใช้ในองค์กรให้ทันสมัยขึ้นอย่างต่อเนื่องโดยอยู่บนพื้นฐานของวิธีปฏิบัติและสถาปัตยกรรมที่ถูกต้องโดยยังคงเน้น Agile, DevOps, microservices และ automation อีกแนวทางคือการที่องค์กรเริ่มมองเทคโนโลยีใหม่ๆเข้ามาร่วมใช้ในการพัฒนาด้วย ไม่ว่าจะเป็น ทางด้านปัญญาประดิษฐ์(AI), serverless, augmented reality(AR) หรือ low-code โดยทั้งสองแนวทาง มีรายละเอียดดังนี้
Application Modernization หรือ การปรับการพัฒนาระบบงานในองค์กรเข้าสู่รูปแบบใหม่ที่ตอบสนองโจทย์ทางธุรกิจได้อย่างรวดเร็ว
เรื่อง automation ไม่ใช่เรื่องใหม่สำหรับทีมผู้พัฒนา แต่ในปี 2018 ทีมพัฒนาเริ่มมองถึงเทคโนโลยีปัญญาประดิษฐ์ (AI หรือ Machine Learning) เพื่อมาสร้าง devtest bots เพื่อนำมาเพิ่มประสิทธิภาพในการกระบวนการพัฒนา ยกตัวอย่างเช่น ในโปรเจคใหญ่ๆที่มีผู้พัฒนาและผู้ทดสอบระบบเป็นจำนวนมาก สามารถนำ AI เข้ามาช่วยในขั้นตอนของการ optimize และ validate requirements, test case โดยใช้ NLP bots ไปสแกนตรวจสอบ incomplete และ inconsistent requirements และ test cases หรืออาจให้ bots ไปช่วย automate การทำ unit test สำหรับผู้พัฒนา
แนวโน้มทาง vendor เริ่มมีการรวมเครื่องมือทางด้าน DevOps ต่างๆเข้ามาใช้ทำงานร่วมกันในรูปแบบ tool chain เพื่อให้ผู้ใช้สะดวกในการใช้งานมากขึ้น โดยมีการนำ open source software มาร่วมใช้งานด้วย เพื่อลดค่าใช้จ่าย นอกจากนี้ยังมีทางเลือกใช้ผ่านคลาวด์อีกด้วย
วิธีการแบบ Agile เป็นที่ยอมรับในองค์กรอย่างกว้างขวางมากขึ้นเรื่อยๆ แต่อาจจะไม่ได้รวดเร็วมาก แต่เป็นไปอย่างมีระบบในรูปแบบ ของ Agile-at-Scale โดยเริ่มจากการขยายจากทีมเล็กๆกระจายครอบคลุมไปในทุกๆส่วนที่เกี่ยวข้องทั้งหมดในองค์กร และวิธีการที่ใช้ทำงานให้อยู่บนพื้นฐานตามวิธีปฏิบัติที่เป็นที่ยอมรับกันโดยทั่วไปจาก framework อาทิเช่น XP, TDD, Kanban, Lean, SAFe, DevOps และ Scrum โดยพยายามเลือกส่วนที่เหมาะสมในแต่ละอย่างมาปรับให้เข้ากับวัฒนธรรมขององค์กร นอกเหนือจากนั้นควรพยายามปฏิบัติให้เป็นไปในทิศทางเดียวกับสถาปัตยกรรมที่นำมาใช้ด้วย
องค์กรให้ความสำคัญกับ DevOps ซึ่งเป็นตัวผลักดันการใช้ API และ microservice ในการสร้างบริการรองรับ digital transformation มากขึ้น โดยขั้นตอนหลักที่องค์กรเริ่มใช้ในการปรับเปลี่ยนคือ ขั้นตอนแรก การออกแบบสถาปัตยกรรมของระบบงาน ให้เป็นแบบ modular หรือเป็นฟังก์ชัน ที่อิสระจากกันตามแนวทางการออกแบบการบริการตามรูปแบบ microservice และ API เพื่อตอบสนองการเปลี่ยนแปลงแก้ไขได้เร็ว ขั้นตอนที่สอง คือการนำ automation เข้ามาใช้ครอบคลุมตั้งแต่ ต้นจนจบ (life cycle automation) ผ่านกระบวนการ DevOps หรือ Continuous Delivery
Emerging Technologies ที่เข้ามาเป็นทางเลือกสำหรับผู้พัฒนาซอฟแวร์มากขึ้น รวมทั้งยัง ทำให้บริษัทสามารถนำเทคโนโลยีใหม่ๆเหล่านี้มาสร้างโอกาสทางธุรกิจได้
ตำแหน่งงาน (job roles) บางอย่างมีแนวโน้มเริ่มค่อยๆหายไป อาทิเช่น project manager, manual tester, database administrator หรือ developer ที่มีทักษะในการพัฒนาหรือบริหารจัดการ application ในรูปแบบเดิมๆ แต่ก็จะมีตำแหน่งใหม่ๆเกิดขึ้นไม่ว่าจะเป็น product manager,scrum master, test engineer, data scientist เป็นต้น ดังนั้นทางบริษัทควรเริ่มวางแผนเรื่องการเทรนบุคลากรให้มีทักษะในการรองรับตำแหน่งใหม่ที่เกิดขึ้น หรืออาจใช้วิธี outsource เพื่อลดค่าใช้จ่าย
Serverless programming pattern น่าที่จะเริ่มเข้ามาเป็นทางเลือกในการพัฒนา application โดยเฉพาะเข้ามาใช้ในส่วน aggregation tier ในสถาปัตยกรรมของระบบที่ออกแบบ คือใช้ในส่วนการเชื่อมโยงจาก โปรแกรมที่ติดต่อกับผู้ใช้ซึ่งมาได้จากหลากหลายช่องทาง (multichannel) กับโปรแกรมที่ให้บริการข้อมูล ที่เรียกว่าเป็น service หรือ API โดยมีรูปแบบการพัฒนาในลักษณะสถาปัตยกรรม event-driven โดยทั่วไปสำหรับผู้ให้บริการในรูปแบบนี้มักเรียกการบริการว่า functions-as-a-service(FaaS) นั่นคือผู้พัฒนาไม่ต้องสนใจหรือคำนึงถึงทั้ง ฮาร์ดแวร์และซอฟแวร์ เพียงแต่โฟกัสที่ฟังก์ชันที่ต้องการกำหนดเรียกใช้ เพื่อเพิ่มความเร็วในการพัฒนา
Low-code development platform ก็จะเป็นอีกหนึ่งทางเลือกสำหรับผู้พัฒนา สำหรับโจทย์งานพิเศษเฉพาะทางบางอย่าง อาทิเช่น digital process automation,dynamic case management , content management, e-commerce เป็นต้นโดยลดการต้องเขียนโปรแกรม แต่เน้นที่ customization และ การใช้เครื่องมือพวก visual drag and drop โดยประโยชน์ที่ได้รับคือช่วยเพิ่มความเร็ว แต่มักผูกติดกับเครื่องมือของแต่ละ vendor สำหรับในตลาด ณวันนี้บริษัทที่สร้าง low-code platform ที่เป็นที่รู้จัก อาทิเช่น outsystems , mendix เป็นต้น
Augmented Reality(AR) มีแนวโน้มจะถูกนำมาใช้มากขึ้น เนื่องด้วยเครื่องมือที่ใช้งานง่ายและสะดวกในการพัฒนามากขึ้น อาทิเช่น ARkit จากค่าย apple หรือ ARCore integrated devkit จากค่าย Google จะเห็นว่าก่อนหน้านี้ AR ถูกนำมาใช้ส่วนมากในตลาดเกมส์ แต่คาดว่าในปีหน้านี้ AR จะเริ่มต้นเข้ามาใช้ในภาคธุรกิจอุตสาหกรรม โดยเสนอแนะว่าทางบริษัทน่าที่จะเริ่มมองการสร้าง prototype หรือต้นแบบ การนำ AR มาใช้เป็นส่วนหนึ่งในการเสริมงานบางประเภทในองค์กร หรือสร้าง user experience ใหม่ๆกะลูกค้าของตัวเอง
การก้าวเข้ายุค AI ก็มีส่วนทำให้การสร้างระบบติดต่อกับผู้ใช้ จะเป็นแนวทางพูดคุยโต้ตอบซึ่งใกล้เคียงกับมนุษย์มากขึ้น หรืออาจเรียกว่า conversational computing ซึ่งทำงานบนพื้นฐานเทคโนโลยีหลายด้านไม่ว่าจะเป็น voice recognition, Natural Language Processing(NLP), NLC (classification),NLG(generation) โดยที่สี่ยักษ์ใหญ่ทางด้านไอทีที่ให้บริการคลาวด์ ได้แก่ Amazon, Microsoft, Google และ IBM ต่างก็กระโดดเข้าร่วมในการให้พัฒนาบริการ ทั้งในส่วน voice และ chat bot ทำให้ทางบริษัทสามารถมีตัวเลือกหลากหลายในการนำเทคโนโลยีมาใช้ในการสร้างโอกาสทางธุรกิจใหม่ๆได้