การทำซอต์แวร์โปรเจคยุคปัจจุบัน

🤔 เดี๋ยวนี้การทำซอฟต์แวร์โปรเจคมันเป็นยังไงบ้างนะ

การทำซอต์แวร์โปรเจคยุคปัจจุบัน

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

ดังนั้นวงจรการทำซอฟต์แวร์ของเรานั้น จะต้องเปลี่ยนทุกอย่างที่เคยทำด้วยมือ (Manual) ให้กลายเป็นของที่ทำได้เองอัตโนมัติ (Automation ) ให้มากที่สุดเท่าที่จะทำได้ เพื่อให้เราสามารถทดสอบมันซ้ำๆได้โดยไม่ต้องรอทีมเทส หรือแม้กระทั้งการทำ Build pipeline เพื่อให้ได้ Continuous Integration (CI) และ Continuous Deployment (CD) มานั่นเอง เพราะทุกวันนี้ตัวงานจริงๆมันจะต้องมี Environments เต็มไปหมดเลย เช่น สภาพแวดล้อมที่เอาไว้ให้ developer ทดสอบ (Development Environment) สภาพแวดล้อมสำหรับทีมทดสอบ (Test Environment) สภาพแวดล้อมก่อนเอาขึ้นใช้งานจริง (Staging Environment) และ สภาพแวดล้อมของงานจริงๆ (Production Environment) เห็นไหมแค่ไล่ environments ออกมาก็ปวดกบาลนะ

ลองคิดเล่นๆดูนะว่า ถ้าเราจะต้องมานั่งเอา product ไปไล่ deploy ลงในแต่ละ environment ด้วยมือแต่ละตัวแล้วล่ะก็ มันจะวุ่นวายขนาดไหน? แล้วถ้าเกิดเอางานขึ้นผิดตัวล่ะ? เช่น เอางานที่พึ่งเขียนสดๆที่ยังไม่ผ่านการเทสไปขึ้น production ไรงี้ (มันก็น่าจะสนุกดีนะ 😂) ดังนั้นเราจงค่อยๆเปลี่ยนสิ่งต่างๆที่เราเคยทำแบบ Manual ให้มันค่อยๆกลายมาเป็น Automation ให้ได้มากที่สุดนั่นเองครัช

แนะนำให้ลอง หากใครที่กำลังหาเครื่องมือทำ Build pipeline หรือ ตัววางแผนงานต่างๆอยู่ ผมอยากให้ลองใช้ Azure DevOps ดูนะ เพราะมันมีทุกอย่างที่เราอยากได้อยู่ในนั้นเลย ้เช่น Git Repository, CI/CD, Kanban board, รองรับการทำงานแบบ Agile และ Agile Scrum ด้วย หรือเราอยากจะ custom ให้เหมาะกับทีมตัวเองก็ได้นะ และแจ่มฝุดๆเพราะมันรองรับทุกภาษาสมัยใหม่น่าจะครอบคลุมทุกตัวหมดเบย ส่วนถ้าอยากลองให้กดดูได้จากลิงค์ด้านล่างนี้เบย Microsoft Azure DevOps Services