17-653 Managing Software Development Carnegie Mellon v.5 Software Engineering, Distance Education Course Overview Large scale software development requires the ability to manage resources—both human and computational—through control of the development process. This course addresses the breadth of managing software development and is designed to help technically trained software engineers to acquire the knowledge and skills necessary to lead a project team, understand the relationship of software development to overall project engineering, estimate time and costs, and understand the software process. The nature of software development is sufficiently unique to require specialized management techniques, especially in the areas of estimating and scheduling. Course Objectives Successful completion of this course will provide you with the knowledge and skills to s Lead a project team. s Understand the relationship of software development to overall project engineering. s Estimate time and costs. s Understand the software process. Prerequisite s Industrial software engineering experience with a large project, or a comprehensive undergraduate course in software engineering. Organization The course consists of a series of lectures conducted by faculty and staff from the School of Computer Science at Carnegie Mellon University. The lectures, captured on DVDs, lead the way through a series of assignments and chatroom discussions. Your best approach to successfully complete the course is to follow three simple steps. 1. Do the assigned readings. 2. Watch the lecture. 3. Complete the assignments. All course materials, with the exception of the texts and DVDs, will be available on the Carnegie Mellon Blackboard System. Email with specific information about the course Blackboard site will be sent to you prior to the start of class. Feedback and Support Office hours and computer conferences will take place in the Virtual Classroom on the course Blackboard site. Your instructor for the course will conduct course discussions in the Virtual Classroom every week, specific time to be determined. Should your instructor decide to use another chat tool, they will notify 17-653 Managing Software Development v.5 1 Syllabus you at the beginning of the course. Other times, your instructor will be available by email. In addition, you should feel free to post questions and comments on the course electronic bulletin board at anytime to discuss the readings, the course, and issues related to software engineering with members of your class. Readings Weekly readings are used to stimulate discussion and as a way to expose you to course topics not covered directly in the lectures. For most lectures, you will be assigned a few readings to complete before watching the lecture. The required textbooks for the course are Software Project Survival Guide, by Steve McConnell; Software Engineering: A Practitioner’s Approach, by Roger S. Pressman; and Software Project Management in Practice, by Pankaj Jalote. You will also be required to the following case studies and readings from Harvard Business Online: Microsoft Corporation: Office Business Unit by Marco Iansiti and Geoffrey K. Gill; Cimetrics Technology (A1) by Lynn Sharp Paine and Jose Royo; Microsoft Office 2000 by Alan MacCormack and Kerry Herman; Leadership That Gets Results by Daniel Goleman; and The Satera Team at Imatron Systems, Inc. (A) by Teresa M. Amabile and Elizabeth A. Schatzel. Evaluation No programming will be required in this course. The course grade will be determined by four factors. s Reading Questions: Your answers to the reading questions will help the instructor to determine if you understand the material presented in the lectures and readings. The grading for individual sets of reading questions will be pass/fail. s Case Studies/Assignments: Homework exercises will be used to ensure that you understand certain tools and/or concepts. The overriding purpose of these assignments is for you to improve your written and oral communication skills. s Final Project Paper: Through use of material presented in class and you own research, you will demonstrate your ability to apply tailored practices to meet software development needs. s Instructor judgement: The instructor reserves the right to raise or lower your quantitatively determined grade based on their judgement of your mastery of course material; this judgement will be based in part on your ability to participate constructively in class discussions. Schedule Lecture Topic Reading Assignment Homework 1 Course Overview Jalote 02 Ch. 1-3; McConnell 97 Ch. 1-3; Pressman 05 Ch. 1 & 5 RQ 1 2 Case Study Exercise Discussion A 1: OBU Case Processes/Life Cycles 3 Software Development Life Cycles Pressman 05 Ch. 3; STCS 96; Walton 04 RQ 2 4 Case Study Exercise Discussion Iansiti 90; PennDoT; Generic Flight Control A 2: SDLC Case 5 Intro to Processes & How to Choose Pressman 05 Ch. 2 & 4; Ahern 04; Wells 04; Booch 98; Norton 05 RQ 3 6 Case Study Exercise Mangione 03; May 98; panchamb; Schloh 96; Lattanze 05; Rockwood A 3: Process Case 17-653 Managing Software Development v.5 2 Syllabus Estimation 7 Software Estimation Techniques Pressman 05 Ch. 22& 23; Jalote 02 pp. 51-74 A 4: FP COCOMO 8 Case Study Exercise Discussion Bulkeley 98; Heires 01 A 5: Estimation Case; RQ 4 Requirements Management 9 Requirements Elicitation and Documentation 10 Managing Requirements Change 11 Case Study Exercise Discussion Pressman 05 Ch. 7; Christel 92; § 1-6; Barbacci 03 RQ 5 Berry 04 A 6: Requirements Case Managing Customer Expectations 12 Expectation Management: Managing Customer Expectations Boehm 00 RQ 6 13 Expectation Management Video and Farrell 02 Discussion 14 Identifying and Managing Software Risk; Risk 1 15 Risk 2 16 Case Study Exercise Discussion 17 The Risk Game (optional) 18 Planning Software Development: Project Planning McConnell 97 Ch. 12, pp. 173-186; Jalote 02 Ch. 7, pp. 109-114, 120-123, Ch 11, pp. 199207; Paulk 93 Project Paper Outline 19 Tracking and Oversight of Software Development Pressman 05 Ch. 24 RQ 8 20 Case Study Exercise Discussion MacCormack 00; Iansiti 90 A 9: Planning Tracking Case A 7: Managing Customer Expectations Case Risk Management Van Scoy 92; Will 04; Pressman 05 Ch. 15; Risk Statements RQ 7 HBR Cimetrics A 8: Risk Case Planning, Tracking, and Oversight Managing Technical People, Leadership, and Teamwork 21 Managing Technical People and Leadership Errors Pressman 05 Ch. 21; Horowitz 02; Thite 99; McCarthy 03; Goleman 00 RQ 9 22 Case Study Exercise Discussion Amabile 03 A 10: MTP Case Quality Assurance 23 Building Quality into Software Pressman 05 Ch. 26 & 27; Jalote 02 Ch. 5 & 9; McConnell 97 Ch. 9; IEEE 02; Fagan 02; Fagan 99 RQ 10 24 Testing Strategies Pressman 05 Ch. 13 & 14; NASA 89; Van Doren 97; Basili 87; Varadan 95 RQ 11 25 Case Study Exercise Discussion Sutherland 04 A 11: Tartan Processes Case Current Topics 26 Strategic Planning with Architecture Lurie 02 27 Open Source 17-653 Managing Software Development v.5 Heckler 99; Wang 01 3 Final Paper Syllabus Bibliography [Abrahamsson 02] Abrahamsson, Pekka; Salo, Outi; Ronkainen, Jussi; & Warsta, Juhani. Agile software development methods – Review and analysis (VTT Publications 478). Oulu, Finland: VTT Electronics, 2002. [Ahern 04] Ahern, Dennis M.; Clouse, Aaron; & Turner, Richard. Ch. 3, “The CMMI Concept,” 49-64. CMMI Distilled: A Practical Introduction to Integrated Process Improvement, 2nd ed. Boston, MA: Addison-Wesley Professional, 2004. Available WWW <URL: http://www.awprofessional.com/articles/article.asp?p=169102> (2004). [Amabile 03] Amabile, Teresa M. & Schatzel, Elizabeth A. The Satera Team at Imatron Systems, Inc. (A) (9-803-14). Harvard Business Online (24 January 2003). [Barbacci 03] Barbacci, Mario R.; Ellison, Robert; Lattanze, Anthony J.; Stafford, Judith A.; Weinstock, Charles B.; & Wood, William G. Quality Attribute Workshops (QAWa), 3rd ed (CMU/SEI-2003-TR-016). Pittsburgh, PA: SEI, Carnegie Mellon University, 2003. [Basili 87] Basili, Victor R. & Selby, Richard W. “Comparing the Effectiveness of Software Testing Strategies.” IEEE Transactions on Software Engineering 3, 12 (December 1987): 1278-1296. [Berry 02] Berry, Daniel M. “The Importance of Ignorance in Requirements Engineering: An Earlier Sighting and a Revisitation.” Journal of Systems and Software 60, 1 (January 2002): 83-85. [Berry 04] Berry, Daniel M.; Daudjee, Khazaima; Dong, Jing; Fainchtein, Igor; Nelson, Maria Augusta; Nelson, Torsten; & Ou, Lihua. “Users’s Manual as a Requirements Specification.” Requirements Engineering Journal 9, 1 (February 2004): 67-82. [Boehm 00] Boehm, Barry. “The Art of Expectations Management.” Computer (January 2000): 122-124. [Booch 98] Booch, Grady; Martin, Robert C.; & Newkirk, James. Ch. 4, “The Process,” 93-108. Object Oriented Analysis and Design with Applications, 2nd ed. Addison-Wesley Longman, Inc. 1998. [Bulkeley 97] Bulkeley, William M. Ch. 2.3.1, “When Things Go Wrong,” 104-112. Glass, Robert L. Software Runaways: Monumental Software Disasters. Upper Saddle River, NY: Prentice Hall, 1997. [Christel 92] Christel, Michael G. and Kyo C. Kang. Issues in Requirements Elicitation (CMU/SEI-92-TR-12). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1992. [Elssamadisy 01] Elssamadisy, Amr. “XP on a Large Project — A Developer’s View.” Proceedings of the XP Universe. Raleigh, NC, July 23-25, 2001. Gurnee, IL: Object Mentor, Inc, 2001. [Fagan 99] Fagan, M. E. “Design and code inspections to reduce errors in program development.” IBM Systems Journal 38, 2/3 (1999): 258-287. Reprinted from IBM Systems Journal 15, 3 (1976). [Fagan 02] Fagan, Michael. “Reviews & Inspections: A History of Software Inspections,” 214-225. Broy, Manfred & Denert, Ernst, eds. Software Pioneers: Contributors to Software Engineering. Berlin, Germany: Springer-Verlag, 2002. [Farrell 02] Farrell, Bob. Give ‘em the Pickle! DVD. Wellington, FL: Customer Service University, 2002. [Goleman 00] Goleman, Daniel. Leadership That Gets Results (R00204). Harvard Business Online (1 March 2000). [Hecker 99] Hecker, Frank. “Setting Up Shop: The Business of Open-Source Software.” IEEE Software (January/ February 1999): 45-51. [Heires 01] Heires, James T. “What I Did Last Summer: A Software Development Benchmarking Case Study.” IEEE Software September/October 2001): 33-39. [Horowitz 02] Horowitz, Alan S. “Singing for Themselves.” Computerworld [online]. Available WWW <URL: http: //www.computerworld.com/managementtopics/management/story/0,10801,74400,00.html> (2002). [Iansiti 90] Iansiti, Marco & Gill, Geoffrey K. Microsoft Corporation: Office Business Unit (9-691-033). Harvard Business Online (1 November 1999). 17-653 Managing Software Development v.5 4 Syllabus [IEEE 98] IEEE Recommended Practice for Software Requirements Specifications (IEEE Std 830-1998). New York, NY: IEEE Computer Society, 1998. [IEEE 02] IEEE Standard for Software Quality Assurance Plans (IEEE Std 730-2002). New York, NY: IEEE Computer Society, 2002. [Jalote 02] Jalote, Pankaj. Software Project Management in Practice. Boston, MA: Addison-Wesley Professional, 2002. [Kelly 04] Kelly, Allan. Why do requirements change? [online]. Available WWW <URL: http://www.allankelly.net> (2004). [Lattanze 05] Lattanze, Anthony J. Architecture Centric Development Method (ACDM) Version 2.1 (CMU-ISRI-05103). Pittsburgh, PA: International Software Research Institute, Carnegie Mellon University, 2005. [Longstreet 02] Longstreet, David H. Function Point Analysis Training Course [online]. Available WWW <URL: http: //www.SoftwareMetrics.com./freemanual.htm> (2002). [Lurie 02] Lurie, Jonathan & Belanger, R. Jason. “The great debate: .Net vs. J2EE: Does one Web service platform dominate the other?” [online]. Java World. Available WWW <URL: http://www.javaworld.com/javaworld/jw-032002/jw-0308-j2eenet.html> (2002). [MacCormack 00] MacCormack, Alan & Herman, Kerry. Microsoft Office 2000 (9-600-097). Harvard Business Online (9 June 2000). [Mangione 03] Mangione, Carmine. Software Project Failure: The Reasons, the Costs [online]. CIO Update Jupitermedia Corporation. Available WWW <URL: http://www.cioupdate.com/reports/article.php/1563701> (2003). [May 98] May, Lorin J. “Major Causes of Software Project Failures.” Crosstalk: The Journal of Defense Software Engineering (July 1998): 9-12. [McCarthy 03] McCarthy, Charles C. “Participative Leadership in Team Formulation.” IEEE (2003): 566-570. [McConnell 97] McConnell, Steve. Software Project Survival Guide. Redmond, WA: Microsoft Process, 1997. [Narsu 02] Narsu, Uttam & Barnett, Liz. ”Lessons Learned Practicing Agile Development” (research document). Cambridge, MA: Forester, 2002. [NASA 89] NASA, Software Assurance Technology Center. Section V, “Verification and Validation.” Software Assurance Guidebook (NASA-GB-A201). September 1989. [Norton 05] Norton, Darrell. Scrum Overview [online]. Available WWW <URL: http://codebetter.com/blogs/ darrell.norton/articles/50399.aspx> (2005). [Paine 99] Paine, Lynn Sharp & Royo, Jose. Cimetrics Technology (A1) (9-399-108). Harvard Business Online (2 February 1999). [panchamb 05] panchamb. Why Software Systems Fail [online]. Available WWW <URL: http:// www.planetpapers.com/Assets/1931.php> (2005). [Paulk 93] Paulk, Mark C.; Weber, Charles V.; Garcia, Suzanne M.; Chrissis, Mary Beth; & Bush, Marilyn. Key Practices of the Capability Maturity Model, Version 1.1 (CMU/SEI-93-TR-25, ESC-TR-93-178). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1993. [Pressman 05] Pressman, Roger S. Software Engineering: A Practitioners Approach, 6th ed. Boston, MA: McGraw Hill, 2005. [Rockwood] Rockwood, Justin. Choose Your Weapon Wisely: A handbook for determining the right software development method best suited for your team, client, and project (Independent Study Paper). Pittsburgh, PA: School of Computer Science, Carnegie Mellon University. [Schloh 96] Schloh, Michael. Analysis of the Denver International Airport baggage system (Senior Project Paper). San Luis Obispo, CA: Computer Science Department, School of Engineering, California Polytechnic State University, 17-653 Managing Software Development v.5 5 Syllabus 1996. Available WWW <URL: http://www.csc.calpoly.edu/~dsterns/CshlohProject/csc463.html>. [STSC 96] Department of the Air Force, Software Technology Support Center. Ch. 3, “System Life Cycle and Methodologies,” 3.1-3.24. Guidelines for Successful Acquisition and Management of Software Systems, v. 2. United States Department of Defense, 1996. [Sutherland 04] Sutherland, Dean F. A Tale of Three Processes: Reflection on the Software Development Process Change at Tartan (student paper). December 2004. [Thite 99] Thite, Mohan. “Leadership: A Critical Success Factor in IT Project Management,” 298-303. Kocaoglu, Dundar F. &Anderson, Timothy R., eds. Portland International conference on Management of Engineering and Technology: Proceedings Vol. 1: Book of Summaries: Technology and Innovation Management. Portland, OR: Portland State University, Engineering Management Program, 1999. [VanDoren 97] VanDoren, Edmond. Cyclomatic Complexity [online]. Available WWW <URL: http://www.sei.cmu.edu/ str/descriptins/cyclomatic_body.html> (1997). [Van Scoy 92] Van Scoy, Roger L. Software Development Risk: Opportunity, Not Problem (CMU/SEI-92-TR-30). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1992. [Varadan 95] Varadan, Gulyam S. “Trends in Reliability and Test Strategies.” IEEE Software 12, 3 (May 1995): 10. [Walton 04] Walton, Bill. “Iterative vs. waterfall software development: Why don’t companies get it?” Computerworld (20 February 1004). Available WWW <URL: http://www.computerworld.com/printthis/2004/ 0,4814,90325,00.html>. [Wang 01] Wang, Huaiqing & Wang, Chen. “Open Source Software Adoption.” IEEE Software (March/April 2001): 90-95. [Wells 04] Wells, Don. Extreme Programming: A gentle introduction [online]. Available WWW <URL: http://www.extr emeprogramming.org> (2004). [Wiegers 95] Wiegers, Karl E. “In Search of Excellent Requirements.” The Journal of the Quality Assurance Institute 9, 1 (January 1995): 23-32. [Wiegers 99] Wiegers, Karl E. “Writing Quality Requirements.” Software Development 7, 5 (May 1999): 44-48. [Will 04] Will, Brian A. Software Risk Management. White Paper. Encinitas, CA: Paroxys, LLC, 20004. 17-653 Managing Software Development v.5 6 Syllabus