การวางแผนและกำหนดเวลาในโครงการซอฟต์แวร์

Anonim

การจัดการซอฟต์แวร์ครอบคลุมถึงการวางแผนการตั้งเวลาการบริหารความเสี่ยงการจัดการบุคลากรการประมาณต้นทุนซอฟต์แวร์และการจัดการคุณภาพ

บทความนี้ครอบคลุมการวางแผนและกำหนดเวลาโครงการซอฟต์แวร์ มีสาเหตุหลายประการสำหรับความล้มเหลวของโครงการซอฟต์แวร์สามารถกล่าวถึง: การส่งมอบล่าช้าไม่น่าเชื่อถือต้นทุนสูงกว่าที่ประเมินไว้ลักษณะการดำเนินการที่ไม่ดี หลายครั้งความผิดอยู่ที่แนวทางการจัดการที่ใช้

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

คุณสมบัติของซอฟต์แวร์ทำให้การดูแลระบบเป็นเรื่องยากโดยเฉพาะคุณสมบัติเหล่านี้ ได้แก่:

  • - ผลิตภัณฑ์ไม่มีตัวตนผู้จัดการโครงการก่อสร้างเรือสามารถมองเห็นผลิตภัณฑ์ได้ในขณะที่กำลังพัฒนา หากมีการหน่วงเวลาผลที่เกิดขึ้นกับผลิตภัณฑ์จะปรากฏให้เห็นซอฟต์แวร์นี้จับต้องไม่ได้ไม่สามารถมองเห็นหรือสัมผัสได้. ผู้จัดการไม่สามารถมองเห็นความคืบหน้าพวกเขาต้องพึ่งพาผู้อื่นในการจัดทำเอกสารที่จำเป็นเพื่อตรวจสอบความคืบหน้า - ไม่มีกระบวนการซอฟต์แวร์มาตรฐานคุณไม่สามารถคาดเดาได้อย่างแน่นอนเมื่อกระบวนการใดกระบวนการหนึ่งมีแนวโน้มที่จะพัฒนาปัญหา - มักจะเป็นโครงการขนาดใหญ่ ซอฟต์แวร์มีลักษณะ "เฉพาะตัว" โดยปกติแล้วโครงการซอฟต์แวร์ขนาดใหญ่จะแตกต่างจากโครงการก่อนหน้านี้ ดังนั้นผู้ดูแลระบบแม้ว่าจะมีประสบการณ์มากมายที่สามารถใช้เพื่อลดความไม่แน่นอนของการวางแผน แต่ก็ไม่เพียงพอที่จะคาดการณ์ปัญหาได้

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

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

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

  • การร่างข้อเสนอการวางแผนและการกำหนดเวลาของโครงการ การคิดต้นทุนโครงการการดูแลโครงการและการทบทวนการคัดเลือกบุคลากรและการประเมินผลการร่างและการรายงาน

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

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

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

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

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

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

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

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

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

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

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

  • วัตถุประสงค์: คำอธิบายสั้น ๆ เกี่ยวกับวัตถุประสงค์ของแผนโครงการขอบเขต: คำอธิบายสั้น ๆ เกี่ยวกับสิ่งที่แผนนี้จะนำไปใช้แผนระยะ: จากการพัฒนาแบบค่อยเป็นค่อยไปที่เสนอโดย RUP จะแสดงเวลาของแต่ละขั้นตอนและมีวัตถุประสงค์เพื่อให้บรรลุโดย จุดจบของแต่ละคนการวิเคราะห์เศรษฐกิจการปฏิบัติการและการสนับสนุน: บุคลากรที่จะรับผิดชอบการปฏิบัติงานและบุคลากรที่จะทำหน้าที่สนับสนุน ตลอดจนทรัพยากรที่จำเป็นในการดำเนินโครงการและเมื่อเสร็จสิ้นแล้วให้ใช้งานได้การปรับปรุงอย่างต่อเนื่อง: กลยุทธ์ในการรวบรวมข้อกำหนดใหม่สำหรับเวอร์ชันในอนาคตเมื่อโครงการเสร็จสิ้นการวิเคราะห์ความเสี่ยง

การจัดกำหนดการโครงการเกี่ยวข้องกับการแยกงานทั้งหมดออกเป็นกิจกรรมเสริมและพิจารณาเวลาที่ต้องใช้ในการทำกิจกรรมเหล่านั้นให้เสร็จสิ้น โดยทั่วไปบางส่วนจะดำเนินการควบคู่กันไปดังนั้นตารางการทำงานจึงต้องจัดระเบียบเพื่อให้มีการใช้แรงงานอย่างเหมาะสมที่สุด ตามหลักการทั่วไปสำหรับปัญหาที่คาดการณ์ไว้คุณควรเพิ่ม 30 เปอร์เซ็นต์ในค่าประมาณเดิมและอีก 20 เปอร์เซ็นต์เพื่อให้ครอบคลุมสิ่งที่ไม่คาดคิด เครื่องมือการจัดการซอฟต์แวร์เช่น Microsoft Project ใช้ในการจัดกำหนดการและกระบวนการจัดสรรทรัพยากรโดยอัตโนมัติ หากโครงการซอฟต์แวร์ต้องการดำเนินการตามเวลาและงบประมาณการจัดการที่ดีเป็นสิ่งสำคัญ

บรรณานุกรม

- Ian Sommerville, "Software Engineering", 6th Edition การศึกษาของเพียร์สัน, 2545

- I. Archer Pupo“ ขั้นตอนของกระบวนการพัฒนาแบบครบวงจร”

การวางแผนและกำหนดเวลาในโครงการซอฟต์แวร์