เริ่มต้นกับการบริหารโครงการโดยใช้เครื่องมือ Team Foundation Server (Phase 1 : Overview)

บทความนี้เป็นลักษณะของการเล่าประสบการณ์ของการนำเครื่องมือ MS Team Foundation มาใช้เพื่อการบริหารโครงการ เพื่อให้ผู้อ่านหรือผู้สนใจได้เห็นภาพคร่าว ๆ หรือหากเป็นประโยชน์ก็สามารถนำไปใช้งานการทำงานได้จริง ^___^

Team Foundation Server หรือ TFS เป็นเครื่องมือช่วยในกระบวนการของการพัฒนาระบบ ผลิตโดยบริษัทไมโครซอฟท์ ซึ่งประกอบด้วยเครื่องมือต่างๆ ที่ช่วยในการพัฒนาระบบในหลายๆ ส่วน ตั้งแต่ส่วนการบริหารโครงการ ส่วนการพัฒนาระบบ เป็นต้น แต่ในครั้งนี้จะกล่าวถึงการนำ TFS มาช่วยผู้จัดการโครงการในการบริหารโครงการ ตั้งแต่ขั้นตอนการมอบหมายงาน ตลอดจนการติดตามงาน ซึ่งผู้เขียนขอแบ่งออกเป็น Phase ย่อย ๆ เพื่อไม่ให้ผู้อ่านเบื่อกันไปซะก่อนนะค่ะ โดย Phase 1 นี้จะขอเกริ่นนำเพื่อให้ผู้อ่าน เห็นภาพรวมกันก่อน และใน Phase ถัดๆ ไปจะแนะนำขั้นตอนการใช้งานนะค่ะ

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

Software Process : SDLC

  • Planning
  • Requirement Analysis
  • Designing the product architecture
  • Building or Developing the Product
  • Testing the Product
  • Deployment and Maintenance

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

เริ่มต้นมาทำความเข้าใจคำที่ใช้ใน TFS กันก่อนนะค่ะ ซึ่งจะเทียบให้เห็นกับคำทั่วๆ ที่ใช้กันในการพัฒนาระบบ นะค่ะ

  • Backlog items หมายถึง ความต้องการ หรือ Requirements
  • Sprint หมายถึง รอบระยะของโครงการย่อย หรือ รอบระยะเวลาของการพัฒนาระบบซึ่งแบ่งย่อยเป็นรอบๆ
  • Task หมายถึง งานย่อยๆ ที่จะมอบหมายให้สมาชิกดำเนินการ

อ่านครั้งแรก อาจจะยังไม่เข้าใจ ขออธิบายรายละเอียดเพิ่มเติมนะค่ะ กล่าวคือ

  1. ในขั้นตอนของการวางแผน หรือ Planning สำหรับการพัฒนาระบบสารสนเทศจะเริ่มต้นด้วยการเข้าไปเก็บ รวบรวมความต้องการ หรือ Requirements จากลูกค้า ซึ่ง Requirements นี้ใน TFS จะเรียกว่า Backlog item โดยผู้จัดการโครงการจะนำ Backlog ที่ได้จากการรวบรวม มาเก็บไว้ใน TFS เพื่อเข้าสู่กระบวนการคัดกรอง Backlog items อีกครั้ง
  2. การคัดกรอง Backlog items คือ การพิจารณา Backlog item ว่าจะให้ดำเนินการ หรือไม่ดำเนินการ ด้วยเหตุผลใด
  3. หลังจาก Backlog items ผ่านขั้นตอนการคัดกรอง ก็จะมี Backlog items ที่พิจารณาให้ดำเนินการ ผู้จัดการโครงการก็จะต้องนำ Backlog Items มาวางแผน โดยพิจารณาตามระยะเวลา ในกรณีที่มี Backlog items จำนวนมาก นั่นก็หมายถึงระบบก็จะมีขนาดใหญ่ไปด้วยเช่นกัน จำเป็นจะต้องมีการแบ่งโครงการเป็นโครงการย่อยๆ เพื่อป้องกันความเสี่ยงของการพัฒนาระบบไม่เสร็จตามแผนที่วางไว้ การแบ่งโครงการออกเป็นโครงการย่อยๆ ใน TFS เรียกว่า Sprint ใน Sprint จะต้องระบุวันที่เริ่มต้น และ วันที่สิ้นสุด ซึ่งก็คือระยะเวลาของโครงการนั่นเอง
  4. จากนั้นผู้จัดการโครงการจะต้องพิจารณาร่วมกับลูกค้าเพื่อเลือก Backlog items ที่จะทำให้แล้วเสร็จใน Sprint นั้นๆ ในการคัดเลือก ก็จะนำปัจจัยหลาย ๆ ปัจจัย มาพิจารณา ซึ่งได้แก่ Backlog item ที่เป็นฟังก์ชันหลัก หรือมีความสำคัญจำเป็นต้องทำก่อน ความเร่งด่วนของการใช้งาน เป็นตน ผลจากการคัดกรอง หรือคัดเลือก ผู้จัดการโครงการก็จะทราบว่าในแต่ละ Sprint มี Backlog items อะไรบ้างที่จะต้องดำเนินการ ซึ่งจะเข้าสู่กระบวนการวางแผนและมอบหมายงานต่อไป
  5. โดยในแต่ละ Backlog item ของแต่ละ Sprint นั้น ผู้จัดการโครงการ จะต้องดำเนินการกำหนด งานย่อยๆ ซึ่งเป็นงาน ตามขั้นตอน หรือกระบวนการที่จะทำให้ Backlog item อันนั้นสำเร็จนั่นเอง โดยงานย่อยดังกล่าวเรียกว่า Task ซึ่งผู้จัดการโครงการเอง จะทำการบันทึกงานย่อยๆ ดังกล่าวลงใน TFS เพื่อเข้าสู่ขั้นตอนการมอบหมาย Task ต่อไป

ตัวอย่าง รูปภาพ เพื่อความชัดเจนมากยิ่งขึ้นนะค่ะ

 

ในครั้งต่อไป จะมาอธิบายวิธีการใช้เครื่องมือ TFS เพื่อทำการบันทึกข้อมูล Backlog items และอธิบายขั้นตอนการคัดกรอง Backlog items กันนะค่ะ อย่าลืมติดตามอ่านกันต่อนะค่ะ

 

ข้อมูลอ้างอิง

Team Foundation Overview : https://msdn.microsoft.com/en-us/library/ms242904(VS.80).aspx

Software Process

การทดสอบแบบอัตโนมัติ ด้วย Robot framework กับ Selenium Library (ตอนที่ 1 การติดตั้ง)

วันนี้จะมาเล่าเรื่องการทดสอบแบบ Automate ด้วย Robot framework ค่ะ Robot framework ก็คือการทดสอบการทำงานของระบบที่สร้างขึ้น ให้ง่ายและรวดเร็วด้วยการทำ Automate Testing ซึ่งจุดขายของมันคือ Robot Framework สามารถ Test data , executes test cases ออกมาเป็น report และ logs ได้ Robot Framework implement มาจาก ภาษา Python ดังนั้นเราก็ต้อง install Python กันก่อน โดย Dowloadที่ https://www.python.org/ftp/python/2.7.8/python-2.7.8.msi  ติดตั้งง่าย…

Raspberry Pi 3 [Automated Relay Controller]

ตอนที่แล้วเราได้ทดลองทำการสั่งงานรีเลย์แบบ Manual ผ่านหน้าเว็บไปแล้ว ครั้งนี้เราลองสั่งให้รีเลย์ทำงานโดยผ่านการประมวลผลค่าที่ได้จากเซนเซอร์ เพื่อให้ก้าวไปอีกขั้นของ IoT   โดยเราจะใช้เซนเซอร์ที่เคยได้นำเสนอไปก่อนหน้านี้แล้ว นั่นคือ DHT22 Temperature & Humidity Sensor (ต่อที่ PIN: 32 [GPIO 12]) และรีเลย์ 4 Channel ซึ่งสามารถนำไปต่อกับอุปกรณ์เครื่องใช้ไฟฟ้าได้ ต่อ PIN เดิมจากตอนที่แล้ว   ความต้องการเบื้องต้นคือ 1. เมื่ออุณหภูมิต่ำกว่าหรือเท่ากับ 28 องศา ให้เปิดพัดลมระบายอากาศ 1 (ที่ต่ออยู่กับ Relay 1) 2. เมื่ออุณหภูมิสูงกว่า 28 องศา ให้ปิดพัดลมระบายอากาศ 1 และเปิดพัดลมระบายอากาศ…

Raspberry Pi 3 [Relay Control via Web Interface]

ตอนนี้เราจะมาสร้างหน้าเว็บสำหรับดูสถานะและควบคุมรีเลย์อย่างง่ายๆ   ก่อนอื่น ผมได้ทำการเปลี่ยน PIN ของ GPIO บน Raspberry Pi 3 เพื่อให้เป็นระเบียบมากขึ้นจากครั้งที่แล้ว โดยผมได้เลือกใช้ PIN: 12 (GPIO 18), PIN: 16 (GPIO 23), PIN: 18 (GPIO 24) และ PIN: 22 (GPIO 25) สำหรับสั่งงานรีเลย์ตัวที่ 1-4 ตามลำดับ ดังรูปด้านล่างนี้   หลังจากการทดสอบการทำงานของรีเลย์ทุกตัว (ในบทความที่แล้ว) จากนั้นเราจึงเริ่มขึ้นตอนการติดตั้ง Apache Web…

Raspberry Pi 3 [Relay Control]

จากตอนที่แล้ว เราได้ลองต่อเซนเซอร์ภายนอก ซึ่งเซนเซอร์จะเป็นประเภท Input เพื่อนำข้อมูลไปประมวลผลต่อตามที่เราต้องการ ยังมีอุปกรณ์บางตัวที่เราสามารถต่อเป็น Output จาก Raspberry Pi ได้ด้วย ซึ่งหนึ่งในนั้นจะเป็นอุปกรณ์หลักที่นำมาเชื่อมต่อกับอุปกรณ์อื่นๆ ได้อย่างหลากหลาย นั่นคือ รีเลย์ (Relay) – (ไม่ใช่ Delay นะครับ กรุณาอย่าสับสน)   Relay คืออะไร Relay ถ้าให้พูดจากความเข้าใจคือ สวิตซ์ ประเภทหนึ่งครับ ที่จะทำงานตามกระแสไฟ นั่นคือ เมื่อมีกระแสไฟไปเหนี่ยวนำภายใน สวิตซ์ก็จะทำงาน (Energize) (พูดให้เข้าใจอีกครั้งหนึ่งคือ เหมือนสวิตซ์ตามผนังนี่แหละครับ แต่แทนที่จะเอามือไปกด เราก็ใช้กระแสไฟเข้าไปให้มันทำงานแทนนั่นเอง) และในบางครั้ง ในระบบไฟฟ้ากำลัง อาจจะเรียกอุปกรณ์นี้ว่า Magnetic Contactor…

Email tracking By Google Chrome Extension

เมื่อวันเวลาหมุนเวียนมาบรรจบพบกันอีกครั้ง ก่อนการเขียนผล TOR ในปีนี้ ก็ได้เวลาที่เหล่าเราทั้งหลายจะมาเริ่มต้นเขียน Blog กันอีกครั้ง และเช่นเคยสิ่งที่ผู้เขียนมีโอกาสศึกษา ค้นคว้าเพิ่มเติม หรือทดลองใช้งาน โดยมากแล้วก็จะเกี่ยวพันกับหน้าที่การงานในปัจจุบันนั่นแล ซึ่งหน้าที่หลักที่ผู้เขียนต้องทำทุกๆ วัน นั่นคือการรับแจ้งและตอบปัญหาให้กับลูกค้าผ่านทาง E-Mail และต้องขอบอกเลยว่าสำหรับผู้เขียน การตรวจสอบว่าเมลล์ถูกส่งไปถึงปลายทางหรือมีการเปิดอ่านหรือไม่นั้น มันเป็นเรื่องที่จำเป็นมากๆ ในงาน IT เพราะนอกจากการโทรแล้ว อีกหนึ่งช่องทางหลักในการติดต่อสื่อสารระหว่างกัน แถมยังประหยัดรายจ่ายอีกต่างหาก นั่นก็คือการส่ง E-Mail นั่นเองแหละหนา โดยหนึ่งวิธีที่ง่ายที่สุดคือการติดตั้ง Extension บน Google Chrome และใน Blog นี้ผู้เขียนจะขอแนะนำให้ผู้อ่านได้รู้จักกับ Chrome Extension ที่มีชื่อว่า “Email Tracking for Gmail…

Choose Network Type In VirtualBox

เมื่อต้องไปจัดอบรม และต้องใช้ Oracle VM VirtualBox สำหรับสร้าง Virtual Machine (VM) จำนวนหนึ่ง (มากกว่า 1 ตัว ฮ่า ๆ) เราจำเป็นจะต้องรู้ว่า สภาพแวดล้อมของห้องบริการคอมพิวเตอร์ที่เราไปขอใช้งานนั้น จัด IP ให้กับเครื่อง Windows แบบใด เช่น ในกรณีที่มีการปล่อย DHCP IP แบบเหลือเฟือ การเลือกชนิด network ของ VM แต่ละตัว ก็ง่าย เราก็เลือกตั้งค่าเป็น Bridges ซึ่งแบบนี้ VM แต่ละตัวก็จะได้ IP อยู่ในชุดเดียวกันกับ Windows…

Raspberry Pi 3 [Temperature & Humidity Data Chart]

จากตอนที่แล้ว เราได้เขียนคำสั่งเพื่อที่จะดึงค่าจากเซนเซอร์แล้ว ครั้งนี้จะเป็นการใช้วิธีดังค่าดังกล่าว มาเก็บไว้เป็นไฟล์ csv จากนั้นนำไปแสดงเป็นกราฟ โดยแสดงผลผ่าน Web Interface ด้วยวิธีดังต่อไปนี้ครับ   สร้างที่เก็บไฟล์ด้วยคำสั่งต่อไปนี้ mkdir –p /home/pi/projects/temp–and–humidity mkdir –p /home/pi/projects/temp–and–humidity/sensor–values cd /home/pi/projects/temp–and–humidity (หากใครไม่ต้องการสร้าง directory เพื่อเก็บข้อมูลตามตัวอย่างนี้ ให้แก้ไฟล์ temp_hud_csv_log.py ด้วยครับ) จากนั้นดาวน์โหลดสคริปด้วยคำสั่งนี้ wget https://sysadmin.psu.ac.th/wp-content/uploads/2018/03/temp_hud_csv_log.txt mv temp_hud_csv_log.txt temp_hud_csv_log.py (เนื่องจาก sysadmin นี้ไม่รองรับการอัพโหลดไฟล์ .py จึงต้องอัพโหลดเป็น .txt ไปก่อน แล้วค่อยเอามา rename…

Raspberry Pi 3 [Temperature & Humidity Sensor]

สวัสดีและขออภัยที่ห่างหายไป เนื่องจากติดภารกิจทั้งงานราษฏร์และงานหลวงครับ   ครั้งนี้จะเป็นการเริ่มต่อเซนเซอร์ภายนอก เซนเซอร์พื้นฐานที่มีในปัจจุบันก็จะเป็นเซนเซอร์เกี่ยวกับสภาพแวดล้อม ไม่ว่าจะเป็น เซนเซอร์อุณหภูมิ, เซนเซอร์ความชื้นในอากาศ, เซนเซอร์ความชื้นในดิน, เซนเซอร์น้ำ (ทำงานเมื่อมีน้ำมาสัมผัสเซนเซอร์ – ใช้ตรวจเช็คฝนตก), เซนเซอร์แสง (สวิตซ์), เซนเซอร์ความเข้มแสง, เซนเซอร์วัด pH, เซนเซอร์ UV, เซนเซอร์วัดฝุ่นละอองในอากาศ, เซนเซอร์วัดความชื้นในดิน, เซนเซอร์วัดแรงสั่นสะเทือน และเซนเซอร์อื่นๆ อีกมากมาย ซึ่งหลักการทำงานนั้นส่วนใหญ่จะเหมือนกันหมด คือการอ่านค่ามาจากเซนเซอร์ และนำค่านั้นมาแปรผลที่เราสามารถอ่านได้ง่าย   บทความนี้จะเริ่มด้วยเซนเซอร์ที่ Basic ที่สุด เพื่อให้ทุกท่านพอจะได้เห็นหลักการทำงานและเป็นแนวทางในการเชื่อมต่อเซนเซอร์อ่นๆ ต่อไปครับ นั่นคือ เซนเซอร์วัดอุณหภูมิและความชื้น AM2302 (DHT22) นั่นเอง โดยจะมี Pinout ดังนี้ (จากซ้ายบน…