• Bisutto
  • ranking : สมาชิกทั่วไป
  • วันที่สร้าง : 2007-08-18
  • จำนวนเรื่อง : 6
  • จำนวนผู้ชม : 2906
  • จำนวนผู้โหวต : 0
  • ส่ง msg :
Software Development with Open Source Technology and Project Management
บทความเกี่ยวกับการพัฒนาซอฟต์แวร์ระดับองค์กและการจัดการโครงการด้วย Open Source Technology
Permalink : http://www.oknation.net/blog/MrWisut
วันเสาร์ ที่ 25 สิงหาคม 2550
Tools, Management, Process สามเสาหลักของการพัฒนาระบบงาน
Posted by , ผู้อ่าน : 543 , 10:55:39 น.  
พิมพ์หน้านี้


ในการพัฒนาซอฟต์แวร์แบบ Agile นั้นยึดลูกค้าและผลงานเป็นหลัก รูปข้างล่างแสดงองค์ประกอบสำคัญซึ่งสามารถแบ่ง 3 ส่วนได้แก่

  1. Infrastructure และ Tools โครงสร้างพื้นฐานและเครื่องมือเพื่อใช้ในการพัฒนาระบบงาน
  2. Project Management การบริหารจัดการโครงการเพื่อให้โครงการดำเนินไปอย่างราบรื่น
  3. Development Process กระบวนการพัฒนาระบบงานเพื่อให้ผลงานมีคุณภาพตรงตามความต้องการ

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

Infrastructure และ Tools

โครงสร้างพื้นฐานและเครื่องมือเป็นองค์ประกอบที่ช่วยให้นักพัฒนาสามารถทำงานได้ง่ายขึ้นสะดวก เริ่มจาก Development tools อย่างเช่น Open development platform อย่าง eclipse,  library รวมถึง framework ต่างๆที่จะทำให้การเขียน code ง่าย สั้นและมีหลักการมากขึ้น ลูกค้าอาจมีส่วนร่วมในการนำเครื่องมือเหล่านี้มาใช้เพื่อช่วยให้งานพัฒนาและตรวจสอบระบบงานมีคุณภาพมากยิ่งขึ้น สำหรับ Project Life Cycle Tool อย่างเช่น Maven เป็นเครื่องมือช่วยในการบริหารวงจรชีวิตของการพัฒนาซอฟต์แวร์ตั้งแต่ สร้าง คอมไพล์ สร้างเอกสาร ติดตั้ง และนำไปใช้ ส่วน โดยมี Source Control tool อย่าง Subversion เป็น repositoryที่ให้ทีมพัฒนาสามารถรวบรวมและจัดเก็บ source code ของแต่ละคน และมี Build Control tool อย่างเช่น Cruise Control เป็นเครื่องมือช่วยในการ integrate source code ทั้งหมดเข้าด้วยกัน ทำการทดสอบทั้งระบบ และออกผลิตภัณฑ์ตามช่วงเวลาที่ต้องการ สำหรับ Track Issue Control อย่างเช่น trac เป็นเครื่องมือที่ใช้ช่วยในการบริหารรายการความต้องการ แผนงานพัฒนา รวมถึงรายงานข้อผิดพลาด ให้ทีมพัฒนาร่วมกันทำงาน เป็นเสมือนกระดานอิเล็กทรอนิกส์ในการแชร์ความรู้ต่างๆโครงการกัน ซึ่งลูกค้าสามารถร่วมเข้าแชร์ความรู้หรือตรวจสอบแผนงาน ความก้าวหน้าโครงการจากเครื่องมือนี้

Project Management

การบริหารจัดการโครงการเป็นวิธีการที่ใช้ในการจัดการและควบคุมกระบวนทำงานของทีมงานของโครงการให้สามารถพัฒนาซอฟต์แวร์ให้ทันตามกำหนดเวลา ในงบประมาณที่เหมาะสม และมีคุณภาพที่ยอมรับได้ ประกอบด้วย Team Setting ซึ่งเป็นการจัดทีมงานอย่างเหมาะสม เทคนิคการ Project Planning เพื่อให้ทีมงานรับทราบแนวทางและระยะเวลาในการส่งมอบงาน โดยลูกค้ามีส่วนร่วมในการกำหนดและจัดลำดับความสำคัญของงานที่ตนเองต้องการเพื่อให้ได้ผลงานที่ได้ประโยชน์สูงสุด Teem Meeting เป็นกระบวนการปรับปรุงวิธีการติดต่อสื่อสารภายในทีมงาน เพื่อให้ทีมงานทุกคนยังอยู่ในทิศทางที่ถูกต้อง ไม่ออกนอกทางจนเกินไป ลูกค้าเองควรมีส่วนร่วมในการตรวจสอบสถานะหรือให้ข้อมูลเพิ่มเติมในการปรับแต่งทิศทางการทำงาน XP Practices เป็นการรวบรวมเทคนิคต่างๆที่ใช้ในการแก้ไขปัญหาในสถานะการณ์ต่างๆที่เกิดขึ้นในกระบวนการพัฒนาซอฟต์แวร์ ส่วน Feedback Learning เป็นการวัดผลและนำมาปรับแต่งกระบวนการบริหารจัดการโครงการให้เหมาะสมและทันสมัยเสมอ

Development Process

กระบวนพัฒนาเริ่มจาก Requirement Gathering เป็นการเก็บรวบรวมความต้องการของลูกค้าเพื่อเป็นข้อมูลในการวิเคราะห์ เพื่อสร้าง Use-Case Stories และ GUI Prototype ซึ่งจะช่วยให้ลูกค้ามองเห็นภาพของระบบที่จะพัฒนาได้ง่ายขึ้น Layer Pattern Design เป็นแนวทางการออกแบบโดยแบ่งเป็นชั้นๆ แต่ละชั้นมี Interface ในการกำหนดวิธีการติดต่อระหว่างงชั้นเพื่อแยกให้แต่ละชั้นมีความเป็นอิสระจากกันให้มากที่สุด Test-Driven Development เป็นกระบวนการในการพัฒนาโดยเน้นที่การทำ Test เพื่อให้ได้ code ที่ตรงความต้องการมากที่สุด ลดการเขียน code ที่ไม่จำเป็น รวมถึงการได้ระบบทดสอบเพื่อให้ระบบสามารถทดสอบได้ตลอดเวลาเมื่อมีการเปลี่ยนแปลง  ลูกค้าทำ User Acceptant Test  (เรียกย่อว่า UAT) โดย ลูกค้าต้องเป็นคนกำหนดและทดสอบ UATเองเพื่อกำหนดความชัดเจนวิธีการตรวจสอบคุณภาพระบบ สุดท้าย (แต่ไม่ท้ายสุด) คือ Product Release เป็นการทำการ build ระบบที่ผ่านการทดสอบเพื่อส่งมอบให้ลูกค้าต่อไป ผลจากการทำงานครบรอบหากยังมีข้อผิดพลาดหรือการเปลี่ยนแปลง กระบวนการพัฒนาก็จะวนเข้าสู่รอบใหม่อีกครั้ง

นี่คือกระบวนการพัฒนาระบบงานระดับองค์กรตามแนวความคิดของผม ที่ได้รวบรวมจากประสบการณ์ทำงานและความรู้จากแหล่งต่างๆเพื่อที่จะสร้างสไตล์การทำงานที่เหมาะสมกับองค์กรผม หลายเรื่องได้ทำไปแล้ว หลายเรื่องกำลังทำอยู่ และมีบางเรื่องก็เพิ่งเริ่มต้น (ยังหารูปแบบที่ชัดเจนยังไม่ได้) แต่สิ่งที่สำคัญที่สุดคือ Feedback Learning เรียนรู้และนำมาปรับปรุงแก้ไข สุดท้ายอยากฝากคำคมของ Aristotle นักปราชญ์ชาวกรีกที่มีความหมายใกล้เคียงกับ Feedback Learning ที่ว่า

“We are what we repeatedly do. Excellence, then, is not act, but a habit”

เราจะเป็นอย่างที่เราทำอยู่ซ้ำๆ ผลงานยอดเยี่ยมไม่ได้เกิดจากการกระทำ แต่เกิดจากนิสัย

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

อ่านความคิดเห็น

ความคิดเห็นที่ 4
Bisutto วันที่ : 30/08/2007 เวลา : 09.33 น.
http://www.oknation.net/blog/MrWisut

ไม่ต้องคิดมากครับ อ่านเรื่องที่เราไม่คุ้นมากเป็นอาการแบบนี้เสมอ อ่านไปเยอะๆ เรียนไปเรื่อยๆ อย่าท้อสักวันก็รู้เรื่องเองครับ

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

คุณ kikuno อีกสักพักกลับมาอ่าน อาจจะรู้สึกอย่างนั้นก็ได้
ความคิดเห็นที่ 3
kikuno วันที่ : 29/08/2007 เวลา : 23.10 น.
http://www.oknation.net/blog/konbini

อ๋อย อ่านแล้วมึนเล็กน้อย
แต่ก็จะพยายาม
เพราะตอนนี้ก็ต้องคุยกับเพื่อน
ที่เป็นโปรแกรมเมอร์อยู่เหมือนกัน
ความคิดเห็นที่ 2
kikuno วันที่ : 29/08/2007 เวลา : 23.02 น.
http://www.oknation.net/blog/konbini

อ๋อย อ่านแล้วมึนเล็กน้อย
แต่ก็จะพยายาม
เพราะตอนนี้ก็ต้องคุยกับเพื่อน
ที่เป็นโปรแกรมเมอร์อยู่เหมือนกัน
ความคิดเห็นที่ 1
oki วันที่ : 27/08/2007 เวลา : 17.22 น.
http://www.oknation.net/blog/okna

ดีครับเป็นความรู้ครับมากๆ
แสดงความคิดเห็น

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

ถึง บล็อกเกอร์ ทุกท่าน โปรดอ่าน
   ด้วยทาง บริษัท จีเอ็มเอ็ม แกรมมี่ จำกัด (มหาชน) ได้ติดต่อขอความร่วมมือ มายังเว็บไซต์และเว็บบล็อกต่าง ๆ รวมไปถึงเว็บบล็อก 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 31