MSc:ManaginSoftwareDevelopment Block1

From IU
Jump to navigation Jump to search

Managing Software Development. Block 1

  • Course name: Managing Software Development
  • Course number: SE-04

Course characteristics

Key concepts of the class

  • Introduction in Management of Software Development
  • People Management
  • Processes and Software Development Life-cycles

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.

Course Objectives Based on Bloom’s Taxonomy

- What should a student remember at the end of the course?

By the end of the course, the students will remember:

  • 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

- What should a student be able to understand at the end of the course?

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
  • Strengths and weaknesses of specific software development processes
  • Ways to define the project success criteria and potential risks
  • Customer oriented work breakdown and planning

- What should a student be able to apply at the end of the course?

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.

Course evaluation

Evaluation

Course grade breakdown
Proposed points
Labs/seminar classes 20 10
Interim performance assessment 30 90
Exams 50 0

The students performance will be evaluated as follows:

  • Participation (10%)
  • Case study analysis and assignments (50%)
  • Reading questions (20%)
  • CASE in Tools (20%)

Grades range

Course grading range
Proposed range
A. Excellent 90-100 80-100
B. Good 75-89 65-79
C. Satisfactory 60-74 50-64
D. Poor 0-59 0-49


If necessary, please indicate freely your course’s grading features: The semester starts with the default range as proposed in the Table 1, but it may change slightly (usually reduced) depending on how the semester progresses.

Resources and reference material

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

Course Sections

The main sections of the course and approximate hour distribution between them is as follows:

Course Sections
Section Section Title Teaching Hours
1 People Management 14
2 Software development processes 12

Section 1

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?

|a|c| & Yes/No
Development of individual parts of software product code & 0
Homework and group projects & 1
Midterm evaluation & 0
Testing (written or computer based) & 0
Reports & 1
Essays & 1
Oral polls & 0
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. Simply list the separate processes that a development team should manage. Also explain why each is, or is not important?
  2. What are typical personality treats of "technical people"?
  3. What are the Tuckman’s team development stages?
  4. What leadership style(s), as discussed by Goleman, would be counterproductive in certain cases?
  5. Looking at McCarthy’s article on participatory leadership, in what situation would a “coercive” style be used in team building?
  6. 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

  1. 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?
  2. Apply leadership/teamwork concepts to a project development problem at SATERA.
  3. 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

  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

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?

|a|c| & Yes/No
Development of individual parts of software product code & 0
Homework and group projects & 1
Midterm evaluation & 0
Testing (written or computer based) & 0
Reports & 1
Essays & 1
Oral polls & 0
Discussions & 1


Typical questions for ongoing performance evaluation within this section

  1. Pressman identifies some misuse of process metrics. Which of these misuses is the most harmful? Explain why.
  2. 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?
  3. What do you think are some negatives to using Goal Question Metrics?
  4. What is the difference between a lifecycle and a process framework? Give some specifics.
  5. What assumptions should you make about stakeholders when choosing an incremental model? Explain why you chose these.
  6. Is there a difference between iterative and incremental models? Explain.
  7. What lifecycle does the ACDM framework fit under? Explain.

Typical questions for seminar classes (labs) within this section

  1. Specifically identify three current (time paper was written) critical Tartan Case software development processes.
  2. 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.
  3. 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?
  4. 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

  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.