Difference between revisions of "MSc: Managing Software Development"

From IU
Jump to navigation Jump to search
 
Line 1: Line 1:
  +
 
= FULL SEMESTER. Managing Software Development =
 
= FULL SEMESTER. Managing Software Development =
  +
* '''Course name''': FULL SEMESTER. Managing Software Development
  +
* '''Code discipline''': SE-04
  +
* '''Subject area''':
   
  +
== Short Description ==
* <span>'''Course name:'''</span> Managing Software Development
 
  +
This course covers the following concepts: People Management; Processes and Software Development Life-cycles; Planning and Controlling.
* <span>'''Course number:'''</span> SE-04
 
 
== Course characteristics ==
 
 
=== Key concepts of the class ===
 
 
* People Management
 
* Processes and Software Development Life-cycles
 
* Planning and Controlling
 
 
=== What is the purpose of this course? ===
 
 
Large scale software development requires the ability to manage resources - both human and computational - through control of the development process. This course is a breadth oriented course, 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 the estimating and scheduling.
 
   
 
== Prerequisites ==
 
== Prerequisites ==
   
  +
=== Prerequisite subjects ===
 
 
Here are prerequisites for the MSD course:
 
 
* Understanding of Agile Processes, for example SCRUM
 
* Understanding of Agile Processes, for example SCRUM
* Writing 1 page essays
+
* Writing 1 page essays
   
  +
=== Prerequisite topics ===
== Recommendations for students on how to succeed in the course ==
 
   
To catch up with these topics you can use the following materials:
 
* Hoover, Carol L. [https://dl.acm.org/doi/book/10.5555/1667087 Evaluating project decisions: case studies in software engineering]. Pearson Education India, 2009.
 
* Minto, Barbara. [http://www.barbaraminto.com/textbook.html The pyramid principle: logic in writing and thinking]. Pearson Education, 2009.
 
* [http://ce.sharif.edu/courses/98-99/2/ce474-2/resources/root/Roger%20S.%20Pressman_%20Bruce%20R.%20Maxin%20-%20Software%20Engineering_%20A%20Practitioner%E2%80%99s%20Approach-McGraw-Hill%20Education%20(2014).pdf Pressman, Roger S. Software engineering: a practitioner's approach]. Palgrave macmillan, 2005.
 
* Any classes for essay writing, for example “Critical Thinking” essays of GMAT.
 
   
== Course Objectives Based on Bloom’s Taxonomy ==
+
== Course Topics ==
  +
{| class="wikitable"
  +
|+ Course Sections and Topics
  +
|-
  +
! Section !! Topics within the section
  +
|-
  +
| People Management ||
  +
# MSD Introduction
  +
# OBU Case Study Discussion
  +
# Managing Technical People
  +
# Team formation, Decision Making and Conflict Resolution
  +
# Managing Customer Expectations
  +
# MCE Case Study Discussion
  +
|-
  +
| Software development processes ||
  +
# Defining and measuring processes
  +
# Case Study Exercise Discussion
  +
# Software Development Life-cycles
  +
# Process Frameworks and How to choose
  +
|-
  +
| Defining project success criteria ||
  +
# Requirements Management
  +
# Case Study Exercise Discussion
  +
# Requirements case study/lecture
  +
# Identifying and Managing Software Risk
  +
# TBQ, Threshold of Success
  +
# Risk statement discussion
  +
|-
  +
| Planning and controlling software development projects ||
  +
# Introduction - Planning & Controlling Software Development Projects
  +
# Work Breakdown Structures
  +
# Estimation Methods
  +
# Activity Planning
  +
# Milestone Planning
  +
# Release Planning
  +
# Tracking Reporting & Controlling
  +
|}
  +
== Intended Learning Outcomes (ILOs) ==
   
=== What should a student remember at the end of the course? ===
+
=== What is the main purpose of this course? ===
  +
Large scale software development requires the ability to manage resources - both human and computational - through control of the development process. This course is a breadth oriented course, 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 the estimating and scheduling.
   
  +
=== ILOs defined at three levels ===
By the end of the course, the students will remember:
 
   
  +
==== Level 1: What concepts should a student know/remember/explain? ====
  +
By the end of the course, the students should be able to ...
 
* importance of people in software development
 
* importance of people in software development
 
* trade-offs in various managing style
 
* trade-offs in various managing style
Line 44: Line 69:
 
* several methods to plan projects and estimate their duration
 
* several methods to plan projects and estimate their duration
   
=== What should a student be able to understand at the end of the course? ===
+
==== Level 2: What basic practical skills should a student be able to perform? ====
  +
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to describe and explain (with examples)
 
 
 
* Impact of different personality types on team performance
 
* Impact of different personality types on team performance
 
* Strengths and weaknesses of specific software development processes
 
* Strengths and weaknesses of specific software development processes
Line 53: Line 76:
 
* Customer oriented work breakdown and planning
 
* Customer oriented work breakdown and planning
   
=== What should a student be able to apply at the end of the course? ===
+
==== Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios? ====
  +
By the end of the course, the students should be able to ...
 
By the end of the course, the students should be able to
 
 
 
* Apply critical reasoning to assess root-causes of problems in software development process
 
* Apply critical reasoning to assess root-causes of problems in software development process
 
* Select a right process of a particular software development project
 
* Select a right process of a particular software development project
Line 62: Line 83:
 
* Evaluate and manage risks
 
* Evaluate and manage risks
 
* Estimate project duration with several methods
 
* Estimate project duration with several methods
* Communicate with customers on the project related matters.
+
* Communicate with customers on the project related matters.
  +
== Grading ==
   
=== Course evaluation ===
+
=== Course grading range ===
  +
{| class="wikitable"
 
  +
|+
== Evaluation ==
 
 
{|
 
|+ Course grade breakdown
 
!
 
!
 
!align="center"| '''Proposed points'''
 
 
|-
 
|-
  +
! Grade !! Range !! Description of performance
| Labs/seminar classes
 
| 20
 
|align="center"| 10
 
 
|-
 
|-
  +
| A. Excellent || 80-100 || -
| Interim performance assessment
 
| 30
 
|align="center"| 90
 
 
|-
 
|-
  +
| B. Good || 65-79 || -
| Exams
 
| 50
+
|-
  +
| C. Satisfactory || 50-64 || -
|align="center"| 0
 
  +
|-
  +
| D. Poor || 0-49 || -
 
|}
 
|}
   
  +
=== Course activities and grading breakdown ===
The students performance will be evaluated as follows:
 
  +
{| class="wikitable"
 
  +
|+
* Participation (10%)
 
* Case study analysis and assignments (60%)
 
* Reading questions (10%)
 
* Final paper (20%)
 
 
=== Grades range ===
 
 
<div id="tab:ModelsCourseGradingRange">
 
 
{|
 
|+ Course grading range
 
!
 
!
 
!align="center"| '''Proposed range'''
 
 
|-
 
|-
  +
! Activity Type !! Percentage of the overall course grade
| A. Excellent
 
| 90-100
 
|align="center"| 80-100
 
 
|-
 
|-
  +
| Labs/seminar classes || 10
| B. Good
 
| 75-89
 
|align="center"| 65-79
 
 
|-
 
|-
  +
| Interim performance assessment || 90
| C. Satisfactory
 
| 60-74
 
|align="center"| 50-64
 
 
|-
 
|-
| D. Poor
+
| Exams || 0
| 0-59
 
|align="center"| 0-49
 
 
|}
 
|}
   
  +
=== Recommendations for students on how to succeed in the course ===
   
</div>
 
If necessary, please indicate freely your course’s grading features: The semester starts with the default range as proposed in the Table [[#tab:ModelsCourseGradingRange|1]], but it may change slightly (usually reduced) depending on how the semester progresses.
 
   
=== Resources and reference material ===
+
== Resources, literature and reference materials ==
   
  +
=== Open access resources ===
 
* This course makes use of many reference materials that are posted to Moodle.
 
* This course makes use of many reference materials that are posted to Moodle.
*
 
*
 
   
== Course Sections ==
+
=== Closed access resources ===
   
The main sections of the course and approximate hour distribution between them is as follows:
 
   
  +
=== Software and tools used within the course ===
{|
 
  +
|+ Course Sections
 
  +
= Teaching Methodology: Methods, techniques, & activities =
!align="center"| '''Section'''
 
  +
! '''Section Title'''
 
!align="center"| '''Teaching Hours'''
+
== Activities and Teaching Methods ==
  +
{| class="wikitable"
  +
|+ Activities within each section
 
|-
 
|-
  +
! Learning Activities !! Section 1 !! Section 2 !! Section 3 !! Section 4
|align="center"| 1
 
| People Management
 
|align="center"| 14
 
 
|-
 
|-
  +
| Homework and group projects || 1 || 1 || 1 || 1
|align="center"| 2
 
| Software development processes
 
|align="center"| 12
 
 
|-
 
|-
  +
| Reports || 1 || 1 || 1 || 1
|align="center"| 3
 
| Defining project success criteria
 
|align="center"| 10
 
 
|-
 
|-
  +
| Essays || 1 || 1 || 1 || 1
|align="center"| 4
 
  +
|-
| Planning and controlling software development projects
 
  +
| Discussions || 1 || 1 || 1 || 1
|align="center"| 16
 
|}
+
|}
  +
== Formative Assessment and Course Activities ==
   
=== Section 1 ===
+
=== Ongoing performance assessment ===
 
=== Section title: ===
 
 
People Management
 
 
=== Topics covered in this section: ===
 
 
* MSD Introduction
 
* OBU Case Study Discussion
 
* Managing Technical People
 
* Team formation, Decision Making and Conflict Resolution
 
* Managing Customer Expectations
 
* MCE Case Study Discussion
 
 
=== What forms of evaluation were used to test students’ performance in this section? ===
 
 
<div class="tabular">
 
 
<span>|a|c|</span> &amp; '''Yes/No'''<br />
 
Development of individual parts of software product code &amp; 0<br />
 
Homework and group projects &amp; 1<br />
 
Midterm evaluation &amp; 0<br />
 
Testing (written or computer based) &amp; 0<br />
 
Reports &amp; 1<br />
 
Essays &amp; 1<br />
 
Oral polls &amp; 0<br />
 
Discussions &amp; 1<br />
 
 
 
 
</div>
 
=== Typical questions for ongoing performance evaluation within this section ===
 
 
# Simply list the separate processes that a development team should manage. Also explain why each is, or is not important?
 
# What are typical personality treats of &quot;technical people&quot;?
 
# What are the Tuckman’s team development stages?
 
# What leadership style(s), as discussed by Goleman, would be counterproductive in certain cases?
 
# Looking at McCarthy’s article on participatory leadership, in what situation would a “coercive” style be used in team building?
 
# The Heskett paper effectively recommends involving customers more in your work. What are some software development activities that would be suited to this? What are some where you don’t think customers should be involved and why?
 
 
=== Typical questions for seminar classes (labs) within this section ===
 
 
# Based on OBU case, what were the top issues involved with the development of MS Word with regards to stakeholders, market, technology, business drivers, culture and schedule?
 
# Apply leadership/teamwork concepts to a project development problem at SATERA.
 
# Discuss the key issues dealing with managing customer expectations with the Gigaplex client and propose a course or courses of action to resolve the problems you identified.
 
 
=== Test questions for final assessment in this section ===
 
   
  +
==== Section 1 ====
  +
{| class="wikitable"
  +
|+
  +
|-
  +
! Activity Type !! Content !! Is Graded?
  +
|-
  +
| Question || Simply list the separate processes that a development team should manage. Also explain why each is, or is not important? || 1
  +
|-
  +
| Question || What are typical personality treats of "technical people"? || 1
  +
|-
  +
| Question || What are the Tuckman’s team development stages? || 1
  +
|-
  +
| Question || What leadership style(s), as discussed by Goleman, would be counterproductive in certain cases? || 1
  +
|-
  +
| Question || Looking at McCarthy’s article on participatory leadership, in what situation would a “coercive” style be used in team building? || 1
  +
|-
  +
| Question || The Heskett paper effectively recommends involving customers more in your work. What are some software development activities that would be suited to this? What are some where you don’t think customers should be involved and why? || 1
  +
|-
  +
| Question || Based on OBU case, what were the top issues involved with the development of MS Word with regards to stakeholders, market, technology, business drivers, culture and schedule? || 0
  +
|-
  +
| Question || Apply leadership/teamwork concepts to a project development problem at SATERA. || 0
  +
|-
  +
| Question || Discuss the key issues dealing with managing customer expectations with the Gigaplex client and propose a course or courses of action to resolve the problems you identified. || 0
  +
|}
  +
==== Section 2 ====
  +
{| class="wikitable"
  +
|+
  +
|-
  +
! Activity Type !! Content !! Is Graded?
  +
|-
  +
| Question || Pressman identifies some misuse of process metrics. Which of these misuses is the most harmful? Explain why. || 1
  +
|-
  +
| Question || Pressman states that “correctness” is “the degree to which the software program performs its required function.” He says that defects per KLOC is the most common measurement for correctness. Do you agree or disagree that this is an appropriate measurement and why? || 1
  +
|-
  +
| Question || What do you think are some negatives to using Goal Question Metrics? || 1
  +
|-
  +
| Question || What is the difference between a lifecycle and a process framework? Give some specifics. || 1
  +
|-
  +
| Question || What assumptions should you make about stakeholders when choosing an incremental model? Explain why you chose these. || 1
  +
|-
  +
| Question || Is there a difference between iterative and incremental models? Explain. || 1
  +
|-
  +
| Question || What lifecycle does the ACDM framework fit under? Explain. || 1
  +
|-
  +
| Question || Specifically identify three current (time paper was written) critical Tartan Case software development processes. || 0
  +
|-
  +
| Question || In Tartan Case, what metrics are collected, or should be collected with an eye to improving the processes. Include a discussion on analyzing and changing the processes. || 0
  +
|-
  +
| Question || Provide justified recommendations to improve Tartan’s software quality. Specifically, what would you change and what metrics would you use to analyze the effectiveness of current processes and/or recommended changes? || 0
  +
|-
  +
| Question || Determine what SDLC and process framework you would recommend and why for each of the four software projects: OBU, Denver Baggage, Avionics development, and Department of Transportation. || 0
  +
|}
  +
==== Section 3 ====
  +
{| class="wikitable"
  +
|+
  +
|-
  +
! Activity Type !! Content !! Is Graded?
  +
|-
  +
| Question || What is the difference between verifying and validating requirements? Be specific. || 1
  +
|-
  +
| Question || What are the main activities of requirements engineering? || 1
  +
|-
  +
| Question || What are the requirements elicitation problems? || 1
  +
|-
  +
| Question || What are the Quality Attributes? Describe ways to elicit quality attributes requirements. || 1
  +
|-
  +
| Question || Explain how one can use the Pareto principle in the context of risk management. Give an example. || 1
  +
|-
  +
| Question || Give examples of methods to assess risk impact. || 1
  +
|-
  +
| Question || What is the difference between Threshold of Success and Risks? || 1
  +
|-
  +
| Question || Describe the key issues that found in the case study with regards to requirements management. || 0
  +
|-
  +
| Question || Explain what approaches are selected in the case study and why? What was the result of applying those approaches on the project and team how addressed these issues? || 0
  +
|-
  +
| Question || According to the case study, what are the most critical factor in software quality and the most difficult problem that that the team faced in their projects? || 0
  +
|-
  +
| Question || Identify 5 key risks in case study and prioritize them. Simply state and justify your prioritization method. Ensure these are in the Condition-Consequence format, include context statements and time horizons. || 0
  +
|-
  +
| Question || Provide mitigation strategies to the risk identified in the case study. || 0
  +
|-
  +
| Question || Develop Threshold of Success for the case study project. || 0
  +
|}
  +
==== Section 4 ====
  +
{| class="wikitable"
  +
|+
  +
|-
  +
! Activity Type !! Content !! Is Graded?
  +
|-
  +
| Question || What is Work Breakdown structure and how can it be applyed for project planning? || 1
  +
|-
  +
| Question || List several estimation methods and discuss their trade-offs? || 1
  +
|-
  +
| Question || What is the activity planning? || 1
  +
|-
  +
| Question || Give a definition of a Critical Path? || 1
  +
|-
  +
| Question || What is milestone planning? || 1
  +
|-
  +
| Question || Discuss several methods for release planning? || 1
  +
|-
  +
| Question || Propose a Work Breakdown Structure for a given project. || 0
  +
|-
  +
| Question || Give minimum duration of a project give a list of tasks and their dependencies. || 0
  +
|-
  +
| Question || Develop a milestone plan. || 0
  +
|-
  +
| Question || Propose a release plan for a given project based on estimations and priorities of tasks. || 0
  +
|}
  +
=== Final assessment ===
  +
'''Section 1'''
 
# Based on a brief description of a situation on a project, give a recommendation for a leadership style. Justify.
 
# Based on a brief description of a situation on a project, give a recommendation for a leadership style. Justify.
 
# Name Tuckman’s team development stages? What activities are typical of each of those stages?
 
# Name Tuckman’s team development stages? What activities are typical of each of those stages?
 
# Explain the Barry Boehm’s few on managing customers expectations. Give an example.
 
# Explain the Barry Boehm’s few on managing customers expectations. Give an example.
  +
'''Section 2'''
 
=== Section 2 ===
 
 
=== Section title: ===
 
 
Software development processes
 
 
=== Topics covered in this section: ===
 
 
* Defining and measuring processes
 
* Case Study Exercise Discussion
 
* Software Development Life-cycles
 
* Process Frameworks and How to choose
 
 
=== What forms of evaluation were used to test students’ performance in this section? ===
 
 
<div class="tabular">
 
 
<span>|a|c|</span> &amp; '''Yes/No'''<br />
 
Development of individual parts of software product code &amp; 0<br />
 
Homework and group projects &amp; 1<br />
 
Midterm evaluation &amp; 0<br />
 
Testing (written or computer based) &amp; 0<br />
 
Reports &amp; 1<br />
 
Essays &amp; 1<br />
 
Oral polls &amp; 0<br />
 
Discussions &amp; 1<br />
 
 
 
 
</div>
 
=== Typical questions for ongoing performance evaluation within this section ===
 
 
# Pressman identifies some misuse of process metrics. Which of these misuses is the most harmful? Explain why.
 
# Pressman states that “correctness” is “the degree to which the software program performs its required function.” He says that defects per KLOC is the most common measurement for correctness. Do you agree or disagree that this is an appropriate measurement and why?
 
# What do you think are some negatives to using Goal Question Metrics?
 
# What is the difference between a lifecycle and a process framework? Give some specifics.
 
# What assumptions should you make about stakeholders when choosing an incremental model? Explain why you chose these.
 
# Is there a difference between iterative and incremental models? Explain.
 
# What lifecycle does the ACDM framework fit under? Explain.
 
 
=== Typical questions for seminar classes (labs) within this section ===
 
 
# Specifically identify three current (time paper was written) critical Tartan Case software development processes.
 
# In Tartan Case, what metrics are collected, or should be collected with an eye to improving the processes. Include a discussion on analyzing and changing the processes.
 
# Provide justified recommendations to improve Tartan’s software quality. Specifically, what would you change and what metrics would you use to analyze the effectiveness of current processes and/or recommended changes?
 
# Determine what SDLC and process framework you would recommend and why for each of the four software projects: OBU, Denver Baggage, Avionics development, and Department of Transportation.
 
 
=== Test questions for final assessment in this section ===
 
 
 
# Give definition of a process.
 
# Give definition of a process.
 
# What is a Software Development Life-Cycle and how does it differ from from a process?
 
# What is a Software Development Life-Cycle and how does it differ from from a process?
 
# List several software development processes currently in use and give their trade-offs?
 
# List several software development processes currently in use and give their trade-offs?
 
# Based on a brief description of a software project, what software development process would you recommend? Justify.
 
# Based on a brief description of a software project, what software development process would you recommend? Justify.
  +
'''Section 3'''
 
=== Section 3 ===
 
 
=== Section title: ===
 
 
Defining project success criteria
 
 
=== Topics covered in this section: ===
 
 
* Requirements Management
 
* Case Study Exercise Discussion
 
* Requirements case study/lecture
 
* Identifying and Managing Software Risk
 
* TBQ, Threshold of Success
 
* Risk statement discussion
 
 
=== What forms of evaluation were used to test students’ performance in this section? ===
 
 
<div class="tabular">
 
 
<span>|a|c|</span> &amp; '''Yes/No'''<br />
 
Development of individual parts of software product code &amp; 0<br />
 
Homework and group projects &amp; 1<br />
 
Midterm evaluation &amp; 0<br />
 
Testing (written or computer based) &amp; 0<br />
 
Reports &amp; 1<br />
 
Essays &amp; 1<br />
 
Oral polls &amp; 0<br />
 
Discussions &amp; 1<br />
 
 
 
 
</div>
 
=== Typical questions for ongoing performance evaluation within this section ===
 
 
# What is the difference between verifying and validating requirements? Be specific.
 
# What are the main activities of requirements engineering?
 
# What are the requirements elicitation problems?
 
# What are the Quality Attributes? Describe ways to elicit quality attributes requirements.
 
# Explain how one can use the Pareto principle in the context of risk management. Give an example.
 
# Give examples of methods to assess risk impact.
 
# What is the difference between Threshold of Success and Risks?
 
 
=== Typical questions for seminar classes (labs) within this section ===
 
 
# Describe the key issues that found in the case study with regards to requirements management.
 
# Explain what approaches are selected in the case study and why? What was the result of applying those approaches on the project and team how addressed these issues?
 
# According to the case study, what are the most critical factor in software quality and the most difficult problem that that the team faced in their projects?
 
# Identify 5 key risks in case study and prioritize them. Simply state and justify your prioritization method. Ensure these are in the Condition-Consequence format, include context statements and time horizons.
 
# Provide mitigation strategies to the risk identified in the case study.
 
# Develop Threshold of Success for the case study project.
 
 
=== Test questions for final assessment in this section ===
 
 
 
# Given a situation, identify, prioritise possible risks and discuss mitigation strategy.
 
# Given a situation, identify, prioritise possible risks and discuss mitigation strategy.
 
# What is Threshold of Success and hos does it differ from Risks.
 
# What is Threshold of Success and hos does it differ from Risks.
 
# Explain the condition-consequence definition for risk statements.
 
# Explain the condition-consequence definition for risk statements.
 
# Give an example of criticality assessment for risk statements.
 
# Give an example of criticality assessment for risk statements.
  +
'''Section 4'''
 
=== Section 4 ===
 
 
=== Section title: ===
 
 
Planning and controlling software development projects
 
 
=== Topics covered in this section: ===
 
 
* Introduction - Planning &amp; Controlling Software Development Projects
 
* Work Breakdown Structures
 
* Estimation Methods
 
* Activity Planning
 
* Milestone Planning
 
* Release Planning
 
* Tracking Reporting &amp; Controlling
 
 
=== What forms of evaluation were used to test students’ performance in this section? ===
 
 
<div class="tabular">
 
 
<span>|a|c|</span> &amp; '''Yes/No'''<br />
 
Development of individual parts of software product code &amp; 0<br />
 
Homework and group projects &amp; 1<br />
 
Midterm evaluation &amp; 0<br />
 
Testing (written or computer based) &amp; 0<br />
 
Reports &amp; 1<br />
 
Essays &amp; 1<br />
 
Oral polls &amp; 0<br />
 
Discussions &amp; 1<br />
 
 
 
 
</div>
 
=== Typical questions for ongoing performance evaluation within this section ===
 
 
# What is Work Breakdown structure and how can it be applyed for project planning?
 
# List several estimation methods and discuss their trade-offs?
 
# What is the activity planning?
 
# Give a definition of a Critical Path?
 
# What is milestone planning?
 
# Discuss several methods for release planning?
 
 
=== Typical questions for seminar classes (labs) within this section ===
 
 
# Propose a Work Breakdown Structure for a given project.
 
# Give minimum duration of a project give a list of tasks and their dependencies.
 
# Develop a milestone plan.
 
# Propose a release plan for a given project based on estimations and priorities of tasks.
 
 
=== Test questions for final assessment in this section ===
 
 
 
# List several types of Work Breakdown Structures and discuss trade-offs.
 
# List several types of Work Breakdown Structures and discuss trade-offs.
 
# Apply critical path calculations to an activity graph. Give the latest start for a specific task.
 
# Apply critical path calculations to an activity graph. Give the latest start for a specific task.
Line 379: Line 278:
 
# Explain MOSCOW method for release planning.
 
# Explain MOSCOW method for release planning.
 
# During semester study and write a paper on a software engineering topic of your choice.
 
# During semester study and write a paper on a software engineering topic of your choice.
  +
  +
=== The retake exam ===
  +
'''Section 1'''
  +
  +
'''Section 2'''
  +
  +
'''Section 3'''
  +
  +
'''Section 4'''

Latest revision as of 11:59, 29 August 2022

FULL SEMESTER. Managing Software Development

  • Course name: FULL SEMESTER. Managing Software Development
  • Code discipline: SE-04
  • Subject area:

Short Description

This course covers the following concepts: People Management; Processes and Software Development Life-cycles; Planning and Controlling.

Prerequisites

Prerequisite subjects

  • Understanding of Agile Processes, for example SCRUM
  • Writing 1 page essays

Prerequisite topics

Course Topics

Course Sections and Topics
Section Topics within the section
People Management
  1. MSD Introduction
  2. OBU Case Study Discussion
  3. Managing Technical People
  4. Team formation, Decision Making and Conflict Resolution
  5. Managing Customer Expectations
  6. MCE Case Study Discussion
Software development processes
  1. Defining and measuring processes
  2. Case Study Exercise Discussion
  3. Software Development Life-cycles
  4. Process Frameworks and How to choose
Defining project success criteria
  1. Requirements Management
  2. Case Study Exercise Discussion
  3. Requirements case study/lecture
  4. Identifying and Managing Software Risk
  5. TBQ, Threshold of Success
  6. Risk statement discussion
Planning and controlling software development projects
  1. Introduction - Planning & Controlling Software Development Projects
  2. Work Breakdown Structures
  3. Estimation Methods
  4. Activity Planning
  5. Milestone Planning
  6. Release Planning
  7. Tracking Reporting & Controlling

Intended Learning Outcomes (ILOs)

What is the main purpose of this course?

Large scale software development requires the ability to manage resources - both human and computational - through control of the development process. This course is a breadth oriented course, 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 the estimating and scheduling.

ILOs defined at three levels

Level 1: What concepts should a student know/remember/explain?

By the end of the course, the students should be able to ...

  • importance of people in software development
  • trade-offs in various managing style
  • importance to manage customer expectations
  • major differences in the software development process
  • several methods to plan projects and estimate their duration

Level 2: What basic practical skills should a student be able to perform?

By the end of the course, the students should be able to ...

  • Impact of different personality types on team performance
  • Strengths and weaknesses of specific software development processes
  • Ways to define the project success criteria and potential risks
  • Customer oriented work breakdown and planning

Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?

By the end of the course, the students should be able to ...

  • Apply critical reasoning to assess root-causes of problems in software development process
  • Select a right process of a particular software development project
  • Define the success thresholds.
  • Evaluate and manage risks
  • Estimate project duration with several methods
  • Communicate with customers on the project related matters.

Grading

Course grading range

Grade Range Description of performance
A. Excellent 80-100 -
B. Good 65-79 -
C. Satisfactory 50-64 -
D. Poor 0-49 -

Course activities and grading breakdown

Activity Type Percentage of the overall course grade
Labs/seminar classes 10
Interim performance assessment 90
Exams 0

Recommendations for students on how to succeed in the course

Resources, literature and reference materials

Open access resources

  • This course makes use of many reference materials that are posted to Moodle.

Closed access resources

Software and tools used within the course

Teaching Methodology: Methods, techniques, & activities

Activities and Teaching Methods

Activities within each section
Learning Activities Section 1 Section 2 Section 3 Section 4
Homework and group projects 1 1 1 1
Reports 1 1 1 1
Essays 1 1 1 1
Discussions 1 1 1 1

Formative Assessment and Course Activities

Ongoing performance assessment

Section 1

Activity Type Content Is Graded?
Question Simply list the separate processes that a development team should manage. Also explain why each is, or is not important? 1
Question What are typical personality treats of "technical people"? 1
Question What are the Tuckman’s team development stages? 1
Question What leadership style(s), as discussed by Goleman, would be counterproductive in certain cases? 1
Question Looking at McCarthy’s article on participatory leadership, in what situation would a “coercive” style be used in team building? 1
Question The Heskett paper effectively recommends involving customers more in your work. What are some software development activities that would be suited to this? What are some where you don’t think customers should be involved and why? 1
Question Based on OBU case, what were the top issues involved with the development of MS Word with regards to stakeholders, market, technology, business drivers, culture and schedule? 0
Question Apply leadership/teamwork concepts to a project development problem at SATERA. 0
Question Discuss the key issues dealing with managing customer expectations with the Gigaplex client and propose a course or courses of action to resolve the problems you identified. 0

Section 2

Activity Type Content Is Graded?
Question Pressman identifies some misuse of process metrics. Which of these misuses is the most harmful? Explain why. 1
Question Pressman states that “correctness” is “the degree to which the software program performs its required function.” He says that defects per KLOC is the most common measurement for correctness. Do you agree or disagree that this is an appropriate measurement and why? 1
Question What do you think are some negatives to using Goal Question Metrics? 1
Question What is the difference between a lifecycle and a process framework? Give some specifics. 1
Question What assumptions should you make about stakeholders when choosing an incremental model? Explain why you chose these. 1
Question Is there a difference between iterative and incremental models? Explain. 1
Question What lifecycle does the ACDM framework fit under? Explain. 1
Question Specifically identify three current (time paper was written) critical Tartan Case software development processes. 0
Question In Tartan Case, what metrics are collected, or should be collected with an eye to improving the processes. Include a discussion on analyzing and changing the processes. 0
Question Provide justified recommendations to improve Tartan’s software quality. Specifically, what would you change and what metrics would you use to analyze the effectiveness of current processes and/or recommended changes? 0
Question Determine what SDLC and process framework you would recommend and why for each of the four software projects: OBU, Denver Baggage, Avionics development, and Department of Transportation. 0

Section 3

Activity Type Content Is Graded?
Question What is the difference between verifying and validating requirements? Be specific. 1
Question What are the main activities of requirements engineering? 1
Question What are the requirements elicitation problems? 1
Question What are the Quality Attributes? Describe ways to elicit quality attributes requirements. 1
Question Explain how one can use the Pareto principle in the context of risk management. Give an example. 1
Question Give examples of methods to assess risk impact. 1
Question What is the difference between Threshold of Success and Risks? 1
Question Describe the key issues that found in the case study with regards to requirements management. 0
Question Explain what approaches are selected in the case study and why? What was the result of applying those approaches on the project and team how addressed these issues? 0
Question According to the case study, what are the most critical factor in software quality and the most difficult problem that that the team faced in their projects? 0
Question Identify 5 key risks in case study and prioritize them. Simply state and justify your prioritization method. Ensure these are in the Condition-Consequence format, include context statements and time horizons. 0
Question Provide mitigation strategies to the risk identified in the case study. 0
Question Develop Threshold of Success for the case study project. 0

Section 4

Activity Type Content Is Graded?
Question What is Work Breakdown structure and how can it be applyed for project planning? 1
Question List several estimation methods and discuss their trade-offs? 1
Question What is the activity planning? 1
Question Give a definition of a Critical Path? 1
Question What is milestone planning? 1
Question Discuss several methods for release planning? 1
Question Propose a Work Breakdown Structure for a given project. 0
Question Give minimum duration of a project give a list of tasks and their dependencies. 0
Question Develop a milestone plan. 0
Question Propose a release plan for a given project based on estimations and priorities of tasks. 0

Final assessment

Section 1

  1. Based on a brief description of a situation on a project, give a recommendation for a leadership style. Justify.
  2. Name Tuckman’s team development stages? What activities are typical of each of those stages?
  3. Explain the Barry Boehm’s few on managing customers expectations. Give an example.

Section 2

  1. Give definition of a process.
  2. What is a Software Development Life-Cycle and how does it differ from from a process?
  3. List several software development processes currently in use and give their trade-offs?
  4. Based on a brief description of a software project, what software development process would you recommend? Justify.

Section 3

  1. Given a situation, identify, prioritise possible risks and discuss mitigation strategy.
  2. What is Threshold of Success and hos does it differ from Risks.
  3. Explain the condition-consequence definition for risk statements.
  4. Give an example of criticality assessment for risk statements.

Section 4

  1. List several types of Work Breakdown Structures and discuss trade-offs.
  2. Apply critical path calculations to an activity graph. Give the latest start for a specific task.
  3. Define milestone planning.
  4. Explain MOSCOW method for release planning.
  5. During semester study and write a paper on a software engineering topic of your choice.

The retake exam

Section 1

Section 2

Section 3

Section 4