วันอาทิตย์ที่ ๒๕ พฤศจิกายน พ.ศ. ๒๕๕๐

วิธีแก้ปัญหา illigal post time

จากปัญหาที่นักเขียนบล็อกทั้งหลายของ blogger.com มีปัญหามาร่วม สองสัปดาห์ผมได้ทดลองแก้ปัญหา โดยเข้าไปดูการถามตอบ ใน http://groups.google.com/group/blogger/.... มีผู้แนะนำให้เปลี่ยนที่ภาษาไทย เป็นภาษาอังกฤษ

แต่ของผมได้ทดลองทำตามขั้นตอนตามด้านล่างนี้ ก็ใช้ได้

  1. เข้าไปบล็อกของเรา ให้คลิกที่ ตั้งค่า หรือ setting
  2. คลิกที่แถบเครื่องมือ การจัดรูปแบบ
  3. ที่รูปแบบเวลา ให้เลือก เช่น 11:16 น. (ไม่มีก่อนเที่ยงหรือหลังเที่ยง)
  4. ที่ภาษา ให้เลือก ไทย (ประเทศไทย ,TH)
  5. คลิกบันทึกการตั้งค่า

เพียงแค่นี้ ก็ใช้ได้แล้ว ทดลองทำดูครับ

วันอาทิตย์ที่ ๑๑ พฤศจิกายน พ.ศ. ๒๕๕๐

Taweerat Software Development Model

ขึ้นหัวข้อเรื่องนี้ หลายคนอ่านแล้วไม่คุ้น ไม่เคยได้ยินมาก่อน ทฤษฎีใหม่หรือของเก่าที่ยังไม่ได้เรียนมาหรืออย่างไร โปรดอย่าพยายามค้นหาที่มาให้เสียเวลา

TSD Model เป็นชื่อโมเดลที่ตั้งขึ้นมาเพื่อใช้ในการร่วมอภิปราย ถกประเด็นกับเพื่อน ๆ ในกลุ่มเพื่อใช้ในการสอบในสัปดาห์หน้า(11-11-50) ซึ่งทุกคนในกลุ่มต้องมีโมเดลของตนมาเสนอเพื่อคัดเลือกว่าโมเดลใดเหมาะสมกับสถานการณ์นั้น สำหรับแนวคิดโมเดลที่จะนำเสนอมีลำดับดังนี้

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

Analyse
เป็นการวิเคราะห์ หาวิธีแก้ปัญหาตามความต้องการของลูกค้า ในขั้นตอนนี้ต้องมีลูกค้าเข้ามาเป็นส่วนร่วม ร่วมกับทีมพัฒนามาระดมสมอง ผู้ใช้สามารถเพิ่มเติม หรือแก้ไขได้เรื่อย ๆ ในขั้นตอนนี้จะต้องคิดถึงความเสี่ยงที่อาจเกิดขึ้น เช่น งานอาจช้าออกไป มีสิ่งแปรผันที่ไม่คาดคิดอาจเกิดขึ้น ในโมเดลอื่น ๆ จะมีการการวัดค่าออกมาทางสถิติได้มาก่อนการ analyse แต่โมเดลนี้จะมีการ measurement พร้อมกับ analyse แต่ไม่เน้นผลลัพธ์ที่ได้ว่าอยู่ในระดับใด แต่จะเน้นที่ความพอใจของลูกค้าสูงสุด

Improvement
กระบวนการทำระบบงานให้ดียิ่งขึ้นไป เน้นการทำซ้ำ (Iteration) ในแต่ละกระบวนการ และประเมินความพึงพอใจของ external customer ในขั้นตอนนี้ด้วย

Control
เป็นกระบวนการควบคุมกระบวนการให้เป็นไปอย่างรวดเร็ว ถูกต้อง เน้นดูที่ timeline ที่ได้กำหนดไว้ในขั้นตอน define ว่าเป็นไปตามนั้นหรือไม่ แต่ถ้านำไปใช้กับระบบงานใหญ่จะต้องควบคุมการใช้งานจาก ทั้ง internal customer และ external customer ด้วย

ขั้นตอนของทีมการพัฒนาระบบ ต้องมีการดำเนินงานตามขั้นตอนดังนี้

1. นำเอาการวิเคราะห์และกระบวนการทั้งหมดในขั้นต้นมาแบ่งงานออกเป็น Module
2. แบ่งโมดูลให้ทีมงานพัฒนาในรูปแบบของ Agile ใช้เทคนิคของ piar programmming หรือทำงานเป็นคู่ คนหนึ่งลงมือเขียนคำสั่ง อีกคน
3. เมื่อสำเร็จแต่ละโมดูลนำมาทดสอบใหญ่ และส่งมอบ ทำแบบประเมิน external customer

สรุป
Taweerat Software Development Model นำเอาโมเดลของ Six sigma มาบูรณาการกับ Agile มาใช้นั่นเอง (รอการปรับปรุงรายละเอียดเนื้อหา อย่าเพิ่งเชื่อนำไปใช้หรืออ้างอิง)

วันอาทิตย์ที่ ๔ พฤศจิกายน พ.ศ. ๒๕๕๐

Web 2.1 Framework ตามแนวคิดของผม

ในปัจจุบันมีการพูดถึง Web 2.0 ซึ่งบอกว่าเป็นเทคโนโลยีตามยุคสมัยที่เปลี่ยนแปลง ซึ่งมิได้มีเทคโนโลยีที่เป็นรูปร่างที่สามารถเห็นได้ เช่น เว็บในอดีตมักจะมี e-mail, web board, chat MSN ICQ อ่านข่าวและค้นหาความรู้ เป็นต้น แต่ปัจจุบันเราสามารถทำอะไรได้หลายอย่างมากขึ้นบนเว็บ เช่น ดูทีวี ดูหนัง ฟังเพลง อ่านหนังสือเรียน สั่งซื้อสินค้า ฯลฯ แทบจะพูดได้ว่าเป็นการดำรงชีวิตบนโลกเสมือนบนหน้าจอทีเดียว ด้วยเหตุนี้เขาจึงได้ให้กรอบความคิดด้านเว็บชนิดนี้ว่า Web 2.0 ในบทความนี้จะสร้างแนวคิดกรอบความคิดของ Web 2.1 ไว้ล่วงหน้าถ้าหากว่าใครสนใจจะพัฒนาเว็บแนวนี้
กรอบความคิด Web 2.1 ประกอบด้วยเนื้อหาสาระสำหรับให้เป็น True life มีดังนี้


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

2. ขณะรับประทานอาหารมีหลายคนชอบดูทีวีดูข่าวสารบ้านเมือง ฟังความเห็นเหล่านักวิจารณ์ข่าว นักเล่าข่าว โดยทั่วไปจะต้องเปิดทีวี แต่เว็บ 2.1 จะต้องพัฒนาเว็บ application เพื่อให้ดูทีวีได้ทุกช่องข่าวทั้งในประเทศและต่างประเทศ และสามารถใช้รีโมทควบคุมการเลื่อนช่องข่าวได้ มีบางคนบอกว่าให้ซื้อการ์ดทีวีมาใส่ก็ใช้ได้แล้วไม่ต้องพัฒนาให้ยุ่งยาก แต่ไม่เข้าประเด็น Web based และไม่สามารถดูของต่างประเทศได้

3. การไปทำงานในอดีต จะต้องเดินทางไปยังสำนักงาน แต่เว็บ 2.1 จะต้องทำงานที่บ้านแบบออนไลน์ แต่การทำงานออนไลน์จากที่บ้านจะต้องทำงานได้เสมือนกับที่สำนักงานจริง แต่มีข้อจำกัดในตำแหน่งที่เป็นงานบริการ งานใช้แรงงาน แต่ระบบนี้จะเน้นที่กลุ่มผู้ใช้ที่เป็น Knowledge worker เป็นหลัก จะขอยกตัวอย่างระบบที่ต้องทำ เช่น ใช้การ chat ทั้งพูดและ พิมพ์ได้ โดยมีกล้องเว็บแคม มองเห็นสำนักงานและผู้ที่ทำงานที่บ้าน ในกรณีที่เป็นผู้บริหารจะต้องมีกล้องหลายกล้องเพื่อดูแลพนักงานได้ครบทุกหน่วยงาน ผู้บริหารต้องการสั่งงาน ใช้การ chat โดยตรงไปยังพนักงาน ต้องการติดตามงาน โดยดูจากกล้อง ถ้าต้องการเอกสาร ให้พนักงานส่งเอกสารผ่านทางเมล์ โดยถ่ายเอกสารแนบ ถ้าต้องการให้ลงลายเซ็น ให้ใช้ลายเซ็นดิจิตัล พร้อมกับส่งไฟล์กลับไปให้เจ้าหน้าที่พิมพ์ด้วยเครื่องพิมพ์ ถ้ามีการประชุมให้ใช้การวีดิโอคอนเฟอเร็นต์ ถ้าต้องกาติดต่อกับลูกค้า ผู้ร่วมทุนหรือลูกค้าให้เขาเหล่านั้นสมัครเป็นสมาชิกในเว็บขององค์กร เขาเหล่านั้นสามารถกระทำกิจกรรมต่าง ๆ ได้ตามสิทธิ์ของแต่ละคน

4. เมื่อมีโอกาสพักผ่อน web 2.1 จะสนับสนุนการดำเนินชีวิตตาม Life style เต็มที่ เช่น การดูหนัง ฟังเพลง อ่านหนังสือ เล่นเกม ซึ่งแน่นอนว่าปัจจุบันเว็บโดยทั่วไปมีฟังก์ชันเหล่านี้ครบถ้วนอยู่แล้ว เพียงแต่ผู้พัฒนาจะต้องทำเว็บเหล่านั้นให้มาอยู่ในเว็บหน้าเดียวกับ Web 2.1 แต่ถ้าเว็บที่มีอยู่มี feature ต่าง ๆ ไม่ครบถ้วนจะพัฒนาขึ้นมาเองก็ได้ ในกรณีที่ไปพักผ่อนที่สวนสาธารณะ หรือทะเล หรือ สถานที่โปรด ให้พัฒนาระบบ Virtual reality ให้เสมือนจริงที่สุด อาจใช้ภาพจริงในรูปแบบ 3 มิติ


a. การฟังเพลงควรให้สั่งซื้อเพลงโดยการดาวน์โหลดเพลงได้ จ่ายด้วยเงินอิเลคทรอนิคส์ การทำ album เพลงในเครื่อง Server ของเราทั้งประเภท mp3 และรูปแบบเก่าให้ได้เหมือนจริงกับเครื่องเสียงยุคใหม่ ต่อลำโพงไปยังเครื่องขยายเสียง
b. การดูหนัง เราสามารถสั่งซื้อแบบได้ Soft copy ได้หรือแม้แต่การ Pay per view ได้ การชำระเงินและการจัดทำ album ทำได้เช่นเดียวกับการฟังเพลง
c. การอ่านข่าว มีทั้งอ่านข่าวทั้งในประเทศและต่างประเทศ ผู้พัฒนาจะต้องนำ RSS จากแหล่งข่าวที่มีชื่อเสียงมาอยู่ในเว็บ 2.1 ของเรา
d. การท่องเที่ยว ทำ 3D Virtual reality ในหน้าเว็บ ควรออกแบบให้มีการค้นหาแหล่งท่องเที่ยวที่มีอยู่จากแหล่งต่าง ๆ ทั่วโลกได้
e. สิ่งสนใจเฉพาะบุคคล เช่น งานอดิเรก เว็บ 2.1 จะต้องมีให้ผู้ใช้ค้นหาเว็บที่เกี่ยวนำมาติดตั้งไว้ในหน้าเว็บของตนเองได้


5. การศึกษาหาความรู้ ต้องทำหน้าลิงค์ให้ไปยังแหล่งจัดการเรียนรู้ในเรื่องที่บุคคลคนนั้นสนใจ โดยจัดหมวดหมู่ความรู้ สามารถบันทึกแหล่งเรียนรู้ไว้เพื่อจัดหมวดหมู่เพื่อศึกษาเพิ่มเติม หรือถ้าเป็นลักษณะ e-book เทคโนโลยี Web 2.1 สามารถรู้ได้ว่าหน้าที่อ่านไว้ล่าสุดอยู่ที่หน้าใด เพื่อให้ผู้อ่านได้อ่านต่อเนื่องไปได้

6. การจดบันทึก ไดอารี่ หรือที่เรียกว่า Blog ซึ่งปัจจุบันมีอยู่แล้วแต่สมควรให้มีอยู่ใน Web 2.1 เพียงหน้าเดียว

ภาพแสดง Web 2.1 Framework

วันศุกร์ที่ ๒ พฤศจิกายน พ.ศ. ๒๕๕๐

Six Sigma กับวงการไอที

เมื่อกล่าวถึง Six Sigma ในวงการไอทีหลายคนไม่รู้จักว่ามันคืออะไร มีชื่อไปทางหลักสถิติมันเกี่ยวอะไรกับไอที หรือการพัฒนาสารสนเทศมันเกี่ยข้องกันได้อย่างไร



เดิม six sigma เป็นกระบวนการพัฒนาคุณภาพในการผลิตสินค้าของบริษัทผลิตชิปไอซียี่ห้อโมโตโรล่า คิดกระบวนการผลิตสินค้าอย่างไรให้มีคุณภาพสูงที่สุด สินค้ามีโอกาสเสียหายเพียง 3.4 ชิ้นในหนึ่งล้านชิ้นเท่านั้น ซึ่งเป็นที่มาของหลักสถิติทีว่า 6 ซิกม่า นั่นเอง ปัจจุบัน six sigma ได้นำมาใช้ในทุกแขนงอุตสาหกรรม และหลายหน่วยงานภาครัฐ เพื่อนำเอาวิธีนี้สร้างคุณภาพลดการสูญเสีย อันเป็นการลดต้นทุน ยกตัวอย่าง เช่น ฝ่ายซ่อมบำรุงการบินไทย ได้ประมาณการลดต้นทุนได้ในปี 2000 ถึง 15.2 ล้านยูเอสดอลลาร์ อยากทราบหลักการของ six sigma เป็นอย่างไรทำไมจึงดีมากมายเช่นนี้ ให้ลองค้นหาคำนี้จาก google ดูได้ แต่ผมพอสรุปแบบคร่าว ๆ ได้ดังต่อไปนี้




  1. Six sigma นำมาใช้ในการปรับปรุงประสิทธิภาพการทำงานในเชิงธุรกิจ โดยมีจัดมุ่งหมายเพื่อลดความผันแปร (variation) ของกระบวนการ เพิ่มความพึงพอใจของลูกค้า ลดค่าใช้จ่ายที่ไม่จำเป็น และเพิ่มกำไรขององค์กร

  2. วิธีการหรือยุทธศาสตร์ของ six sigma ใช้คือ DMAIC ซึ่งย่อมาจาก Define, Measurement, Analyse, Improvement, และ Control


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

  • Measurement หมายถึง ขั้นตอนการวัดมีไว้เพื่อยืนยันและหาจำนวนปัญหา ซึ่งมีกระบวนการหรือขั้นตอนทั้งหมด 5 ขั้นตอน ได้แก่ กำหนดว่าจะวัดอะไรบ้าง แล้วจึงลงมือวัดจริง และคำนวณว่าอยู่ที่ซิกม่าที่เท่าไร ให้กำหนดว่าจะทำให้กระบวนการเพิ่มความสามารถได้อย่างไรบ้าง สุดท้ายได้แก่ การเปรียบเทียบกับมาตรฐาน

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

  • Improvement หมายถึง การพัฒนาให้ดียิ่งขึ้นมีขั้นตอนการทำทั้งหมด 3 อย่าง ได้แก่ การจัดทำข้อเสนอการเปลี่ยนแปลง การวางแผนในการนำไปปฏิบัติ การยืนยันให้สัตยาบันในการเปลี่ยนแปลง

  • Control เป็นขั้นตอนการควบคุมที่มีขั้นตอนย่อย 5 ขั้นตอน ได้แก่ จัดทำคู่มือการปฏิบัติงานและการตรวจสอบ มีพัฒนากลยุทธการควบคุม ให้ชมเชยหรือรางวัลและประกาศยกย่องผลสำเร็จแก่ทีมงาน นำแผนการควบคุมไปปฏิบัติ




ภาพที่ 1 แสดงขั้นตอนของ Six sigma Methodology


เมื่อเห็นขั้นตอนการทำงานแล้วมันเกี่ยวกับไอทีได้อย่างไร ก็ให้นึกถึง SDLC หรือ Waterfall จะเห็นว่าเป็นขั้นตอนเช่นเดียวกัน แต่ของ six sigma จะเน้นความพึงพอใจของลูกค้าเป็นสิ่งสำคัญ ให้ลูกค้ามีส่วนร่วมในการปรับปรุงคุณภาพได้แก่การสำรวจที่เรียกว่า CTQ หรือ Critical to Quality และมีทีมงานที่ได้รบการฝึกฝนมาเป็นอย่างดีมีวุฒิบัติอย่างถูกต้อง เขาเรียกวุฒิบัติแต่ละกลุ่มเป็นเข็มขัดสีต่าง ๆ เหมือนนักยูโด โดยผู้ที่มีคุณวุฒิสูงสุดได้ Project champion รองลงมาได้แก่ master black belt ถัดจากนั้นเป็น black belt สุดท้ายได้แก่ green belt เป็นต้น เขาว่ากันว่าถ้าใครทำไปตามขั้นตอนได้ถูกต้องตรงกับหลักการ จะทำให้สินค้าหรือบริการมีคุณภาพสูงที่สุดเหนือยุทธศาสตร์คุณภาพแบบอื่น ๆ เชื่อเขาหรือไม่ให้ลองศึกษาและทดลองนำมาใช้กับองค์กรดูได้เลย

วันพฤหัสบดีที่ ๑ พฤศจิกายน พ.ศ. ๒๕๕๐

ทีนี่ถึงคราวของ Agile

อาจารย์ได้เกริ่นนำว่าสัปดาห์หน้าจะนำเสนอเรื่อง Agile ผมทดลองค้นหา keyword คำว่า Agile ดูปรากฏว่ามีคนพูดถึงเรื่องนี้กันมากพอสมควร เพื่อเป็นการไม่ให้เสียเวลาเปล่าเมื่อค้นหาเจอจึงขอเขียนใน blog เพื่อจะได้ไม่ลืมและเพื่อได้ถ่ายทอดไปยังลูกศิษย์และเพื่อน ๆ ตลอดจนผู้อ่านด้วย

Agile เป็น Software Development Modelling อีกโมเดลหนึ่งในหลาย ๆ โมเดลที่มีเป้าหมายในด้านความ "รวดเร็ว ยืดหยุ่น พร้อมรับกับความเปลี่ยนแปลง" พยายามลดความเสี่ยงของการพัฒนาซอฟต์แวร์ โดยการทำ Time box สั้น ๆ เรียกว่า iteration ซึ่งได้กล่าวไว้แล้วในเรื่อง extreme programming การพัฒนาโดยใช้โมเดลนี้จะต้องทำไปเรื่อย ๆ ไม่ต้องหยุดแม้มีอะไรมากระทบ เมื่อมีการเปลี่ยนแปลงสามารถเปลี่ยนแปลงได้อย่างรวดเร็ว ทีมพัฒนาจะต้องมีพูดคุยสื่อสารกันมากกว่าการใช้เครื่องมือ การทำงานจะยึดที่ผลที่ได้หมายถึงซอฟต์แวร์เป็นหลัก ให้ความสำคัญกับความพึงพอใจของลูกค้า ส่งมอบซอฟต์แวร์อย่างต่อเนื่อง และยอมรับข้อกำหนดที่เปลี่ยนแปลง ผู้ใช้หรือลูกค้าและทีมพัฒนาต้องทำงานร่วมกัน โปรแกรมเมอร์ไปทำงานที่ site ของลูกค้าและต้องเจอทุกวันจนงานจะแล้วเสร็จ ให้ใช้พูดกันต่อหน้า ไม่ต้องใช้โทรศัพท์หรืออีเมล์ การทำงานต้องปล่อยให้ทีมพัฒนาตัดสินใจเองได้

Agile Methodologies

  • Agile UP
  • XP (eXtreme Programming)
  • FDD (Feature Driven Development)
  • Scrum

เทคนิคการพัฒนาแบบ Agile

  • Agile model driven development(AMDD)
  • Code Refactor เป็นการแก้ไขคำสั่งซอฟต์แวร์เดี่ยวนั้นและ design เปลี่ยนเอง
  • Pair Programming (อ่านในตอนที่แล้ว)
  • Test Driven Development(TDD)เป็นเทคนิคการเขียน test case ก่อนที่จะเขียนชุดคำสั่ง

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