ปัญหาเขียนโปรแกรมตอนสิบเอ็ด


ปัญหาเขียนโปรแกรมตอนเก้าและสิบ


สำหรับคนที่ไม่ได้ติดตาม narisa.com โจทย์หัดเขียนโปรแกรมตอนเก้าและสิบที่รวบรวมไว้ในหมวดปัญหาเขียนโปรแกรม

ใครอยากลับสมองหัดเขียนโปรแกรมแก้ปัญหาโจทย์ หรือศึกษาโค้ดที่คนอื่นทำส่ง เข้าไปดูได้ครับ

- เกมส์ทายคำ 11/12/2009
- แปลง CSS Selectors ให้เป็น HTML 11/05/2010

ตัวอย่างแผนโครงการ


สองบทความที่ผ่านมากล่าวถึงทฤษฎีว่าด้วยเรื่องของการวางแผนโครงการ (project planning) สำหรับบทความนี้ผมจะยกตัวอย่างของแผนโครงการที่ถูกเขียนขึ้นตามหลักการทฤษฎี ดังกล่าวครับ

ก่อนอื่นเรามาทบทวนกันซักนิดว่าองค์ประกอบที่สำคัญของแผนโครงการมีอะไร บ้าง อย่างแรกได้แก่ Statement of Work (SOW) สองคือ project specification สาม milestone schedule และสุดท้ายคือ Work Breakdown Structure (WBS) เมื่อความรู้แน่นขนาดนี้ เรามาลงมือวางแผนพร้อมกันเลยครับ

Statement of Work (SOW)

สำหรับ Statement of Work นั้นหลักๆเลยก็ต้องมีวัตถุประสงค์ของโครงการ (project objective) และผลลัพธ์ที่ต้องการ (list of deliverables) ตัวอย่างเช่น

The iStore project has objective to support customer shopping with RFID to be installed in 282 branches within 18 months under the budget of 3,500 million baht. The project scope includes the following tasks:

  • Project feasibility study
  • System requirements engineering and design
  • Equipment procurement and installation
  • System development and integration
  • Technology transfer and users training
  • System commissioning and tuning
  • Maintenance and on-site service for 12 months

The project deliverables will include, but not limited to,

  • Designed system
  • System document
  • Training packages
  • Project reports

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

S = Specific: ความเฉพาะเจาะจงที่ผู้อ่านเข้าใจได้อย่างชัดเจนก็คือ โครงการมีขึ้นเพื่อติดตั้งระบบ RFID ให้กับสาขาทั้งสิ้น 282 สาขา

M = Measurable: วัตถุประสงค์นั้นต้องสามารถประเมินผลได้ซึ่งการที่เราระบุตัวเลขต่างๆลงใน วัตถุประสงค์นั้นจะช่วยให้เราประเมินผลความคืบหน้าหรือความสำเร็จได้ง่าย ขึ้นมากทีเดียว เช่น ติดตั้งระบบให้กับ 282 สาขาภายใน 18 เดือนด้วยงบประมาณ 3,500 ล้านบาท

A = Attainable: วัตถุประสงค์นั้นต้องสามารถทำได้จริงทั้งในแง่ของผลลัพธ์ งบประมาณ และระยะเวลาที่ใช้ ซึ่งที่ผมยกตัวอย่างมานั้นก็ดูแล้วน่าจะทำได้จริง

R = Relevant: วัตถุประสงค์นั้นจะต้องตรงประเด็นและเข้ากันได้กับสถานการณ์รอบของ สำหรับกรณีนี้โครงการใหญ่ (program) คือโครงการที่ต้องการเพิ่มยอดขายให้กับบริษัท โครงการ iStore ถูกจัดเป็นโครงการย่อยภายใต้โครงการใหญ่อีกที ดังนั้นวัตถุประสงค์ของ iStore จะต้องเข้ากันได้กับวัตถุประสงค์ของโครงการใหญ่นั่นคือเพื่อเพิ่มยอดขาย

T = Time-Specific: วัตถุประสงค์ที่ดีต้องมีการกำหนดระยะเวลาในการบรรลุผลด้วย สำหรับ iStore นั้นกำหนดเวลาคือ 18 เดือน

สำหรับตัวอักษรสีน้ำเงินนั้นเป็นการระบุกลุ่มงานคร่าวๆซึ่งเป็นข้อตกลง ระหว่างลูกค้าและผู้จัดการโครงการและโดยทั่วไปแล้วจะถูกเขียนไว้ในข้อเสนอ โครงการ (project proposal) หรือหนังสือสัญญา (contractual document) ด้วย เราจะเรียกกลุ่มงานนี้ว่า Contractual Work Breakdown Structure (CWBS) ก็ได้ครับ หลังจากที่กำหนด CWBS  แล้ว ผู้จัดการโครงการจะส่งข้อมูลนี้ให้ผู้จัดการตามสายงาน (line manager) เพื่อไปขยายผลสร้างแผนงานอย่างละเอียด (WBS) ต่อไป

ตัวอักษรสีแดงคือผลลัพธ์ที่ต้องการ (list of deliverables) เป็นการกำหนดว่าเมื่อเสร็จสิ้นโครงการแล้วจะต้องมีอะไรถูกส่งมอบให้ลูกค้า บ้าง ข้อมูลส่วนนี้จะถูกใช้อีกครั้งตอนที่เราระบุกำหนดการของเป้าหมาย (milestone schedule)

Project Specification

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

  • All hardware and software requirements will be according to RFP-01-0246.
  • All electricity installation standards will be complied with MEA-0125-2547 and NEMA latest version.
  • All data and communication device installation must be complied with ITU.

Milestone Schedule

นอกจากจะเป็นส่วนที่กำหนดวันเริ่มต้นและสิ้นสุดโครงการแล้ว ส่วนนี้จะเป็นการขยายความของผลลัพธ์ที่ต้องการ (list of deliverables) โดยระบุเวลาส่งมอบผลลัพธ์ให้กับลูกค้า การกำหนดระยะเวลาที่แน่นอนจะช่วยอำนวยความสะดวกให้ผู้จัดการโครงการติดตาม ความก้าวหน้าของโครงการได้ง่ายขึ้นครับ ตัวอย่าง milestones ของโครงการ iStore คือ

Project Start Date = Jan 1, 2007

Project End Date = Jun 30, 2008

Major Milestone                   Key Date

Design system                   Jun 15, 2007

System document              Feb 28, 2008

Training packages             Jan 01, 2008 – Jun 30, 2008

Project reports                  Monthly

Work Breakdown Structure (WBS)

เราควรจะอ้างอิงถึงกลุ่มงานคร่าวๆที่อยู่ใน SOW (ตัวอักษรสีน้ำเงิน) เพื่อนำมาขยายความสร้างเป็นแผนงานอย่างละเอียด (WBS) ด้วยการกำหนดให้กลุ่มงานคร่าวๆนั้นเป็น task (ระดับที่3) ของ project (ระดับที่ 2) ใน WBS (ผมอ้างอิงถึงทฤษฎีในบทความที่แล้วนะครับ) ตัวอย่างเช่น

Program 1: iSell

Project 1: iStore

Task 1: Project feasibility study

Sub-Task 1: Preliminary investigation

Work Package 1: Identify objective, constraints and scope

Level of Effort 1: Project manager, Customer-relationship manager, Financial manager <10 days, $1,200>

Work Package 2: Estimating cost and benefit

Level of Effort n: …

Work Package 3: Evaluate feasibility study plan

Work Package n: …

Sub-Task 2: Conduct customer survey

Sub-Task n: …

Task 2: System requirements engineering and design

Task 3: Equipment procurement and installation

Task n: …

Project 2: iLogistic

Project 3: iCRM

จากตัวอย่างข้างบนจะเห็นว่าโครงการใหญ่ (program) คือ iSell ซึ่งประกอบด้วยโครงการย่อยสามโครงการได้แก่ iStore, iLogistic และ iCRM ครับ การเขียน WBS ของโครงการย่อย iStore จะเริ่มจากระดับที่ 2 (project) เราก็ใส่ชื่อโครงการของเราไปได้เลย จากนั้นในระดับที่ 3 (task) อย่างที่แนะนำไว้เราจะกำหนดงานให้กับโครงการได้ง่ายๆโดยการเอากลุ่มงาน คร่าวๆที่อยู่ใน SOW มาใส่ลงไปเลย ถึงตรงนี้จะว่าไปก็หมดหน้าที่โดยตรงของผู้จัดการโครงการ (project manager) แล้วเพราะระดับที่ 4-6 นั้นจะเป็นความรับผิดชอบของผู้จัดการตามสายงาน (line manager) ที่จะไประบุรายละเอียดต่างๆให้ครบถ้วน เริ่มต้นจากกำหนดงานย่อย (sub-task) ในระดับที่ 4 กำหนดขั้นตอนการทำงาน (work package) ในระดับที่ 5 และสุดท้ายกำหนดทรัพยากรที่ต้องการ (level of effort) อันได้แก่บุคคลากร ระยะเวลา และงบประมาณที่ต้องใช้ในระดับที่ 6 ซึ่งเป็นระดับสุดท้ายครับ

Term Definition

อันนี้แถมครับ เราควรจะเขียนคำอธิบายสำหรับคำศัพท์ (term) ต่างๆที่เราใช้ในแผนโครงงานของเราด้วยโดยเฉพาะอย่างยิ่งคำศัพท์สำหรับ ผลลัพธ์ที่ต้องการ (list of deliverables) เพื่อเป็นการป้องกันการเข้าใจผิดหรือตีความความหมายผิดในระหว่างการทำงาน จริง อีกอย่างที่สำคัญอย่างยิ่งคือถ้าแผนโครงงานเป็นส่วนหนึ่งของเอกสารสัญญา การที่เราระบุความหมายของคำศัพท์ต่างๆให้ชัดเจนจะช่วยให้เรามีภูมิคุ้มกัน ทางด้านกฎหมายไปในตัวด้วยครับ

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

Term: Designed system

Meaning: A system comprises subsystem, modules, network devices, computer hardware, software, firmware, documentation to be put together as a single unit for user(s) to use for their day-to-day operation. The designed system is to be used for procurement and installation.

Term: System document

Meaning: All related documents pertaining to designed system, i.e. user manuals, reference manual, etc.

Term: Training packages

Meaning: List of training courses and course contents to be trained for the trainers and the end users.

Term: Project reports

Meaning: All reports to be used to coordinate and inform the project community.

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

ขอบคุณครับ

Project Management and Software Development Blog for Thais | Chapterpiece.com
Better Managing, Better Living

ขั้นตอนในการวางแผนโครงการ


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

ปฏิเสธไม่ได้เลยว่าการบริหารงานให้ประสบความสำเร็จนั้นจำเป็นจะต้องมีการ วางแผนโครงการที่ดี ซึ่งแผนโครงการที่ดีนั้นประกอบด้วย 4 ส่วนประกอบสำคัญได้แก่

  1. คำอธิบายที่เกี่ยวกับโครงการ (Statement of Work – SOW หรือ Scope Statement)
  2. รายละเอียดและข้อกำหนดเกี่ยวกับโครงการ (Project Specification)
  3. กำหนดการของเป้าหมาย (Milestone Schedule)
  4. แผนงานอย่างละเอียด (Work Breakdown Structure)

คำอธิบายที่เกี่ยวกับโครงการ (Statement of Work – SOW หรือ Scope Statement)

คือคำอธิบายแบบละเอียดของโครงการและงานที่ต้องทำในโครงการ คำอธิบายที่เกี่ยวกับประกอบด้วยวัตถุประสงค์ของโครงการ คำอธิบายโดยย่อของงานสำคัญ รายการของผลผลิต (list of deliverables) ข้อจำกัดเกี่ยวกับงบประมาณ (ถ้ามี) และหมายกำหนดการโดยรวม (overall schedule)

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

รายละเอียดและข้อกำหนดเกี่ยวกับโครงการ (Project Specification)

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

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

กำหนดการของเป้าหมาย (Milestone Schedule)

ประกอบด้วย

  • วันเริ่มต้นโครงการ (project start date)
  • วันสิ้นสุดโครงการ (project end date)
  • กำหนดการของเป้าหมายสำคัญ (major milestones)
  • ผลผลิตหรือรายงาน (deliverables or reports)

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

แผนงานอย่างละเอียด (Work Breakdown Structure)

คือตัวแทนซึ่งถูกจัดเรียงเป็นลำดับขั้นของงานที่ต้องทำในโครงการเพื่อ บรรลุวัตถุประสงค์ ในการวางแผนโครงการผู้จัดการโครงการต้องวางโครงสร้างของงานเป็นส่วนเล็กๆ เพื่อ

  • ง่ายต่อการบริหารจัดการเพราะอำนาจและผู้รับผิดชอบจะถูกกำหนดให้กับงานชิ้นเล็ก
  • ลดความเกี่ยวข้องและขึ้นต่อกันระหว่างงานใหญ่ๆลง
  • ง่ายต่อการวัดผลและติดตามความก้าวหน้าของงาน

การออกแบบและเขียนแผนงานอย่างละเอียดต้องทำด้วยความรอบคอบ แผนงานอย่างละเอียดที่ดีสามารถใช้ในการจัดเตรียมสิ่งต่างๆได้ดังนี้

  • ตารางความรับผิดชอบ (the responsibility matrix)
  • โครงข่ายของหมายกำหนดการ (network scheduling)
  • ค่าใช้จ่าย (costing)
  • การวิเคราะห์ความเสี่ยง (risk analysis)
  • โครงสร้างขององค์กรหรือบุคคลากร (organizational structures)
  • แผนการควบคุม (control)

คำจำกัดความของงานในลำดับล่างสุดควรประกอบด้วย

  • วัตถุประสงค์ (objective): สิ่งที่ต้องทำให้สำเร็จในงานนี้ (expected outcome)
  • ผลผลิตที่ต้องส่งมอบ (deliverable): เป็นสิ่งที่จับต้องหรือใช้งานได้ ประกอบด้วยฮาร์ดแวร์ ซอฟท์แวร์ รายงาน และอื่นๆ
  • กำหนดเวลา (schedule): งานทั้งหมดต้องมีวันเริ่มต้น วันสิ้นสุด และวัน(เวลา)สำหรับรายงานความคืบหน้าของงาน (update date)
  • งบประมาณ (budget): งบประมาณที่ต้องใช้ในการทำงานแต่ละงาน
  • มาตรการวัดผล (performance measures): กำหนดมาตรการวัดผลความคืบหน้าของงานโดยการเปรียบเทียบผลงานจริง(actual) และความคาดหวัง (planned) ระหว่างดำเนินโครงการ
  • หน้าที่รับผิดชอบ (responsibility): ระบุผู้รับผิดชอบให้กับแต่ละงานในโครงการ

ถึงแม้ว่าจะมีหลายวิธีในการสร้างแผนงานอย่างละเอียด แต่โดยปกติแล้วแผนงานอย่างละเอียดจะประกอบด้วยหกลำดับขั้นดังนี้

ระดับ                           คำอธิบาย

1                                  โครงการรวม (total program)

2                                    โครงการ (project)

3                                      งาน (task)

4                                        งานย่อย (sub-task)

5                                           ขั้นตอนการทำงาน (work package)*

6                                             ทรัพยากรที่ต้องการ (level of effort)

* ขั้นตอนการทำงาน (work package) เป็นระดับพิเศษที่สามารถมีอยู่ได้ทุกระดับของแผนโครงการภายใต้ระดับที่ 1

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

  • สามระดับแรกของแผนงานอย่างละเอียดจะเป็นผลรวมของทรัพยากรที่มาจากทุกๆ แผนกไม่ใช่แผนกใดแผนกหนึ่ง ซึ่งทรัพยากรแยกของแต่ละแผนกนั้นควรจะถูกระบุไว้ที่ระดับที่ 4 และ 5 ตัวอย่างเช่น งานที่เกิดขึ้นที่ระดับที่ 3 เป็นงานที่เกิดจากสามแผนกได้แก่ แผนกบุคคล แผนกการตลาด และแผนกสารสนเทศ ดังนั้นผลรวมของทรัพยากรที่ใช้สำหรับงานนั้นต้องเกิดจากทรัพยากรของสามแผนก ดังกล่าวรวมกัน
  • ผลรวมของส่วนประกอบต่างๆ ไม่ว่าจะเป็นระยะเวลา แรงงาน และงบประมาณของระดับบนจะเท่ากับผลรวมของส่วนประกอบจากงานทั้งหมดที่เกิดขึ้น กับระดับต่ำกว่าลงไป
  • ระดับที่จะมีการบริหารจัดการเกิดขึ้นจริงนั้นได้แก่ระดับที่ 5 ซึ่งระดับพิเศษที่สามารถมีอยู่ได้ทุกระดับของแผนโครงการภายใต้ระดับที่ 1
  • แผนงานอย่างละเอียดในทุกระดับต้องมาคู่กับคำอธิบายอย่างชัดเจนเกี่ยวกับ ขอบเขตและวัตถุประสงค์ของงานนั้นๆ โดยทั่วไปแล้วคำอธิบายดังกล่าวจะสอดคล้องกับคำอธิบายที่เกี่ยวกับโครงการ (Statement of Work)
  • หลักการที่ควรปฏิบัติสำหรับผู้จัดการโครงการคืออนุญาตให้ผู้จัดการตาม สายงานทั้งหมดมีส่วนในการประเมินความเสี่ยงในคำอธิบายที่เกี่ยวกับโครงการ (SOW)และแผนงานอย่างละเอียด (WBS)

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

ขอบคุณครับ

อ้าง อิงข้อมูลจาก: Project Management – A Systems Approach to Planning, Scheduling, and Controlling, Eight Edition ของ , Harold Kerzner, PhD

Technology Management Academy for Thais | Chapterpiece.com
Better Managing, Better Living

บทเริ่มต้นของการวางแผนโครงการ (project planning)


บทเริ่มต้นของการวางแผนโครงการ

บทความนี้กล่าวถึงภาพรวมโดยทั่วไปของการวางแผนโครงการ (project planning) ซึ่งผมได้ประมวลความรู้ความเข้าใจที่มีบวกกับข้อมูลที่มาจากหนังสือ Project Management – A Systems Approach to Planning, Scheduling, and Controlling, Eight Edition ของ , Harold Kerzner, PhD หวังว่าจะมีประโยชน์กับเพื่อนๆครับ

ความรับผิดชอบที่สำคัญที่สุดของผู้จัดการโครงการ (Project Manager) คือการวางแผนและการปฏิบัติตามแผนงานนั้น โดยทั่วไปแล้วการวางแผนหมายถึงการระบุวัตถุประสงค์และการกำหนดนโยบาย (policies) วิธีการปฏิบัติ(procedures) และหมายกำหนดการ (program) เพื่อที่จะบรรลุวัตถุประสงค์ที่ตั้งไว้ เหตุผลหลักที่ชี้ให้เห็นความสำคัญของการวางแผนโครงการคือ

  1. เพื่อกำจัดหรือลดความไม่แน่นอน
  2. เพื่อปรับปรุงประสิทธิภาพในการปฏิบัติงาน
  3. เพื่อความเข้าใจที่มากขึ้นเกี่ยวกับวัตถุประสงค์ของโครงการ
  4. เพื่อเตรียมการสำหรับการติดตามและควบคุมงานต่างๆในโครงการ

ผู้จัดการโครงการซึ่งเป็นบุคคลสำคัญที่มีผลต่อความสำเร็จของการวางแผนโครงการ นั้นจำเป็นต้องมีส่วนร่วมตั้งแต่การริเริ่มโครงการ (conception) จนถึงการปฏิบัติการ (execution) แผนโครงการที่ดีจำเป็นจะต้องถูกออกแบบมาอย่างมีระบบ (systematic) ยืดหยุ่น (flexible) เพียงพอที่จะจัดการกับงานที่มีความพิเศษแต่ละงานและอยู่ระเบียบ (disciplined) ผ่านการตรวจสอบและควบคุม ถ้าแผนโครงการไม่มีคุณสมบัติเหล่านี้อาจจะทำให้เกิดผลเสียที่ตามมา เช่นการเริ่มโครงการโดยที่ยังไม่มีการระบุความต้องการและวัตถุประสงค์และ ความสับสนวุ่นวายในระหว่างการปฏิบัติงาน เป็นต้น

ส่วนประกอบของแผนโครงการ

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

  1. วัตถุประสงค์ (objective): เป้าหมายที่ต้องทำให้สำเร็จภายในระยะเวลาที่กำหนด
  2. ระเบียบวาระ (program): กระบวนการหรือวิธีการที่ต้องทำเพื่อบรรลุวัตถุประสงค์
  3. หมายกำหนดการ (schedule): กำหนดเวลาที่งานหรือกลุ่มงานต้องเริ่มและ/หรือเสร็จ
  4. งบประมาณ (budget): ค่าใช้จ่ายที่ต้องใช้เพื่อบรรลุวัตถุประสงค์
  5. การคาดหมาย (forecast): การคาดหมายว่าเหตุการใดจะเกิดขึ้นเมื่อเวลาใด
  6. หน่วย งานและผู้ร่วมงาน (organization): การออกแบบจำนวนผู้ร่วมงาน ตำแหน่งงาน หน้าที่ความรับผิดชอบต่างๆที่จำเป็นต่อการบรรลุวัตถุประสงค์
  7. นโยบาย (policy): ข้อแนะนำทั่วไปสำหรับการตัดสินใจต่างๆในการทำงาน
  8. วิธีการปฏิบัติ (procedure): วิธีการในรายละเอียดเพื่อปฏิบัติการให้ลุล่วงตามนโยบาย
  9. มาตรฐาน (standard): ระดับในการประเมินผลว่าเพียงพอหรือเป็นที่ยอมรับได้ซึ่งกำหนดไว้สำหรับบุคคลหรือกลุ่มบุคคล

บุคคลที่เกี่ยวข้องกับการวางแผนโครงการ

ความเข้าใจในหน้าที่และความรับผิดชอบของแต่ละบุคคลนั้นมี ส่วนสำคัญอย่างมากต่อความสำเร็จในการวางแผนโครงการ หน้าที่และความรับผิดชอบของแต่ละบุคคลมีดังนี้

ผู้จัดการโครงการ (Project Manager) ทำหน้าที่กำหนด

- เป้าหมายและวัตถุประสงค์ (goals and objectives)
- จุดหมายที่สำคัญ (major milestones)
- ความต้องการของโครงการ (requirements)

- กฎพื้นฐานในการทำงาน (ground rules)
- ข้อจำกัดของเวลา (time) งบประมาณ (cost) และคุณสมบัติ (performance)
- วิธีการและขั้นตอนการปฏิบัติงาน (operating procedures)
- นโยบายเกี่ยวกับการจัดการหรือการบริหาร (administrative policy)
- หลักการในการรายงานผล (reporting requirement)

ผู้จัดการตามสายงาน (Line Manager) ทำหน้าที่กำหนด

- รายละเอียดของแต่ละงานที่ต้องทำเพื่อบรรลุวัตถุประสงค์ และความต้องการ
- รายละเอียดของระยะเวลา แรงงาน และงบประมาณที่ต้องการในแต่ละงาน
- ระบุงานหรือกลุ่มงานที่มีความเสี่ยง (risk) ความไม่แน่นอน (uncertainty)
และความขัดแย้ง (conflict) ของโครงการ

ผู้จัดการอาวุโส (Senior Management/Project Sponsor) ทำหน้าที่

- เป็นผู้เจรจาเมื่อเกิดข้อขัดแย้งระหว่างผู้จัดการโครงการและผู้จัดการตามสายงาน
- ให้ความกระจ่างสำหรับประเด็นหรือปัญหาสำคัญ
- เป็นตัวกลางในการติดต่อสื่อสารกับผู้จัดการอาวุโสของลูกค้า (customer’s senior management)

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

ขอบคุณครับ

Technology Management Academy for Thais | Chapterpiece.com
Better Managing, Better Living

Previous Articles

ไสลด์ทั้งหมดจากงาน Software Park Annual Conference 2009


มาพัฒนา Servlet & JSP ด้วย Netbeans กัน ตอนที่ 4


ย้ายเกมส์ Hangman ไว้ที่ Heroku


ประชาสัมพันธ์งาน Software Park Annual Conference 2009


มาพัฒนา Servlet & JSP ด้วย Netbeans กัน ตอนที่ 3


« ดูรายการก่อนหน้านี้

ยินดีต้อนรับสู่ ThaiDev.org 2.0

เวปนี้รวบรวมบทความทางการพัฒนาซอฟท์แวร์หัวข้อการเขียนโปรแกรม กระบวนการพัฒนาซอฟท์แวร์ และเทคโนโลยีที่เกี่ยวข้อง เพื่อนักพัฒนาไทยโดยอาสาสมัครคนไทยด้วยกัน ตอนนี้เราได้รับอนุญาติจากคุณมาร์ติน ฟาวเลอร์ในการแปลบลอกที่เขาเขียนเป็นภาษาไทยให้คนไทยได้ติดตามอ่านง่ายๆ ใครต้องการอ่านบทความด้านไหน มีข้อเสนอะแนะ หรือต้องการอาสาช่วยกันเขียนหรือแปลบทความ ติดต่อทีมงานเราได้ครับ

Subscribe feed

ความคิดเห็นล่าสุด

หัวข้อ

คลังรายการ

จัดการ