Tech Startup ผู้อ่อนด้อย Skip Level 1 กระโดดไปเล่น Level 2 [DevOps Series]

เหตุการณ์สมมุติที่แต่งขึ้นเอง เหมือนว่ามันเคยเกิดขึ้นจริงๆ
PM: กลางดึกสงัดคืนหนึ่ง กรี๊งๆๆๆ … รับสาย …
DEV: พี่คับ …Notebook ผมพัง สงสัย Hard Disk เจ๊ง พรุ่งนี้ต้องส่งงานลูกค้าแล้ว ทำไงดีครับ
PM: เองก็หา Notebook ตัวใหม่ แล้วเอาโค้ดจาก Git มาทำต่อสิว่ะ
DEV: พี่คับ …คือว่า โปรเจคนี้ผมทำคนเดียวครับ ไม่ได้ทำร่วมกับคนอื่น ผมไม่ได้ใช้ Git ครับ แต่ผมทำเป็นไฟล์ Zip แยกไว้เป็นเวอร์ชั่นอย่างดีเลยครับ
PM: เอองั้นก็ดี เองก็เอาจาก Zip ไฟล์ตัวล่าสุดมาใช้ เขียนเพิ่มอีกนิดหน่อยน่าจะทัน
DEV: พี่คับ…เกรงว่าจะเขียนเพิ่มไม่ได้แล้ว ไฟล์ Zip ของผมอยู่ใน Notebook เหมือนกันครับ
PM: อ้าว…ซวยแล้วไง งั้นก็คงต้องเริ่มทำใหม่ เองยังไหวไหม พี่จะเลื่อนนัดลูกค้าให้ ครั้งต่อไปเองทำโปรเจคไหนต้องเอาเก็บไว้ใน Git ให้หมดนะ อย่าลืม
DEV: ได้คับพี่ แล้วไฟล์ Zip เอาไว้ไหนดีครับ
PM: ก็เองใช้ Git เก็บแล้ว จะใช้ไฟล์ Zip เก็บทำไมอีกว่ะ เฮ้อ… เบื่อจริงๆ วัวหายแล้วต้องมาล้อมคอกเนี่ย (น้ำเสียงเริ่มหงุดหงิด)
DEV:พี่คับ…ไม่ต้องไปล้อมคอกหรอก เสียเวลา ไหนๆ วัวมันก็หายไปแล้ว ทำใจนะครับ (เริ่มอยากจะกวนตีน)
PM: เปล่า.. กูล้อมเอาไว้กลัวควายหาย…หุหุ

ในกระบวนการของ DevOps จะพูดถึง Source Control เป็นลำดับแรก ซึ่งถือว่าเป็น Level 1 ที่ทุกคนจะต้องผ่านให้ได้เมื่อเริ่มการพัฒนาซอฟต์แวร์อย่างเป็นระบบ ตัว Source Control เองทำหน้าที่จัดเก็บ (Backup) และลำดับเวอร์ชั่น (Version) ของโค้ดให้เราได้ และนอกจากนั้นยังสามารถช่วยในการแบ่งงาน (Branch) จัดสรรงาน ให้งานดำเนินไปพร้อมเพรียงกันอย่างเป็นระบบ และสามารถรวมงานเข้าด้วยกัน (Merge) เมื่อทุกคนทำเสร็จแล้ว และที่สำคัญ Source Control เป็นต้นน้ำให้กับกระบวนการอื่นๆ อีกหลายอย่างใน DevOps เช่น Build Automation, Continueous Integration, Unit Test Automation เป็นต้น

ทรัพย์สินสำคัญอย่างหนึ่ง ของ Tech Startup เกือบทุกรายคือ Source Code เราจำเป็นต้องมีวิธีการดูแล บำรุงรักษามันเป็นอย่างดี โดยการหาเครื่องมือที่เหมาะสมกับลักษณะการทำงานของทีมพัฒนานั้นๆ ที่นิยมและเป็นที่รู้จักกันจะแบ่งเป็น 2 ประเภคใหญ่ คือ

  • Centralized Version Control เช่น TFVC, Subversion, StarTeam,Visual SourceSafe เป็นต้น
  • De-Centralized Version Control เช่น GITHub, Mercurial, Fossil เป็นต้น

ซึ่งแต่ละประเภทก็จะมีจุดเด่นที่แตกต่างกันออกไป ขึ้นอยู่กับทีมพัฒนาจะเลือกใช้แบบไหน ตัวที่ผลเลือกใช้ปกติก็คือ TFVS เพราะใช้งานง่ายมือใช้ร่วมกับ Visual Studio เพราะงานของผมส่วนใหญ๋จะเขียนบน Visual Studio เป็นหลัก ซึ่งมันสะดวกกว่ามากในการใช้งานและจัดการ Source Code

สำหรับมือใหม่ ในการเริ่มต้นใช้งานแรกๆ อาจจะรู้สึกลำบากหน่อย เพราะต้องเรียนรู้คำสั่งเบื้องต้นและวิธีการจัดการกรณีเกิดปัญหาต่างๆ ขึ้นกับโค้ด เช่น Merge Conflict เป็นต้น

ผมเคยมีประสบการณ์ในการจับนักศึกษาฝึกงานกว่า 50 คน มาสอนวิธีใช้งาน Source Control เพื่อเอาไปใช้ใน S/W Project  ผลปรากฏว่ามีเพียง 30% เท่านั้นที่เลือกใช้ Source Control ในการทำ S/W Project โดยคนที่ไม่ใช้ให้เหตุผลว่า มันไม่สะดวก, copy ลง flash drive แล้วส่งให้เพื่อนง่ายกว่า, zip file ส่งทาง Facebook เป็นต้น ตรงนี้ก็พิสูจน์ให้เห็นว่าคนส่วนใหญ่เลือกที่จะทำเพราะความเคยชินก่อน เอาง่ายเข้าไว้ก่อน ส่วนปัญหาค่อยตามไปแก้เอาทีหลัง ต้องให้วัวหายก่อนจึงล้อมคอก แต่สุดท้ายก็ได้ควายมาแทนวัว

หากคุณทำ Tech Startup อย่าละเลยเรื่อง Source Control ซึ่งเป็น Level 1 ของ DevOps ที่จะนำคุณไปสู่ Level ต่อๆ ไป

Leave a Reply

avatar
  Subscribe  
Notify of