Tuesday, July 13, 2010
Version Control
การทำ version control กับทุก artifact นั้น เป็นงานที่เปลืองแรงและเสียเวลามาก ต้องอาศัยคนกำหนด standard และทำเอกสารมากมาย ซึ่งรายละเอียดจะว่าในหัวข้อของ SCM ต่อไป แต่ถ้าใช้ tool แล้ว tool เหล่านั้นจะทำเรื่องต่างๆ ให้เราอัดตโนมัติ เช่น การกำหนด ID ของ artifact, การกำหนดเลข version, การ log คนที่แก้ไข, history เป็นต้น Software Configuration Management นิยามของ software configuration management ในหนังสือ Software Engineering8th Edition ของ Ian Sommerville ระบุไว้ว่า “The process of identifying, organizing and controlling changes to the software during development and maintenance…” ถ้าแปลเป็นไทยก็คือ เป็นกระบวนการที่จะกำหนด จัดการ และความความเปลี่ยนแปลงต่างๆ ที่เกิดขึ้นกับ software ทั้งในระหว่างการพัฒนารวบไปถึงช่วงเวลา M/A ด้วย นั่นคือ แม้ว่าการพัฒนาจะจบไปแล้วแต่อยู่ใน phase ของการ MA การทำ change management ก็ยังคงต้องทำต่อไป เพราะ software ที่ไม่เกิดการเปลี่ยนแปลงเลย ก็คือ software ที่ไม่ได้ใช้ หรือเตรียมที่จะเลิกใช้แล้ว เพราะไม่มีอะไรให้ต่อยอดอีก Configuration Item ในการทำ SCM นั้น การทำ version control ไม่ได้ทำเฉพาะกับ file หรือ source code เท่านั้น แต่อะไรที่เกิดขึ้นใน project แล้วถือว่าเป็นส่วนประกอบใน project นั้นแล้ว จะต้องทำ version control หมด เช่น issue ที่เกิดขึ้น (bug, discussion, etc.) ตัวอย่างเอกสารจากลูกค้า, screen ตัวอย่างจากโปรแกรมเก่า เป็นต้น สิ่งเหล่านี้เราเรียกรวมๆ ว่า Configuration Item ซึ่งเมื่อมีการ update ก็จะต้องมี version และ history, ใครเป็นคนแก้ แก้ทำไม, เป็นต้น