24 June 2009

--- Project planning ---


หลักๆของโมเดลทั่วไปจะมีอยู่ 5 ขั้นตอน แต่อาจถูกแตกย่อยไปเป็นมากขั้นตอนกว่านี้ก็ได้ แต่โดยรวมแล้วทำสิ่งเดียวกัน

มาเริ่มเจาะเข้าไปทีละขั้นตอนดีกว่า

__________________________________________________________________
Project planning คือ ขั้นการวางแผน ซึ่งเป็นขั้นที่สำคัญต่อการประสบความสำเร็จของงาน ทำให้เรามองเห็นภาพของงานที่จะเกิดขึ้น, ขั้นตอนการทำงาน, เวลาที่ส่งผลกระทบต่องาน, และจุดที่ควรระวัง

ทำไมเราถึงต้องวางแผน
เราวางแผนเพื่อประหยัดเวลา เงินทอง ทรัพยากร และลดปัญหาที่จะตามมา

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

วิธีเช็คว่าเราเขียนจุดมุ่งหมายสำเร็จผลหรือไม่ ให้ตรวจสอบดังนี้
1. ให้คำจำกัดความที่ดี เข้าใจได้ง่ายโดยบุคคลทั่วไปที่มีความรู้พื้นฐานเกี่ยวกับงาน
2. รู้เวลาว่าจุดมุ่งหมายของเราจะประสบผล หรืออีกไกลแค่ไหนจึงจะสำเร็จ
3. ได้รับการยอมรับจากผู้ที่เราสอบถาม
4. ทำได้จริงตามทรัพยากร ความรู้ และเวลาที่มี
5. ต้องมีเวลามากพอที่จะทำให้สำเร็จได้ แต่ก็ต้องไม่มากเกินไปจนส่งผลต่องานเรา
------------------------------------------------------------------------------------------------
ขั้นสอง การนำส่งงาน (deliverables)
+++ ใช้จุดมุ่งหมายจากขั้นที่ 1 สร้างรายการสิ่งของหรือสิ่งที่ต้องส่งเพื่อให้บรรลุจุดมุ่งหมาย โดยกำหนดว่าเมื่อไหร อย่างไรด้วย จากการประมาณเอา โดยต้องพอดีๆ
-----------------------------------------------------------------------------------------------
ขั้นสาม การทำตารางการทำงาน (Schedule)
+++ สร้างรายการงานที่ต้องทำจากรายการที่ต้องส่งในขั้นที่ 2 โดยตารางการทำงานควรประกอบด้วย สิ่งที่ต้องการส่ง deliverables, งาน tasks, ระยะเวลา durations และ คนรับผิดชอบ who.

ปัญหาที่เกิดจากการสร้างตารางการทำงานไม่ดี
--- งานอาจล่าช้า
--- ค่าใช่จ่ายที่เพิ่มขึ้น
--- งานได้ออกมาไม่ดีเท่าที่ควร
----------------------------------------------------------------------------------------------
ขั้นสุดท้าย แผนสนับสนุน
+++ แผนการจัดการทรัพยากรมนุษย์ คือ การใส่บทบาทหน้าที่ของแต่ละบุคคลลงไปในงาน ระยะเวลาในการทำงาน ช่วงเวลา
+++ แผนความสัมพันธ์ คือ การทำรายการว่าใครต้องการใช้ข้อมูลเกี่ยวกับงานบ้างและวิธีที่จะได้รับข้อมูล อธิบายการปฎิบัติงาน, milestones, และแผนงานต่อไปในอนาคต
+++ แผนการจัดการความเสี่ยง เป็นสิ่งที่สำคัญที่เราจะคิดไว้ก่อนว่าสิ่งใดที่อาจจะเกิดที่จะส่งผลกับงานเรา เพื่อเตรียมการรับมือ ก่อนเกิดเหตุจริงๆ ซึ่งก็มีทั้งความเสี่ยงจากภายนอก เช่น กฎระเบีียบ / ข้อบังคับ, ลูกค้า และ ภัยธรรมชาติ หรือ ความเสี่ยงจากภายใน เช่น นโยบาย, บุคลากร, และ ฐานะการเงิน
__________________________________________________________________
______อ้างอิง_______________________________________________________

http://www.projectsmart.co.uk/project-planning-step-by-step.html
http://ora.chandra.ac.th/~patsara/pdffiles/PM005.pdf

16 June 2009

แบบจำลองน้ำตก (Waterfall model)

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



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

โดยทั่วไป Waterfall model จะมีการทำงานอยู่ 5 ขั้นตอน
1. Project planning ___ การศึกษาความเป็นไปได้, การวางแผนตารางงาน,
2. Analysis _________ การวิเคราะห์ความต้องการ และ กระบวณการทำงาน
3. Design __________ การออกแบบวิธีการแก้ปํญหา โดยอาศัยการวิเคาระห์ความต้องการในขั้น2
4. Implementation ___ การสร้าง, ทดสอบ, ฝึกผู้ใช้, และ การลงระบบใหม่
5. Support _________ การทำให้ระบบยังดำเนินต่อไปได้ และการพัฒนาอื่นๆ

____________________________________________________________________

คลิกที่รูปเพื่อขยายใหญ่

อันนี้ก็เป็นรูปในเกม พร้อมความหมายจะเห็นได้ว่าคล้ายๆกัน

ดังนั้นเมื่อเรารู้ว่าขั้นไหนควรเริ่มก่อน ก็น่าจะเล่นเกมได้ และมีประโยชน์ด้วย

____________________________________________________________________

12 June 2009

Software Engineering Process Game

ก็เปิดไปเปิดมาลองค้นเล่นๆว่าจะมีเกมเกี่ยวกับ SE ไหม สรุปว่าเจอแหะ
ก็ไปเจอวีดีโอนี้เข้า
ในเว็บ http://www.youtube.com/watch?v=kkkl3LucxTY


________________________________________________________________________________________________

ค้นหาต่อไปเลยพบกับเว็บเผยแพร่เกมนี้โดยตรง
http://vital.cs.ohiou.edu/vitalwiki/index.php/Software_Engineering_Process_Game
________________________________________________________________________________________________
เกมนี้คือ Software Engineering Process Game
เป็นเกมแนว Role-Playing Game (RPG) หรือ เกมแสดงบทบาทแทนตัวละครที่สมมุติขึ้น วัตถุประสงค์ที่สร้างขึ้นก็เพื่อช่วยสอนนักเรียนเกี่ยวกับกระบวนการของ SE (แต่ในปัจจุบันนี้ยังได้แค่ waterfall model (เอาไว้พูดถึงในครั้งหน้าเกี่ยวกับโมเดล)) โดยการจำลองการพัฒนา software project ขนาดกลาง
________________________________________________________________________________________________

วิธีเล่นเกมคร่าวๆก็ประมาณว่า
1. ในเกมจะมีอยู่ 6 ห้อง ผู้เล่นต้องเข้าไปทำงานในแต่ละห้องนั้น ผู้เล่นมากสุดจึงได้ที่ 6 คน ดังนั้นผู้เล้นจึงสามารถสร้างทีมมาเพื่อเล่นเกมนี้ได้
2. ผู้เล่นเข้าร่วมได้โดยการนั่งที่เก้าอี้ แล้วหน้าจอก็จะขึ้นข้อมูลมาให้
3. หน้าจอคอมพิวเตอร์จะมี Timer ให้กดเพื่อเริ่มเล่น เวลาจะลดลงเรื่อยๆ แสดงเวลาที่เหลือในการทำงานของผู้เล่น เมื่อเป็น 0 เกมจบ
4. ไอคอน "artifact" มี 4 อัน จะเปลี่ยนเป็นสีขาวเมื่อคลิก ข้างล่างจะเป็น "task" ก็ให้เลือกอีก ก็จะเป็นสีขาว ถ้าต้องการยกเลิกให้คลิกซ้ำ จะกลายเป็นสีเทา
5. "rest state" เอาไว้สลับ พัก กับ ทำงาน ถ้ามีรูปคนนั่งบนเก้าอี้คือทำงานอยู่ และมีพลังงานด้วย ถ้าทำงานพลังงานก็จะลด สีแดงก็จะมากขึ้น ถ้าพักพลังงานก็จะเพิ่ม สีเขียวก็จะเพิ่ม
6. ถ้าในทีมเริ่มทำ "task" ในส่วน "creating " "artifact process" ก็จะมีสีเขียวเพิ่มขึ้นให้รู้ว่าใกล้เสร็จ หรือดำเนินการถึงไหน
ถ้าเริ่มส่วน "Integrating code" "Integrating process" ก็ะเพิ่มขึ้น ถ้าคนไหนกด "Review","Inspecting", หรือ "Testing" ก่อน ก็จะมีค่า artifact error เพิ่มขึ้น
7. ถ้ากด "Timer" อีกทีจะมีคำถามขึ้นมาว่า จะจบเกม หรือ จะเริ่มใหม่
8. เหนือจอคอมพิวเตอร์จะมีการโชว์ว่าผู้เล่นแต่ละคนทำอะไรไปถึงไหนแล้วด้วย

ไอคอนทุกตัวมีความหมายหมดเลยนะคะ โปรดศึกษาวิธีเล่นก่อนเล่นจะได้ประโยชน์มากๆเลย

สามารถดูวิธีเล่นเพิ่มเติมได้ที่ (ภาษาอังกฤษ พร้อม รูปประกอบ)
http://vital.cs.ohiou.edu/vitalwiki/index.php/Software_Engineering_Process_Game_User_Guide
_________________________________________________________________________________________________

ส่วนใครต้องการที่จะเล่นก็ที่นี้เลย
ก็ต้องสมัครสมาชิก คล้ายๆเล่นเกมออนไลน์นะคะ
http://slurl.com/secondlife/OHIO%20Outreach/180/160/32
_________________________________________________________________________________________________

เพิ่มเติมเว็บที่น่าสนใจ เกี่ยวกับเกมอื่นๆสามมิติจากการวิจัย
http://vital.cs.ohiou.edu/
_________________________________________________________________________________________________

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

09 June 2009

เริ่ม Software Engineering (SE) E มอง วิศวกรรมซอฟต์แวร์

วิศวกรรมซอฟต์แวร์ (Software Engineering) คือ อะไร
_____________________________________________________
---------------------------------------------------------------------------
ก่อนอื่นเรามาเข้าใจคำว่า ซอฟต์แวร์ (Software) กันก่อน
ซอฟต์แวร์ หรือ ชุดคำสั่ง เป็นโปรแกรมคอมพิวเตอร์ที่ทำให้คอมพิวเตอร์ทำงานได้
มี 2 ประเภท
---------------------------------------------------------------------------
1. ซอฟต์แวร์ระบบ (System Software)
เป็นซอฟต์แวร์ที่เอาไว้ดำเนินการพื้นฐานต่างๆของระบบคอมพิวเตอร์
---------------------------------------------------------------------------
2. ซอฟต์แวร์ประยุกต์ (Application Software)
เป็นซอฟต์แวร์ที่เอาไว้ใช้งานทั่วไป หรือ ใช้งานเฉพาะ ที่ไม่เกี่ยวกับระบบ
---------------------------------------------------------------------------
วิศวกรรม (Engineering)
หนังสือ Encyclopaedia Americana ได้ให้คำจำกัดความไว้ว่า “Engineering” เป็นอาชีพที่เกี่ยวข้องโดยชัดเจนกับวิทยาศาสตร์ของการวางแผนการออกแบบการสร้าง และการใช้งานอย่างถูกหลักเศรษฐศาสตร์ของสิ่งก่อสร้างหรือเครื่องจักร
---------------------------------------------------------------------------
____________________________________________________
ดังนั้น วิศวกรรมซอฟต์แวร์ จึงหมายถึง
การวางแผนการออกแบบการสร้างโปรแกรมคอมพิวเตอร์ และการใช้งานอย่างถูกหลักเศรษฐศาสตร์ ซึ่งก็ต้องคำนึงถึงทรัพยากร เครื่องมือที่จะใช้ และ คุณภาพงานให้ได้ตามเวลาและงบประมาณด้วย
____________________________________________________

แหล่งอ้างอิง
http://www.school.net.th/library/snet1/software/software/index.html
http://www.rmuti.ac.th/faculty/production/ie/html/abouIE_c.htm
Sommerville, Ian,"Software Engineering", 8th Ed., Addison Wesley, New York, 2007.

___________________________________________End______

03 June 2009

ก็คงต้องแนะนำตัวกันก่อน

ก็สวัสดีทุกท่านนะคะ
------------------------------------------------------------------------------------------------
ข้าพเจ้า นามว่า
นัท (NUT) ซึ่งในภาษาอังกฤษก็แปลได้หลายความหมาย
-1 คือ
ถั่ว (ข้าพเจ้าชอบทาน แต่แม่ข้าพเจ้าแพ้ บางครั้งก็ทาน)
-2 คือ
คนบ้า (ซึ่งบางครั้งเพื่อนๆก็หาว่าข้าพเจ้าบ้า 555)
ซึ่งพ่อกับแม่ ลืมไปแล้วว่าทำไมจึงตั้งเช่นนี้
------------------------------------------------------------------------------------------------
ข้้าพเจ้าเกิดใน
วันศุกร์ (ดังนั้นจึงชอบสีฟ้า อีกสีคือเขียว จะเห็นว่าเป็นสีที่เย็น) เลข>20
ข้าพเจ้าเป็นคนใจเย็น แต่ถ้าหิวขึ้นมาก็หน้ามืดนะ แพ้ความหิว

เดือนเกิดก็ ตอนปลายๆ สัญลักษณ์ คือ
ปู บางทีก็ สิงโต
ซึ่ง ข้าพเจ้าคิดว่าก็เกี่ยวกับการเดิน กับนิสัยอยู่บ้าง เช่นกัน

ปีเกิด ก็ ปี
งูเล็ก

หลายคนคงพอจะเดาได้ว่าข้าพเจ้าเกิด ในวันที่เท่าไหร เดือนอะไร และปีอะไร
ตอนนี้(ปี 2552)ข้าพเจ้าก็อยู่
ปี 3

ใครตอบได้บ้างเนี่ย ไม่มีรางวัลแต่เล่นกันขำๆ ใช้หลัก
ตรรกะนิดหน่อย
------------------------------------------------------------------------------------------------
สถานศึกษา

-เริ่มที่ประถมละกัน
++ ภาษานุสรณ์บางแค ป.1-3
++ ขจรโรจน์วิทยา ป.4-6

-พอมัธยม
++ สามเสนวิทยาลัย ม.1-6

-ปริญญาตรี (กำลังศึกษา)
++ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี (KMUTT)
คณะเทคโนโลยีสารสนเทศ (SIT)
สาขาวิทยาการคอมพิวเตอร์ (ภาษาอังกฤษ)
Computer Science (English Program) or CS
------------------------------------------------------------------------------------------------
ประสบการณ์ต่างๆ

-ตอนมัธยม ก็เป็นเหรัญญิกห้อง สักพัก เลื่อนเป็นหัวหน้าห้อง (งงไหมหละ)
-ป.ตรี
+ก็มีเป็นพี่เลี้ยง
ค่าย 2B-KMUTT รุ่น 2-6 แต่รุ่น 6 ได้เป็นประธานค่าย (อิอิ)
+เป็นผู้บรรยายเรื่อง "ทักษะนักวิจัย" ใน
ค่ายพี่เลี้ยง2B-KMUTT
+เคยช่วยงานโพสข่าวให้
ฝ่ายประชาสัมพันธ์ของมหาวิทยาลัย(ได้ตังค์เยอะอยู่)
+ใน
คณะก็เคยเป็นหลีดฮา(แบบครั้งนึงในชีวิต ไม่ขอทำอีก 55)
+
ทำงานทุนคณะก็ได้ออกแบบของ(เลยได้ทักษะ photoshop มา)
และไอเดีย Brain Board ร่วมกับพี่ที่ทำงานด้วย ( เป็นบอร์ดที่เอาไว้เพิ่มความรู้ให้กับนักศึกษาภายในคณะ )
+ทำ
ค่ายจูเีนียร์โปรแกรมเมอร์ JPC (ก็ช่วยทั่วไป และก็คุมหอพักให้)
+เป็นสตาฟ
HERO(สอนFlash Programming) ซึ่งตอนนี้ก็เป็นประธานจัดอบรมรุ่นต่อไป
+ใน
รุ่นก็เป็นฝ่ายเอกสารต้องเก็บเงินเองด้วย เห ไม่ยอมเก็บ (เลยใช้ Excel เก่งขึ้น ทำบัญชี)
+เมื่อไม่นานมานี้ก็ไปเป็น(คล้ายๆ
หนูทดลอง)เรียน micro controller กับพี่ที่ FIBO@KMUTT

ทำไมถึงต้องเล่าก็เพื่อบางคนจะได้ขอความช่วยเหลือในสิ่งที่เรารู้ได้ไม่มากก็น้อย
ทั้งการทำงานในตำแหน่งต่างๆ ค่าย และอื่นๆ ทั้งหมดนี้ไม่่ค่อยจะเรียงตามกาลเวลาเท่าไหร
------------------------------------------------------------------------------------------------
Program ที่เป็น หรือเคยผ่านหูผ่านตา
- JAVA(ใช้อยู่ภาษาเดียวเพราะเรียนอยู่), Pascal, C, Visual Basic(บางภาษาไม่ได้ใช้นานก็ลืมๆบ้าง), Dreamweawer, Photoshop, Microsoft Office(ก็ได้เกือบหมดรวมทั้ง Access), ตัดต่อวีดีโอก็ได้(ลืมชื่อโปรแกรมอะ),โปรแกรมทั่วไป, OS ก็นิดหน่อย เคยลองลง Lispus Linux, arduino,Etc จำชื่อโปรแกรมไม่ได้

เพื่อนๆ หรือบุคคลท่านไหนต้องการสอบถามก็ลองถามมาดูได้ จะพยายามตอบให้นะคะ
------------------------------------------------------------------------------------------------
และ
จุดเริ่มต้นในการทำบล็อคของข้าพเจ้า
เมื่อ อาจารย์ท่านหนึ่งใน
CS แนะนำให้ทำเพื่อ
-ใช้ในการถ่ายทอดความรู้ที่ข้าพเจ้าได้รับจากการเรียน แก่ผู้อื่น
-และก็คงมีประโยชน์อีกมาก จากการที่ข้าพเจ้าได้เริ่มต้นทำบางสิ่งทั้งแก่ข้าพเจ้าเอง แก่คณะ และแ่ก่สังคม
บางครั้งก็อาจนอกเรื่องไปบ้างคงไม่ว่ากัน
------------------------------------------------------------------------------------------------
บล็อกนี้จะพยายามเน้นไปทางด้านเนื้อหา Software Engineering (SE) นะคะ
-------------------------------------------------------------------------------End-------------