เราต่างรู้ดี…ปัญหาของการพัฒนา Software หรือ New Product Development หลักๆ มีจุดเริ่มต้นจากความล่าช้าในการรับรู้ปัญหาของภาพรวมโปรเจคนั้นๆ ที่อาจเกิดจากฝั่งของลูกค้าว่าด้วยเรื่อง “สิ่งที่คิดอาจไม่ตรงกับสิ่งที่อยากได้” หรือฝั่งนักพัฒนากับปัญหาเรื่อง “สิ่งที่พัฒนาไม่ตรงกับโจทย์หรือไม่ตอบสนองความต้องการที่แท้จริงของลูกค้า” โดยทั่วไปทางออกแรกๆ ที่มักถูกนำมาใช้คือการ “เลือก” จำกัดอย่างใดอย่างหนึ่งระหว่าง Fix Scope กับ Fix Time เพื่อสร้างขอบข่ายความร่วมมือที่ชัดเจนระหว่าง Developer และ Enterprise อันจะนำไปสู่การสร้างสรรค์โซลูชันหรือซอฟต์แวร์ที่ใกล้เคียงกับความต้องการของผู้ใช้งานมากที่สุด ซึ่งนอกเหนือจากการ “เลือก” อาจารย์สมเกียรติ ปุ๋ยสูงเนิน ยังแนะนำแนวโน้มเกี่ยวกับ Software Development ไว้อย่างน่าสนใจจากการขึ้นบรรยายในงาน IT Trends 2018 Asia’s Rising Power ที่จัดโดย IMC Institute ร่วมกับ Optimus
Continuous delivery คิดค้น ทดสอบ ส่งมอบ
แม้ว่าการเลือก Fix Scope หรือ Fix Time จะสร้างกรอบการทำงานให้กับทั้ง 2 ฝ่าย แต่เรื่องของซอฟต์แวร์ต้องขึ้นอยู่กับความพึงพอใจของผู้ใช้งานจริงเป็นหลัก ซึ่งเป็นไปได้ยากมากที่การพัฒนาซอฟต์แวร์จะสมบูรณ์ถูกใจลูกค้าแบบ 100% ได้ภายในครั้งแรก ทำให้แนวทางการพัฒนาซอฟต์แวร์ในปัจจุบันปรับเข้าสู่โหมดการประยุกต์ใช้หลักการ Continuous delivery ที่มีเป้าหมายให้ลูกค้าหรือผู้ใช้งานจริงมีส่วนร่วมในลักษณะ working software แบบอัตโนมัติ แนวทางนี้จะทำให้ลูกค้าสามารถทดลองใช้งานได้ทันที โดยฝั่งของนักพัฒนารอรับ feedback แล้วนำมาประเมินสมมุติฐาน (Hypothesis) ของตนเองว่าผ่านการทดสอบ (Validated) หรือไม่ หากไม่ตรงตามความต้องการก็สามารถปรับปรุงแก้ไขได้อย่างรวดเร็ว ส่งผลดีต่อคุณภาพของ requirement และคุณภาพของขั้นตอนการส่งมอบงานโดยเฉพาะกรณี Fix time แน่นอนการทำงานนั้นจำเป็นต้องพัฒนาอย่างต่อเนื่อง โดยสามารถหยิบเอาแนวคิดการทำธุรกิจยุคใหม่แบบ Lean Startup ที่บุกเบิกโดย Eric Ries มาประยุกต์ใช้ เริ่มจากการคิดค้น ตั้งสมมุติฐาน พัฒนาโซลูชันและการออกไปทดลองกับสถานที่จริงเพื่อเก็บผลการทดลองมาพัฒนาประสิทธิภาพที่ดีที่สุด
Microservice Architecture ขนาดที่เล็กกว่า ทำให้มีอิสระต่อกันมากกว่า
จากจุดเด่นของ Microservice ทั้งเรื่องของขนาดที่เล็กกว่าและแต่ละ service มีความเป็นอิสระต่อกัน ในขณะที่แต่ละ service ของ Service Oriented Architecture (SOA) ไม่เป็นอิสระต่อกัน ทำให้ Microservice ถูกจัดเป็นหนึ่งใน Software Development Trends 2018 ตามคำบอกเล่าของอาจารย์สมเกียรติ ปุ๋ยสูงเนิน สะท้อนให้เห็นจุดเด่นหลายมิติจากการทำงานของ Microservice เริ่มจากเรื่องของขอบเขตปัญหาที่เล็ก และการแยกการทำงานออกเป็นเรื่องๆ อาทิเช่น ระบบการฝากเงินควรทำแต่ฝากเงินเท่านั้น ส่วนการถอน โอน ให้แยกออกจากกัน ซึ่งจะส่งผลให้จำนวนบรรทัดของ code น้อยลงไปด้วยเช่นกัน และหากจำนวนบรรทัดเพิ่มขึ้นประมาณ 500-1,000 บรรทัด ควรต้องแยกออกเป็น service ย่อยๆ ที่สำคัญแต่ละ microservice ควรเป็นแบบ standalone สามารถ build , deploy และทำงานอย่างอิสระไม่ขึ้นอยู่กับใคร ส่งผลให้ service นั้นๆ ทดสอบได้ง่าย integrate ได้ง่าย แน่นอนว่าจุดเด่นดังกล่าว สามารถช่วยลดความซับซ้อนของระบบ รวมทั้งทำให้รูปแบบการ deploy เปลี่ยนไปในรูปแบบของการ deploy service เล็กๆ หลาย service แทน ส่งผลให้ความเสี่ยงเรื่อง deploy ลดลง ที่สำคัญสามารถเปลี่ยนแปลงเทคโนโลยีได้ง่ายด้วยเช่นกัน ทั้งนี้ระบบแบบ Microservice จะสร้างประโยชน์ให้เกิดขึ้นจริงได้ ก็ต่อเมื่อมีแนวทางการเก็บข้อมูลที่เหมาะสม ตั้งแต่การออกแบบว่าข้อมูลสำคัญควรอยู่ service ไหนบ้าง หรือการกำหนดที่เก็บข้อมูล (Database) ควรวางโครงสร้างข้อมูล (Database Schema) ให้แยกออกจากกันในแต่ละ service เพื่อไม่ให้ service อื่นมาเรียกใช้งานได้
ขอบคุณข้อมูล: IT Trends 2018 Asia’s Rising Power ,Tech Blog somkiat.cc