Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

อะไรคือตัวการสำคัญที่ขัดขวางการทำ CI/CD

$
0
0

แนวคิด Continuous Integration และ Continuous Delivery/Deployment นั้น เป็นสิ่งที่สำคัญมาก ๆ สำหรับการพัฒนา software มันไม่ใช่เรื่องของ process เพียงอย่างเดียว มันไม่ใช่เรื่องของ tool เพียงอย่างเดียว มันไม่ใช่เรื่องของ culture เพียงอย่างเดียว มันไม่ใช่เรื่องของทีมพัฒนาเพียงอย่างเดียว แต่มันคือเรื่องของการเปลี่ยนจาก requirement มาเป็นสิ่งที่อยู่ในคนใช้หรือสร้างคุณค่าให้กับลูกค้าและบริษัทนั้น ๆ อย่างต่อเนื่องและมีคุณภาพ

แต่ใช่ว่าจะสร้างระบบต่าง ๆ เหล่านี้ขึ้นมาได้ง่าย ๆ

เพราะว่า จะทำไปทำไม ในเมื่อการทำงานแบบเดิม ๆ มันก็ได้เหมือนกัน แถมสิ่งที่ทำอยู่นั้น ก็ทำ ๆ ตามกันมาอยู่แล้ว ดังนั้นถ้าจะผิดมันก็ผิดกันทั้งหมด ไม่ได้โดนเล่นงานอยู่เพียงคนเดียว !!
แต่ถ้าเปลี่ยนวิธีการทำงานใหม่ เมื่อผลออกมามันไม่ดี แน่นอนว่า โดนเล่นงานอยู่คนเดียวแน่นอน ดังนั้น จะทำสิ่งใหม่ ๆ หรือ ปรับปรุงการทำงานไปทำไมกัน !!

การเริ่มต้น น่าจะเป็นเรื่องของให้ความรู้ความเข้าใจเรื่อง CI/CD ก่อน

มันคือการปรับเปลี่ยนแนวคิดและวัฒนธรรมขององค์กรกันเลย ยกตัวอย่างเช่น
  • การจัด session ต่าง ๆ เพื่ออธิบายและแนะนำ พร้อมยกตัวอย่างระบบ เพื่อให้เห้นประโยชน์และคุณค่า
  • มีการพูดคุยจากกลุ่มคนหรือบริษัทต่าง ๆ เพื่อหยิบยก real-world case ให้เห็น
  • มีการจัด workshop หรือ working group สำหรับให้แต่ละกลุ่มมาพูดคุยกัน แบ่งปันความรู้ และ ช่วยเหลือซึ่งกันและกัน
จากนั้นก็เริ่มทำการปรับปรุงด้วยการใช้คำถามที่น่าสนใจ ยกตัวอย่างเช่น

Development server สามารถสร้างใหม่ได้รวดเร็วเพียงใด ?

ถ้าช้าก็ทำให้การพัฒนาช้าไปด้วย ใช่ไหม ? ถ้ามันช้า ลองสรุปหน่อยสิว่า ขั้นตอนการทำงานมีอะไรบ้าง ? ต้องทำ manual process อะไรบ้าง ? ต้องทำการ configuration อะไรบ้าง ? เร็วที่สุดต้องใช้เวลากี่ชั่วโมง กี่วัน กี่สัปดาห์ ?

ทดสอบระบบทั้งหมดได้เร็วเพียงใด ?

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

แต่ละ feature ทำการ deploy และ release เร็วเพียงใด ?

ทั้ง feature ใหม่ ๆ ทั้งการแก้ไข bug เวลาในการ deploy และ release ช้าลงเรื่อย ๆ จำนวน feature ที่มากขึ้นหรือไม่ ? มี feature อะไรที่ไม่ใช้งาน แต่ต้อง maintain บ้าง ?

ลองตอบคำถามเหล่านี้กันดู

น่าจะพอทำให้เห็นว่า เราต้องทำการปรับปรุงอะไรบ้าง ? การที่รู้ว่าเรามีปัญหา ขาดตกบกพร่องอะไร ฦ มันก็เป็นจุดเริ่มต้นที่ดีของการปรับปรุงแล้วนะ จากนั้นก็ลงมือเพื่อแก้ไขปัญหาและปรับปรุงกันอย่างต่อเนื่อง ขอให้สนุกกับการ coding ครับ

Viewing all articles
Browse latest Browse all 1997

Trending Articles