• Bisutto
  • ranking : สมาชิกทั่วไป
  • วันที่สร้าง : 2007-08-18
  • จำนวนเรื่อง : 6
  • จำนวนผู้ชม : 3177
  • จำนวนผู้โหวต : 0
  • ส่ง msg :
Software Development with Open Source Technology and Project Management
บทความเกี่ยวกับการพัฒนาซอฟต์แวร์ระดับองค์กและการจัดการโครงการด้วย Open Source Technology
Permalink : http://www.oknation.net/blog/MrWisut
วันศุกร์ ที่ 21 กันยายน 2550
Refactor: เปลี่ยนรหัสจาก 2 หลักเป็น 4 หลัก อะไรมันจะนักหนา
Posted by Bisutto , ผู้อ่าน : 104 , 15:42:16 น.   | หมวดหมู่ : Refactor  
พิมพ์หน้านี้


คำขอของลูกค้า

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

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

จนกระทั่งเรื่องผ่านมาจนลูกค้าทวงถามว่าไปถึงไหน จนเรื่องนี้ถูกส่งมาให้ผม ผมจึงต้องถามทีมงานว่ามันเรื่องอะไร จึงได้รู้เรื่องทั้งหมด

                  ประเด็นของเรื่องคือว่าทำไมถึงโดนลูกค้าต่อว่า แล้วเราจะจัดการกับคำขอของลูกค้าอย่างไร เพื่อให้การทำงานราบรื่น ให้ความรู้สึกที่ดีด้วยกันทั้งสองฝ่าย

                 รายละเอียดผมได้วิเคราะห์และแจกแจงออกมาดังนี้

ระบบปัจจุบันมันทำงานอย่างไร

               เดิมระบบใช้รหัส 2 หลัก ซึ่งเป็นรหัสที่ใช้ร่วมกันทั้งระบบ ตั้งแต่บันทึกคำร้อง วินิจฉัย และสถิติ

               ต่อมาลูกค้าได้ขอปรับรหัสจาก 2 หลักเป็น 6 หลัก เพื่อใช้ในการคำนวนอัตราความรุนแรงและคำนวนมูลค่าเงินทดแทน ซึ่งรหัสนี้ใช้ในหน้าจอวินิจฉัย

               ต่อมาเนื่องจากพบว่ารหัส 6 หลักนั้นมีความไม่เหมาะสมในการตั้งรหัส จึงขอปรับปรุงใหม่เป็น 4 หลัก ซึ่งถูกนำไปใช้ที่ระบบสถิติ

               ปัจจุบันระบบ มีงานย่อยที่ทำงานเกี่ยวข้องกับเรื่องรหัสดังกล่าวคือ

1.      หน้าจอบันทึกคำร้องและหน้าจอเกี่ยวข้องรวมถึงรายงานต่างๆบนระบบเดิม มีจำนวนทั้งสิ้น 45 รายการ (37 หน้าจอ 8 รายงาน) ใช้รหัส 2 หลัก

2.      หน้าจอวินิจฉัย สำหรับใช้ในการวินิจฉัยเงินทดแทน ใช้รหัส 6 หลัก

3.      หน้าจอสถิติใช้รหัส 4 หลัก

               ความต้องการของลูกค้า ก็คือ ต้องการเปลี่ยนรหัสทั้งหมดมาใช้เป็น 4 หลักทุกระบบ

ปัญหามันมีอะไรบ้าง

ปัญหาที่เกิดขึ้นจากการเปลี่ยนแปลงรหัสไปเป็น 4 หลักนั้น มีดังต่อไปนี้

1.      รหัส 2 หลักเดิม ไม่สามารถแปลงเป็นรหัส 4 ได้ทั้งหมด เนื่องจากรหัส 2 หลักบางตัว ไม่สามารถตัดสินได้ว่าเทียบเท่ากับรหัส 4 หลักตัวไหน ทำให้เกิดข้อมูลที่ไม่ชัดเจนเกิดขึ้นระบบ ทำให้เกิดปัญหาในการแปลงข้อมูลไม่สามารถทำได้ด้วยระบบทั้งหมด

2.      หน้าจอและรายงานที่ใช้รหัส 2 หลักมีจำนวนมาก ไม่สามารถแก้ไขให้สามารถเปลี่ยนไปใช้รหัส 4 หลักได้ในเวลาอันสั้น

3.      รหัส 6 หลักกับรหัส 4 หลัก สัมพันธ์อย่างไร ความหมายของ 6 หลัก จะหายไปหากต้องแปลงกลับเป็น 4 หลัก ทำให้กระทบกับการคำนวนความสูญเสียและการคำนวนค่าทดแทน

วิธีแก้ไขปัญหามีอะไรบ้าง

การแก้ไขปัญหาดังกล่าวมีแนวทางดังต่อไปนี้

ปัญหาแรก การเชื่อมโยงข้อมูลจากรหัส 2 หลัก เป็น 4 หลัก ลูกค้าและทีมงานพัฒนาของผมต้องร่วมกันกำหนดวิธีการจับคู่ระหว่างรหัส 2 หลักเป็น 4 หลัก แบ่งเป็นขั้นตอนดังนี้

1.      ปรับรหัส 4 หลักให้เหมาะสมกับการใช้งานในระบบคอมพิวเตอร์ จากข้อมูลรหัส 4 หลัก ที่ลูกค้าเสนอมานั้นมีความไม่เหมาะสมในการใช้งาน ทีมงานของบริษัทต้องช่วยเสนอแนะเพิ่มเติมในการปรับรหัสเพื่อมีรูปแบบที่เหมาะสมและสามารถใช้งานได้ในระบบคอมพิวเตอร์ ตัวอย่างเช่น รหัส 2 หลัก บ้าง 3 หลักบ้างไม่ควรใช้ ให้ใช้เป็นรหัส 4 หลักทั้งหมดเพื่อให้รหัสมีความแน่นอน ง่ายต่อการจำและใช้งาน

2.      เชื่อมโยงข้อมูลที่สามารถทำได้ รหัสที่สามารถจับคู่ได้ทันทีจาก 2 หลักเป็น 4 หลักทาง ทีมงานจะกำหนดการแปลงข้อมูลรหัส 4 หลักให้สำหรับรหัส 2 หลักที่สามารถจับคู่ได้ทันที

3.      เชื่อมโยงข้อมูลที่สามารถอนุโลมได้ ส่วนรหัสที่ไม่สามารถจับคู่ได้ หากสามารถอนุโลมได้ว่าสามารถจับคู่จากรหัส 2 หลักเป็น 4 หลักใดได้ ให้ทางลูกค้าเป็นผู้ระบุ ทีมงานจะกำหนดการเพิ่มข้อมูลรหัส 4 หลักให้สำหรับรหัส 2 หลักที่สามารถอนุโลมทันทีที่ลูกค้าแจ้งมา

4.      ข้อมูลที่เชื่อมโยงไม่ได้ สำหรับข้อมูลมี่ใช้รหัสที่เชื่อมโยงไม่ได้ ทีมงานจะสืบค้นข้อมูลดังกล่าวเพื่อส่งให้เจ้าหน้าที่เจ้าของข้อมูลไปทำการแก้ไขกันเอง

ปัญหาทีสอง หน้าจอและรายงานที่เกี่ยวข้องจากรหัส 2 หลักเดิมมาเป็น 4 หลักมีแนวทางแก้ไขดังต่อไปนี้

1.      ระดับข้อมูล จะทำการเพิ่มคอลัมน์ในฐานข้อมูลเพื่อให้เก็บรหัส 4 หลักควบคู่กับรหัส 2 หลักไปด้วย โดยในขั้นตอนจับคู่ข้อมูลจากรหัส 2 หลักเป็น 4 หลัก ก็คือการเพิ่มข้อมูลรหัส 4 หลักประกบไปกับรหัส 2 หลัก สำหรับข้อมูลเดิมที่มีอยู่(กว่า 3 ล้านรายการ) การจับคู่ที่ทำได้ (ตามหลักข้อ 2 และ 3 ที่กล่าวข้างต้น) ทีมงานจะเขียนโปรแกรมทำให้ทันที ส่วนที่จับคู่ไม่ได้ จะแจกแจงออกมาให้เจ้าหน้าที่เจ้าของข้อมูลเข้าไปทำการระบุด้วยตัวเอง

2.      หน้าจอและรายงาน เนื่องจากหน้าจอบนระบบมีจำนวนมาก ไม่สามารถที่จะเปลี่ยนแปลงได้ทันที จำเป็นต้องทยอยแก้ไข ซึ่งมีแนวทางดังนี้

a.      ปรับปรุงหน้าจอบันทึกคำร้องให้สามารถบันทึกได้ทั้งรหัส 4 หลักและ 2 หลัก โดยระบุรหัส 4 หลักก่อน และระบบจะแสดงรหัส 2 หลักที่สัมพันธ์กันให้ กรณีที่ไม่สามารถแปลงได้ให้เจ้าหน้าที่ระบุรหัส 2 หลักด้วย ระบบจะจัดเก็บข้อมูลทั้ง 2 รหัสไว้ในระบบ การทำเช่นนี้เพื่อให้ระบบมีข้อมูลทั้ง 2 แบบเพื่อประโยชน์ในช่วงการโอนย้ายระบบ

b.      ให้ลูกค้าจัดลำดับความสำคัญของหน้าจอและรายงาน เพื่อให้บริษัททำการปรับปรุงระบบตามลำดับความสำคัญ โดยหน้าจอหรือรายงานไหนที่ปรับปรุงแล้วจะใช้รหัส 4 หลักในการทำงาน ส่วนของเดิมที่ยังไม่ได้เปลี่ยน ยังคงใช้ข้อมูลรหัส 2 หลักต่อไป ทำจนกว่าทั้งหน้าจอและรายงานจะเปลี่ยนหมด

c.      เมื่อเปลี่ยนจนครบแล้ว ทำการเปลี่ยนหน้าจอบันทึกคำร้องให้มีเฉพาะรหัส 4 หลัก ยกเลิกการใช้รหัส 2 หลัก

ปัญหาที่สาม รหัส 6 หลัก และ 4 หลัก ปัจจุบันมีการใช้รหัส 6 หลักในหน้าจอวินิจฉัย ซึ่งใช้เป็นสูตรคำนวนอัตราการสูญเสีย เพื่อคำนวนเงินทดแทน ปัจจุบันมิได้นำมาใช้สัมพันธ์กับรหัส 4 หลัก ในทางระบบ สามารถคงไว้อยู่ได้ แต่หากต้องการเปลี่ยนให้เข้ากับรหัส 4 หลัก พร้อมทั้งรหัสเพิ่มเติมเพื่อให้ได้ข้อมูลสมบูรณ์ จะเป็นต้องกำหนดหลักเกณฑ์เพื่อใช้ในการปรับปรุงระบบต่อไป

สุดท้าย

            หลังจากที่แจกแจงออกมาเรียบร้อย ก็เอาข้อเท็จจริงทั้งหมดอธิบายให้ลูกค้าฟัง ซึ่งต้องให้เกิดความร่วมมือกันระหว่างเรากับลูกค้า เราสรุปความต้องการของเขา ผลกระทบที่จะเกิดขึ้น และแนวทางในการแก้ไข เมื่อลูกค้าได้รับทราบข้อเท็จจริง กระบวนการปรับเข้าหากันจะง่ายขึ้น เรากำหนดความยากง่ายและระยะเวลาที่ต้องทำแต่ละงาน ลูกค้ากำหนดความสำคัญของแต่ละงาน แล้วมาตกลงร่วมกันว่าจะทำอย่างไหนก่อนหลัง โดยคำนึงถึงความสำคัญและเวลาที่ต้องใช้
          นี้คือหลักหนึ่งใน Agile Management และ XP Practice ที่ต้องมีการสื่อสารกันระหว่างทีมงานและลูกค้าผู้กำหนดความต้องการ


แสดงความคิดเห็น

  เข้าสู่ระบบ   |   สมัครสมาชิก
ชื่อ:  
อีเมล์:  
เว็บไซต์:  
ความคิดเห็น:  
   

ถึง บล็อกเกอร์ ทุกท่าน โปรดอ่าน
   ด้วยทาง บริษัท จีเอ็มเอ็ม แกรมมี่ จำกัด (มหาชน) ได้ติดต่อขอความร่วมมือ มายังเว็บไซต์และเว็บบล็อกต่าง ๆ รวมไปถึงเว็บบล็อก OKnation ห้ามให้มีการเผยแพร่ผลงานอันมีลิขสิทธิ์ ของบริษัท จีเอ็มเอ็ม แกรมมี่ฯ บนเว็บ blog โดยกำหนดขอบเขตของสิ่งที่ห้ามทำ และสามารถทำได้ ดังนี้
ห้ามทำ
- การใส่ผลงานเพลงต้นฉบับให้ฟัง ทั้งแบบควบคุมเพลงได้ หรือซ่อนเป็นพื้นหลัง และทั้งที่อยู่ใน server ของคุณเอง หรือ copy code คนอื่นมาใช้
- การเผยแพร่ file ให้ download ทั้งที่อยู่ใน server ของคุณเอง หรือฝากไว้ server คนอื่น
สามารถทำได้
- เผยแพร่เนื้อเพลง ต้องระบุชื่อเพลงและชื่อผู้ร้องให้ชัดเจน
- การใส่เพลงที่ร้องไว้เอง ต้องระบุชื่อผู้ร้องต้นฉบับให้ชัดเจน
จึงเรียนมาเพื่อโปรดปฎิบัติตาม มิเช่นนั้นทางบริษัท จีเอ็มเอ็ม แกรมมี่ฯ จะให้ฝ่ายดูแลลิขสิทธิ์ ดำเนินการเอาผิดกับท่านตามกฎหมายละเมิดลิขสิทธิ์
OKNATION



กฎกติกาการเขียนเรื่องและแสดงความคิดเห็น
1 การเขียน หรือแสดงความคิดเห็นใด ๆ ต้องไม่หมิ่นเหม่ หรือกระทบต่อสถาบันชาติ ศาสนา และพระมหากษัตริย์ หรือกระทบต่อความมั่นคงของชาติ
2. ไม่ใช้ถ้อยคำหยาบคาย ดูหมิ่น ส่อเสียด ให้ร้ายผู้อื่นในทางเสียหาย หรือสร้างความแตกแยกในสังคม กับทั้งไม่มีภาพ วิดีโอคลิป หรือถ้อยคำลามก อนาจาร
3. ความขัดแย้งส่วนตัวที่เกิดจากการเขียนเรื่อง แสดงความคิดเห็น หรือในกล่องรับส่งข้อความ (หลังไมค์) ต้องไม่นำมาโพสหรือขยายความต่อในบล็อก และการโพสเรื่องส่วนตัว และการแสดงความคิดเห็น ต้องใช้ภาษาที่สุภาพเท่านั้น
4. พิจารณาเนื้อหาที่จะโพสก่อนเผยแพร่ให้รอบคอบ ว่าจะไม่เป็นการละเมิดกฎหมายใดใด และปิดคอมเมนต์หากจำเป็นโดยเฉพาะเรื่องที่มีเนื้อหาพาดพิงสถาบัน
5.การนำเรื่อง ภาพ หรือคลิปวิดีโอ ที่มิใช่ของตนเองมาลงในบล็อก ควรอ้างอิงแหล่งที่มา และ หลีกเลี่ยงการเผยแพร่สิ่งที่ละเมิดลิขสิทธิ์ ไม่ว่าจะเป็นรูปแบบหรือวิธีการใดก็ตาม 6. เนื้อหาและความคิดเห็นในบล็อก ไม่เกี่ยวข้องกับทีมงานผู้ดำเนินการจัดทำเว็บไซต์ โดยถือเป็นความรับผิดชอบทางกฎหมายเป็นการส่วนตัวของสมาชิก
คลิ้กอ่านเงื่อนไขทั้งหมดที่นี่"
OKnation ขอสงวนสิทธิ์ในการปิดบล็อก ลบเนื้อหาและความคิดเห็น ที่ขัดต่อความดังกล่าวข้างต้น โดยไม่ต้องชี้แจงเหตุผลใดๆ ต่อเจ้าของบล็อกและเจ้าของความคิดเห็นนั้นๆ
   

กลับไปหน้าที่แล้ว กลับด้านบน

<< กันยายน 2007 >>
อา พฤ
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30