(IT) Project Management : การบริหารโครงการ IT
Project คือ โครงการที่องค์กรสร้างขึ้นเพื่อพัฒนากระบวนการ สินค้า หรือการพัฒนาอย่างใดอย่างหนึ่ง ข้อจำกัดของ project คือ มีระยะเวลาในการเริ่มต้นและสิ้นสุดชัดเจน มีการระบุเป้าหมายขอบเขตของงานชัดเจน โดยปกติเวลาพูดถึง project จะหมายถึงโครงการใหม่ๆที่เกิดขึ้นในองค์กร
ข้อแตกต่างระหว่าง project กับ operation
Operation คือกระบวนการทำงานโดยปกติ ไม่มีระยะเวลาเริ่มต้นและสิ้นสุด แต่ project มีระยะเวลาเริ่มต้นและสิ้นสุด project โดยส่วนใหญ่จะเป็นการสร้างโครการที่มีความสำคัญต่อองค์กร ส่วน operation คืองานที่องค์กรต้องทำอยู่แล้ว
Project management
คือ กระบวนการบริหารในการติดตาม ควบคุม กิจกรรมต่างๆที่เกี่ยวข้องกับโครงการ รวมไปถึงการบริหารขอบเขตการดำเนินงาน การบริหารเวลา การบริหารค่าใช้จ่าย เวลาพูดถึง project จะมี 3 มิติหลักที่ต้องนำมาพิจารณา
1. มิติ time คือ มีระยะเวลาเริ่มต้นและสิ้นสุด
2. มิติ cost คือ ต้นทุน งบประมาณ ค่าใช้จ่าย
3. มิติ scope คือ ขอบเขตของโครงการนั้นๆ
โดยปกติ ถ้าเราต้องการเน้นมิติใดมิติหนึ่ง เราก็ต้องสูญเสียมิติอื่นๆไป ยกตัวอย่างเช่น ถ้าเราต้องการพัฒนาโครงการให้บรรลุวัตถุประสงค์โดยใช้ระยะเวลาอันสั้น เราก็จะต้องลด scope ของการดำเนินงาน หรืออาจต้องเพิ่มงบประมาณ เพิ่มค่าใช้จ่ายของการดำเนินงานนั้น ถ้าเราต้องการให้ความสำคัญกับcost ก็คือ มีค่าใช้จ่ายที่จำกัด เราก็ต้องลดขอบเขตของการดำเนินงานนั้นๆ หรืออาจจะต้องขยายเวลาในการดำเนินงานของโครงการนั้นๆ สรุปก็คือ project management คือ การบริหาร 3 มิติเหล่านี้ โดยมี project manager เป็นผู้รับผิดชอบ
หน้าที่ของ project manager (ผู้บริหารโครงการ)
ทำหน้าที่บริหารมิติ time cost scope ประสานงานบุคคลที่เกี่ยข้องในโครงการ ระบุความเสี่ยงที่เกี่ยวข้องในโครงการ
โครงการจะต้องมี team member จะต้องมีความเข้าใจที่ตรงกัน จะต้องมี project cycle plan
Project Cycle Plan
คือ มีกระบวนการในการกำหนดตารางงาน กำหนดระยะเวลาในการดำเนินงานกิจกรรมต่างๆ ผ่านทางเครื่องมือ Gantt chart, PERT, CPM และต้องมีกระบวนการในการบริหารเวลา ค่าใช้จ่าย และขอบเขตของการดำเนินงาน ในการบริหารตารางเวลา ทุกๆ project จะต้องมีเวลาเริ่มต้นและเวลาสิ้นสุด ความสำคัญของ project ก็คือ จะต้องรู้ว่า กิจกรรมแต่ละกิจกรรมจะใช้เวลาในการทำงานเท่าไหร่ กิจกรรมใดที่ต้องมาก่อน กิจกรรมใดที่ต้องมาทีหลัง
เครื่องมือเหล่านี้จะมีอยู่ในซอฟแวร์ เช่น Microsoft Project เช่น การทำ PERT chart คือ เราระบุกิจกรรมที่จะทำลงไป ระบุระยะเวลา ระบุความเชื่อมต่อกิจกรรมต่างๆในการดำเนินโครงการ PERT chart จะให้ความสำคัญของกระบวนการ ว่า step ใดต้องมาก่อน step ใดทำไปพร้อมๆกันได้ step ใดต้องทำทีหลัง ส่วน Gantt chart ให้ความสำคัญกับระยะเวลา ทุกๆ project จะมีกิจกรรมย่อยๆอยู่ในตัว project นั้นๆ เราจะเห็นระยะเวลาเริ่มต้นและสิ้นสุดของแต่ละกิจกรรม รวมไปถึงขั้นตอนของกิจกรรมต่างๆที่จะต้องเชื่อมโยงกัน
IT Project
IT Project มีความแตกต่างจาก project อื่นค่อนข้างมาก คือ มีค่าใช้จ่ายสูง มีผลกระทบต่อองค์กรสูง มีความเสี่ยงสูง รูปแบบของการบริหารงาน IT Project จะมีหน่วยวัดความยากง่ายของ IT Project ซึ่งถูกวัดโดยมาตรฐานที่ชื่อว่า “man-months” คือ จำนวนคนที่ต้องใช้ในการดำเนินงานต่อเดือน ยิ่ง man-months สูงก็หมายความว่า project นั้นเป็น project ที่มีความพร้อมและมีค่าใช้จ่ายที่สูง เช่น 9 man-months หมายความว่า project นั้นๆ สามารถทำสำเร็จได้โดยใช้คน 9 คนภายใน 1 เดือน หรือว่า คน 1 คนภายใน 9 เดือน แต่ก็ไม่เสมอไป เพราะในแต่ละโครงการ การที่เอาคนจำนวนมากเข้าไปจับที่การดำเนินงานก็ไม่ได้ทำให้งานนั้นเกิดขึ้นรวดเร็วขึ้น เพราะงานบางอย่างอาจจะมีขั้นตอนที่ต้องทำงานต่อเนื่องกัน หรือ งานบางอย่างอาจจะต้องใช้คนใดคนหนึ่งทำ การที่ใส่คนจำนวนมากไม่ได้หมายความว่าจะทำให้งานเสร็จสิ้นรวดเร็วขึ้น เช่น คนท้อง ใช้ผู้หญิง 1 คนทำงาน project ในการท้อง 9 เดือน การใช้ผู้หญิง 9 คนไม่ได้ทำให้การท้องคลอดได้เร็วขึ้น
ในการพัฒนาโครงการ IT มีมาตรฐานอยู่ คือ
- Systems Development Life Cycle (SDLC)
- Prototyping
- Rapid applications development (RAD)
SDLC
SDLC เป็นรูปแบบของการพัฒนาระบบ IT ขององค์กรที่มีมานานแล้ว มีขั้นตอนการดำเนินงาน 6 ขั้นตอน
1 systems analysis
2 system design
3 programming
4 testing
5 conversion
6 production and maintenance
การทำงานของ SDLC เป็นแบบ step by step คือ ทำงานตามลำดับขั้นตอน เริ่มจาก system analysis ก่อน เป็นมาตรฐานที่ใช้บริหารโครงการ IT โดยเฉพาะ project ที่มีขนาดใหญ่ ไม่มีข้อจำกัดทางด้านเวลา เพราะใช้ระยะเวลาค่อนข้างนาน
Systems development คือ กระบวนการที่องค์กรพัฒนาขึ้นมาเพื่อสร้างระบบสารสนเทศน์ในองค์กร เพื่อแก้ปัญหาอย่างใดอย่างหนึ่งหรือเพื่อเป็นการสร้างโอกาสให้กับองค์กร
Step แรกคือ systems analysis
คือ กระบวนการวิเคราะห์ปัญหาขององค์กรที่มีอยู่ในปัจจุบัน รวมไปถึงกระบวนการในการวิเคราะห์โอกาสที่เกิดขึ้นจากการนำเอาระบบ IT ที่องค์กรต้องการพัฒนามาใช้ กระบวนการของ systems analysis คือการระบุเป้าหมายว่า ระบบ IT ที่ต้องการพัฒนามันจะนำไปแก้ปัญหาอะไรบ้าง เป็นกระบวนการแรกที่องค์กรจะต้องทำก่อนที่จะพัฒนาระบบใดระบบหนึ่งให้เกิดขึ้นมี step ย่อยคือ
การทำ feasibility study คือ วิเคราะห์ว่า ระบบที่จะพัฒนาขึ้นมีความเป็นไปได้มากน้อยแค่ไหนขององค์กรในการพัฒนา มี 4 ด้านคือ 1. ด้านเทคนิค ว่าองค์กรมีความสามารถทางด้านเทคนิครึปล่าว 2. ด้านeconomic คือ มีงบประมาณเพียงพอรึปล่าว 3. ด้าน behavior คือ หลังจากที่มีการพัฒนาระบบ IT เข้ามาแล้ว ผู้ใช้จะมีการตอบรับในการใช้รึปล่าว 4. ด้าน organizational คือ เหมาะสมกับองค์กรรึปล่าว หลังจากทำ feasibility เสร็จ จะเป็นการตัดสินใจว่า องค์กรควรจะพัฒนาระบบ IT นั้นๆรึปล่าว
ในการทำ feasibility study ต้องมีการเก็บ requirement ว่า ระบบที่องค์กรต้องการพัฒนาควรจะต้องมี function ไรบ้าง เรียกว่า information requirement คือ อะไรบ้างที่เป็น function ที่องค์กรต้องการจัดระบบเพื่อที่จะแก้ปัญหาอย่างใดอย่างหนึ่ง ในการเก็บควรเก็บจาก stake holders ต่างๆ คือ user manager customer partner supplier กระบวนการเก็บจะต้องมีการทำ observation เก็บข้อมูลว่า stake holders ต่างๆ มีความคาดหวังยังไงกับระบบ IT ที่องค์กรจะพัฒนา วิธีการหนึ่งที่ใช้คือ การเข้าไปถามว่าอะไรคือ ปัจจัยที่คิดว่าระบบ IT นั้นๆจะนำไปสู่ความสำเร็จ หรือ critical success factor ตัวอย่างเช่น การทำ e-learning ที่นิด้า จะมีการทำโฟกัสกรุ๊ปก่อนที่จะพัฒนาระบบ สอบถามว่าอะมี function ไหนบ้างที่คิดว่าเป็นการทำ e-learning ที่ประสบความสำเร็จ การทำโฟกัสกรุ๊ปแล้วมาประชุมกันกับผู้พัฒนาระบบเพื่อหา function ไหนบ้างที่ต้องการ เรียก่า Joint Application Design
ความสำเร็จและความล้มเหลวของระบบ IT มาจาก user เป็นหลัก ระบบใดก็ตามที่นำเอา user หรือ stake holder ที่มีส่วนเกี่ยวข้องเข้ามามีส่วนร่วมในช่วงแรกๆที่มีการทำ requirement จะมีโอกาสประสบความสำเร็จค่อนข้างสูง
Step 2 System Design
หลังจากได้ requirement จาก system analysis แล้ว system design ทำการออกแบบระบบ ในขั้นตอนการออกแบบระบบจะคล้ายกับงาน database ตัวอย่างคือขั้นตอนการทำ ER Diagram โดยปกติ system design เป็นลักษณะของการระบุถึงสถาปัตยกรรมของระบบ มี 2 ส่วนคือ
Logical system design คือ ส่วนใหญ่จะอยู่ในรูปแบบ flow chart, diagram, ERD
Physical system design คือ การออกแบบระบบทางกายภาพ เช่น software จะติดตั้งที่ไหน hardware จะติดตั้งที่ไหน รูปแบบโครงสร้างระบบเครือข่ายจะเป็นอย่างไร รวมไปถึงการออกแบบ forms, reports
ประโยชน์หลักๆของ diagram เหล่านี้ คือ ทำให้ programmer เข้าใจ requirement ต่างๆ ก็คือ การนำ system analysis มาแปลงให้อยู่ในรูปแบบของ diagram
Step 3 Programming
คือ การนำเอาส่วนที่เราออกแบบมาจาก system design มา implement ปัจจุบัน การ implement ระบบ IT ในองค์กรสามารถทำได้หลายช่องทาง อาจเป็นการซื้อซอฟแวร์สำเร็จรูป การ outsource ก็ได้
Step 4 Testing
ทดสอบระบบว่า ระบบที่พัฒนามาบรรลุวัตถุประสงค์ที่เราตั้งไว้รึปล่าว การทดสอบมี 4 ลักษณะ
1 unit testing คือ การทดสอบแต่ละส่วนของระบบนั้นๆ
2 system testing หรือ integration testing คือ การทดสอบภาพรวมของระบบว่าแต่ละ function สามารถทำงานเข้ากันได้รึปล่าว
3 usability testing คือ การนำเอาระบบไปทดสอบกับ end user โดยตรง สอบถามความพึงพอใจของระบบ
4 acceptance testing คือ การทดสอบระบบว่าระบบนั้นๆสามารถตอบสนองเป้าหมายที่ตั้งไว้ในส่วนของ system analysis รึปล่าว
Step 5 conversion
คือ กระบวนการเปลี่ยนแปลงระบบเก่าไปสู่ระบบใหม่ มี 4 รูปแบบคือ
1 parallel strategy คือ ระบบเก่ากับระบใหม่ทำงานกันไปอย่างคู่ขนาน ใช้งานทั้งสองระบบในเวลาเดียวกัน ข้อดีคือ ถ้าระบบใหม่มีปัญหา มีระบบเก่าที่ยังทำงานไปพร้อมๆกันอยู่ ข้อเสียคือ องค์กรจะต้องเสียค่าใช้จ่ายในการรันสองระบบในเวลาเดียวกัน
2 direct cutover strategy คือ นำระบบใหม่ไปแทนระบบเก่าทันทีทันใด ข้อดีคือ ลดค่าใช้จ่าย เพราะองค์กรไม่ต้องเมนเทน 2 ระบบในเวลาเดียวกัน แต่ความเสี่ยงสูง คือ ถ้าระบบใหม่มีปัญหา เราไม่มีระบบเก่าที่จะคอย back up
3 pilot study strategy คือ ระบบใหม่ถูกนำไปทดลองที่แผนกหนึ่งแผนกใดขององค์กร ถ้าไม่มีปัญหา ก็จะนำไปใช้ยังส่วนอื่นๆขององค์กร
4 phased approach strategy คือ ระบบใหม่ถูกนำเสนอไปแทนที่ระบบเก่าทีละ function จนในที่สุดระบบใหม่ก็เข้าไปแทนที่ระบบเก่าจนหมด
Step 6 production and maintenance
คือ ระบบใหม่เข้าไปแทนที่ระบบเก่าอย่างสมบูรณ์แล้ว ขั้นตอนนี้ต้องมีการรีวิวอีกครั้งว่าระบบเข้าไปตอบโจทย์ปัญหาองค์กรรึปล่าว รวมไปถึงการทำ user manual การ up grade, up date ระบบ การทดสอบหาช่องโหว่ของระบบ
หลังจากนี้จะเป็น operation ไม่ได้เป็นโครงการอีกต่อไป
โดยปกติการพัฒนาโครงการ IT ขององค์กรจะมี stake holder หลักๆ คือ users ผู้ใช้ระบบนั้นๆ, system analysts ตำแหน่งในแผนก IT ที่เป็นตัวกลางระหว่างโปรแกรมเมอร์กับยูสเซอร์ ทำหน้าที่เก็บ requirement ของยูสเซอร์แล้วก็นำมาแปลงให้โปรแกรมเมอร์เข้าใจ, programmers คือ นักพัฒนาระบบ IT โดยการเขียนโปรแกรม
SDLC เป็นรูปแบบของการพัฒนาระบบ IT ที่มีมาค่อนข้างนาน ข้อดีคือ เป็นขั้นตอนที่ชัดเจน มีการเก็บ requirement ที่ชัดเจน ถ้ามีปัญหาอะไร สามารถแก้ไขได้ง่าย ข้อจำกัดคือ ใช้เวลาค่อนข้างนาน ไม่ค่อยยืดหยุ่น กระบวนการที่จะเริ่มได้ก็ต่อเมื่อกะบวนการก่อนหน้านั้นจะต้องดำเนินการเสร็จมาแล้ว มีค่าใช้จ่ายสูง ที่สำคัญคือ กรณีที่องค์การต้องการเปลี่ยนแปลง scope ของระบบในช่วงท้ายๆของขั้นตอน SDLC ทำได้ยาก เนื่องจากหลังจาก implement มาแล้ว requirement ไม่สามารถเข้าไปแตะได้
ในปัจจุบัน มีอีกทางเลือกหนึ่งในการพัฒนาระบบ IT ในองค์กร คือ Prototyping
Prototyping คือ การสร้างระบบทดลองขึ้นมาระบบหนึ่ง จากนั้นนำมาทดสอบกับ user แล้วนำ feedback จาก user เข้าไปแก้ไขระบบทดลองนั้นๆ จะกลายเป็นลูปแบบนี้เรื่อยไปจน user พอใจแล้ว จึงออกมาเป็นระบบนั้นๆ เช่น การพัฒนา website นักพัฒนาจะไม่มีไอเดียในช่วงแรกว่า user ต้องการอะไร ต้องขอ requirement จาก user แล้วนำไปพัฒนา
รูปแบบของ Prototyping เหมาะสำหรับโครงการที่ requirement ไม่แน่นอน คือ เราไม่รู้ว่า final product จะออกมาเป็นยังไง เหมาะกับโครงการ IT ที่มีความเชื่อมโยงกับ user, ลุกค้า เป็นหลัก
Prototyping
รูปแบบของ Prototyping คือ นักพัฒนาระบบต้องระบุ requirement เบื้องต้นก่อน จากนั้นทำการสร้าง Prototype ขึ้นมา คือรูปแบบของระบบอย่างคร่าวๆ จากนั้น นำ Prototype ข้ามาทดลองกับ user หรืออาจจะสอบถาม user หลังจากนั้นนำเอา feedback จาก user ไปปรับปรุง Prototype จน user พอใจจึงจะออกมาเป็นระบบจริงๆ โดยทั่วไปกระบวนการของ Prototyping จะรวดเร็วกว่า SDLC การพัฒนา website ใช้รูปแบบของ Prototyping เป็นหลัก
อีกทางเลือกหนึ่งในการพัฒนาระบบ IT ในองค์กร คือ RAD
RAD
RAD (Rapid Application Development) เป็นการพัฒนาระบบ IT โดยใช้ระยะเวลาอันสั้น การทำ analysis, design, dev, test ทำไปพร้อมๆกัน โดยส่วนใหญ่ RAD จะใช้กับระบบ IT ที่ต้องการความรวดเร็วในการพัฒนาเป็นหลัก
หน้าที่ของ project manager
คือ บริหารความเสี่ยง IT project
ความเสี่ยงอย่างแรกมาจากความซับซ้อนของ project ยิ่งซับซ้อนมากยิ่งเสี่ยงมาก ความซับซ้อนของproject วัดจาก เป็นเทคโนโลยีใหม่รึปล่าว องค์กรเคยใช้รึปล่าว ถ้าใหม่ต่อองค์กรมีความเสี่ยงสูง
ความเสี่ยงถัดไปคือ ความชัดเจนของระบบ clarity คือ project ที่มีความชัดเจนต่ำ(clarity ต่ำ) คือ ไม่รู้ว่าระบบนั้นๆจะมาตอบโจทย์อะไร project ที่มีความชัดเจนต่ำจะมีความเสี่ยงสูง
ความเสี่ยงสุดท้ายคือ ขนาดของ project ขนาดยิ่งใหญ่ ความเสี่ยงยิ่งสูง ขนาดวัดจาก budget, cost, ระยะเวลา, จำนวนคนที่เกี่ยวข้อง, จำนวนคนที่ใช้ในการพัฒนา
การลดความเสี่ยงของโครงการ IT อย่างแรกคือ ดูสมาชิกในทีมว่ามีความชำนาญ ประสบการณ์ ในโครงการที่เราจะพัฒนารึปล่าว ในหลายกรณีควรจะมีการจ้าง consultant ที่ปรึกษาภายนอกที่มีความชำนาญ หรือมีความรู้ในการพัฒนาระบบนั้นๆมาก่อน ควรมีการนำเอาผู้ที่มีส่วนเกี่ยวข้องในองค์กรเข้ามามีส่วนร่วมด้วย ในบางกรณีควรจะมีการ Pulling the Plug คือ ถ้าโครงการใช้เวลาที่ยาวนานแล้วยังไม่เห็นผลที่ชัดเจน และใช้ cost budget ที่เกินเลยไป scope ของงานก็ยังไม่ชัดเจน ก็ควรจะ Pulling the Plug (ยกเลิกไป) แต่หลายกรณีทำได้ยาก เพราะบางกรณีองค์กรมีการลงทุนเป็นจำนวนมาก CEO รู้ดีว่าถ้า Pull the Plug เมื่อไหร่ก็ต้อง Pull ตัวเองออกไปด้วย ทุกๆ project หรือ IT project จะต้องมี KPI ระบุถึงความสำเร็จของ project นั้นๆ โดยความสำเร็จวัดจาก 4 มิติ คือ
1 โครงการ IT หรือ ระบบ IT สามารถพัฒนาได้ภายในระยะเวลาที่ถูกกำหนดไว้รึปล่าว ภายใต้งบประมาณที่ถูกกำหนดไว้รึปล่าว สามารถตอบโจทย์ที่ตั้งไว้รึปล่าว
2 Impact on customers คือ ระบบ IT ที่องค์กรพัฒนาขึ้นมา ให้ประโยชน์อะไรแก่องค์กรในมุมมองของลูกค้า
3 Business success คือ องค์กรสามารถสร้างรายได้จากระบบ IT ที่พัฒนาขึ้นมา
4 ระบบ IT ที่องค์กรพัฒนาขึ้นมานั้น สามารถสร้างโอกาสในการทำธุรกิจอย่างไรให้กับองค์กร





