
- การบริหารจัดการโครงการซอฟแวร์เป็นมากกว่าเครื่องมือ -- Ivan Soares Ferrer
ดังนั้นคุณจึงได้รับเพียงแค่ได้รับมอบหมายในการจัดการโครงการซอฟต์แวร์ บางทีคุณอาจเป็นผู้จัดการที่มีประสบการณ์ แต่ไม่ได้มีโครงการซอฟต์แวร์ หรือบางทีคุณเป็นโปรแกรมเมอร์ที่การส่งเสริมการลงทุนเมื่อเร็ว ๆ นี้ นี่คือวิธีที่จะเริ่มต้น
ในขณะที่มันเป็นไปไม่ได้ที่จะเรียนรู้ทุกอย่างจากการอ่านบทความเราจะชี้อย่างน้อยออกพื้นที่หลักที่จะต้องพิจารณา
ขั้นตอนแรกคือการเข้าใจความร้ายกาจของงาน บทความ ZDNet โดยไมเคิล Krigsman เรื่อง" New IT โครงการตัวชี้วัดความล้มเหลว : เป็น Standish ผิดหรือเปล่า? " รายงานคำพูดของความสับสนวุ่นวายของกลุ่ม Standish เป็นคำพูดที่สองในสามของโครงการด้านไอทีที่เป็น"ท้าทาย"ในขณะที่นักวิจัยอื่น ๆ เชื่อว่าโครงการหนึ่งในสามของไอทีล้มเหลว
IT เว็บไซต์ Cortex มีสถิติเพิ่มเติมเกี่ยวกับมันล้มเหลวของโครงการ
สาเหตุของความล้มเหลวในโครงการซอฟต์แวร์
ในขณะที่มันอาจจะเป็นที่ดึงดูดให้คิดว่าโครงการซอฟต์แวร์ที่เหมาะสมเป็นเครื่องมือในการจัดการทั้งหมดที่จำเป็นในการขาดเครื่องมือที่ไม่ได้เป็นสาเหตุสำคัญของการล้มเหลวของโครงการ
ผู้เชี่ยวชาญหลายคนในเขตข้อมูลให้ชี้ไปที่ข้อผิดพลาดที่ความต้องการซอฟต์แวร์ที่เป็นสาเหตุหลักของค่าใช้จ่ายที่ไม่จำเป็นและปัญหาที่โครงการอื่น ๆ เอลเลน Gottesdiener จากการให้คำปรึกษา EBG มีบทความเกี่ยวกับ" เก้ายอดความต้องการของความเข้าใจผิด "กับสถิติเกี่ยวกับข้อผิดพลาดและมีผลต่อความต้องการของพวกเขาในประสิทธิภาพของโครงการ
ใน" คอมพิวเตอร์ Aid, รัฐอิงค์ของการสัมภาษณ์การปฏิบัติที่มี Capers โจนส์ ,"ซอฟแวร์ตัวชี้วัดขนาดของโครงการคุรุนิ้วมือเป็นปัญหาที่บอกว่าโครงการขนาดเล็กกว่า 1,000 จุดทำงานในขนาดที่มักจะประสบความสำเร็จ ในขณะที่ 10,000 ถึง 100,000 จุดฟังก์ชันโครงการจะเป็นปัญหามากขึ้น
(จุดฟังก์ชั่นเป็นวิธีการที่ภาษาอิสระในการวัดขนาดของซอฟต์แวร์หรือความซับซ้อน. สำหรับการเขียนโปรแกรมภาษาหลาย จุดหนึ่งฟังก์ชันแปลเป็นประมาณ 50 เส้น SLOC หรือแหล่งที่มาของรหัส )
ซอฟท์แวงานการบริหารจัดการโครงการ
นี่เป็นรายการสั้น ๆ ของงานที่สำคัญและปัญหาที่ต้องมีการจัดการเกี่ยวกับโครงการซอฟต์แวร์ขนาดใหญ่คือ :
- ข้อกำหนดของซอฟต์แวร์ ได้รับรายละเอียดที่ถูกต้องในการจัดการความต้องการที่ขัดแย้งกันกำหนด trade - offs รับคุณสมบัติที่มีรายละเอียดเพียงพอที่จะเป็นประโยชน์ในการกำหนดรายละเอียดซึ่งจะมีความยืดหยุ่นหรือจำเป็นที่จะต้อง prototyped
- โครงการที่ส่งมอบ (เอกสาร, รหัสแหล่งที่มา executables,)
- มาตรฐานคุณภาพ (จำนวนที่ยอมรับได้และความรุนแรงของข้อบกพร่อง)
- โครงการขนาดและการจัดทำงบประมาณ ค่าใช้จ่ายโครงการการประเมินความต้องการกำลังคนกำหนดขอบเขตการทำงานของซอฟท์แวอายุการใช้งานและงบประมาณการบำรุงรักษาซอฟต์แวร์
- การเจรจาต่อรองบทลงโทษที่เกินกำหนดเวลา
- วิธีการพัฒนาซอฟแวร์และเครื่องมือที่เกี่ยวข้อง (น้ำตก, Spiral, CMM, เปรียว, ต่อสู้, UML, โฟโต้)
- กลยุทธ์การพัฒนา (เริ่มต้นจากขั้นการปรับเปลี่ยนโปรแกรมที่มีอยู่ทำงานร่วมกับซอฟแวร์เตียง Off - the shelf เชิงพาณิชย์)
- การทดสอบ (การจัดการรายการการทดสอบการทดสอบโหลด, การทดสอบการยอมรับอัตโนมัติทดสอบ, การทดสอบการถดถอยครอบคลุม code)
- การจัดการความเสี่ยง การสร้างแผนฉุกเฉินสำหรับปัญหาที่กำลังมีการเปลี่ยนแปลงความต้องการความเสี่ยงทางเทคนิคความไม่แน่นอนของงบประมาณ
- การตรวจสอบโครงการ (ตัวชี้วัดที่สำคัญและผ่าน / ไม่วัตถุประสงค์) คุณจะรู้ว่าถ้าโครงการของคุณอยู่ในปัญหา?
- กระบวนการทบทวนการออกแบบ (ออกแบบคิดเห็นรหัสความคิดเห็น)
- ภาษาและการเลือกใช้แพลตฟอร์ม (ภาษาคอมพิวเตอร์, ระบบปฏิบัติการเซิร์ฟเวอร์ของโปรแกรมประยุกต์ที่สนับสนุนเว็บเบราเซอร์ฐานข้อมูล)
- สถาปัตยกรรมระบบและวิธีการออกแบบ (หรือ asynchronous synchronous, ศูนย์หรือกระจาย, client - server, ลูกค้าบางลูกค้าไขมันเป็น web - based, PC - based รูปแบบการออกแบบเชิงวัตถุวัตถุที่ใช้ข้อมูลที่ขับเคลื่อนด้วยกลับมาใช้ , compartmentalization, สื่อสารระหว่างโมดูล)
- ที่มีคุณภาพรหัสแหล่งที่มา (มาตรฐานการเข้ารหัส, วิเคราะห์รหัสคงที่, วิเคราะห์รหัสแบบไดนามิก)
- รหัสควบคุม (การควบคุมเวอร์ชันซอฟแวร์ในการสร้างตารางเวลา)
- เอกสาร (ข้อกำหนดการออกแบบ, การทดสอบ, ตรวจสอบย้อนกลับ)
- การควบคุมการเปลี่ยนแปลง (คณะกรรมการควบคุมการเปลี่ยนแปลง)
- ปัญหาและติดตามข้อบกพร่อง
- ประสานงานลูกค้าหรือ end - user
- การวางแผนการใช้งาน (บิ๊กแบงหรือแบ่ง)
บางรายการสามารถข้ามสำหรับโครงการขนาดเล็ก โครงการขนาดใหญ่ที่สำคัญมากขึ้นในรายการข้างต้นกลายเป็น
วิธีการอยู่รอดโครงการพัฒนาซอฟแวร์
การจัดการโครงการซอฟต์แวร์เป็นงานที่ซับซ้อนและต้องการการจัดการของปัญหาหลายอย่าง ผู้จัดการโครงการจะต้องสามารถที่จะระบุในโครงการจัดการสมาชิกในทีมในการสื่อสารกับผู้ถือหุ้น, ความคืบหน้าการตรวจสอบเช่นเดียวกับการจัดการกับด้านเทคนิคจำนวนมากของกระบวนการพัฒนาซอฟต์แวร์ (ยกเว้นกรณีที่เป็นผู้จัดการทางด้านเทคนิคที่แยกต่างหากได้รับการแต่งตั้ง)
โอกาสของความสำเร็จของโครงการจะเพิ่มขึ้นอย่างมากถ้าโครงการจะถูกเก็บไว้ขนาดเล็ก (โครงการขนาดใหญ่ควรจะแบ่งออกเป็นโครงการขนาดเล็กเพียงไม่กี่ถ้าเป็นไปได้คุณสมบัติที่ไม่สำคัญควรจะออกหรือเลื่อนออกไปโหดร้าย) และเน้นวางอยู่บนความต้องการที่ถูกต้องได้รับ
สำหรับข้อมูลเพิ่มเติมให้เครือข่ายการจัดการโครงการซอฟต์แวร์ (กองทัพเรือสหรัฐ / กระทรวงกลาโหม) มีรายชื่อของ" 16 วิธีปฏิบัติที่ซอฟต์แวร์ที่สำคัญ "และ" SPMN บทเรียนทีมโฟกัสได้เรียนรู้ว่า ." บทความมาตรฐาน IEEE Spectrum," ทำไมซอฟท์แวล้มเหลว "มีกรณีศึกษาของความล้มเหลวในโครงการซอฟต์แวร์ขนาดใหญ่
โจ Spolsky ใน" วิธีการเป็นผู้จัดการโปรแกรม "ระบุว่าผู้จัดการโครงการเป็นหลักในการคิดค่าใช้จ่ายของข้อกำหนดที่ เขาเป็นผู้ใช้หรือผู้สนับสนุนของลูกค้า เขาควรจะยังไม่ได้เป็นผู้จัดการของโปรแกรมเมอร์ที่ แต่นี้ส่วนใหญ่อาจจะมีความแตกต่างในคำศัพท์
