Difference between revisions of "BSc: Lean Software Development"

From IU
Jump to navigation Jump to search
Line 1: Line 1:
  +
 
= Lean Software Development =
 
= Lean Software Development =
  +
* '''Course name''': Lean Software Development
  +
* '''Code discipline''': XYZ
  +
* '''Subject area''':
   
  +
== Short Description ==
* <span>'''Course name:'''</span> Lean Software Development
 
  +
This course covers the following concepts: Fundamental principles of producing software as a creative act of the human mind; Techniques to optimize such production, with specific focus on agile methods.
* <span>'''Course number:'''</span> XYZ
 
   
== Course characteristics ==
+
== Prerequisites ==
   
=== Key concepts of the class ===
+
=== Prerequisite subjects ===
   
* Fundamental principles of producing software as a creative act of the human mind
 
* Techniques to optimize such production, with specific focus on agile methods
 
   
  +
=== Prerequisite topics ===
=== What is the purpose of this course? ===
 
   
This course exposes the student to the core concepts behind Lean Development in Software Engineering, beyond myths and legends, emphasizing how it relates to the general principles of Lean Development. It discusses the different possible software processes, how they can be tailored, enacted, and measured. In addition, a significant part of the course is centered around the application of lean to software development to knowledge intensive areas not necessarily connected to software.
 
   
== Course Objectives Based on Bloom’s Taxonomy ==
+
== Course Topics ==
  +
{| class="wikitable"
  +
|+ Course Sections and Topics
  +
|-
  +
! Section !! Topics within the section
  +
|-
  +
| Software as a creative activity ||
  +
# Nature of software
  +
# Software and art
  +
# Core resources for the production of software
  +
# Tame and wicked projects
  +
# Organizing the activities based on the GQM approach
  +
|-
  +
| Measurement in software ||
  +
# Meaning of measures
  +
# The representational theory of measurement
  +
# Measurement scales
  +
# Fundamental measures for the production of software
  +
# Procedural measures
  +
# Object Oriented measures
  +
|-
  +
| Taylorism and Fordism ||
  +
# The increase of productivity in the idea of Taylor
  +
# The role of division of work
  +
# Planning and formalization of tasks
  +
# Economies of scale
  +
# Problems in understanding tasks
  +
# Taylorism/Fordism and software development
  +
|-
  +
| Lean and Agile ||
  +
# Taiichi Ono and the Toyota Production System
  +
# Creating a “Radiography” of the Production Process
  +
# Workers involvement
  +
# “Pull” and Not “Push”
  +
# Kanban
  +
# Quality management
  +
# Process control
  +
# Job enrichment
  +
# Control and coordination mechanisms
  +
# Case study: Extreme Programming
  +
|-
  +
| Issues in Lean and Agile ||
  +
# The “Hype of Agile”
  +
# The dark side of agile
  +
# Skepticism about agile methods
  +
# Knowledge and software engineering
  +
# Using burn-down charts
  +
# The Zen of agile
  +
|-
  +
| Structuring a Lean Approach to software development ||
  +
# Existing proposals to create a “Lean Software Development”
  +
# Sharing a common vision
  +
# Depriving gurus of their power
  +
# GQM+
  +
# Applying the GQM+ step-by-step
  +
# Business alignment
  +
# GQM+ for business alignment
  +
|-
  +
| Optimizing the development process ||
  +
# Why the PDSA does not work in software
  +
# The experience factory
  +
# The QIP cycle
  +
# Non invasive measurement
  +
# The big-brother effect
  +
# The role of autonomation
  +
# Employing Andon boards
  +
|}
  +
== Intended Learning Outcomes (ILOs) ==
   
==== What should a student remember at the end of the course? ====
+
=== What is the main purpose of this course? ===
  +
This course exposes the student to the core concepts behind Lean Development in Software Engineering, beyond myths and legends, emphasizing how it relates to the general principles of Lean Development. It discusses the different possible software processes, how they can be tailored, enacted, and measured. In addition, a significant part of the course is centered around the application of lean to software development to knowledge intensive areas not necessarily connected to software.
   
  +
=== ILOs defined at three levels ===
By the end of the course, the students should be able to recognize and define:
 
   
  +
==== Level 1: What concepts should a student know/remember/explain? ====
  +
By the end of the course, the students should be able to ...
 
* creative nature of software production as an act of creativity of the human mind,
 
* creative nature of software production as an act of creativity of the human mind,
 
* the substantial differences between tame and wicked problems,
 
* the substantial differences between tame and wicked problems,
Line 30: Line 101:
 
* how to create an ad-hoc process for a development organization.
 
* how to create an ad-hoc process for a development organization.
   
==== 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):
 
 
 
* when a problem is “easy to solve” provided enough effort is put to such solution and when it is not,
 
* when a problem is “easy to solve” provided enough effort is put to such solution and when it is not,
 
* what is a measure in general,
 
* what is a measure in general,
Line 44: Line 113:
 
* an environment based on experience, like the Experience Factory.
 
* an environment based on experience, like the Experience Factory.
   
==== 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:
 
 
 
* Compute the fundamental software metrics to track the evolution of a project,
 
* Compute the fundamental software metrics to track the evolution of a project,
 
* Organize the aims of a (software) development organization in terms of Goals, Questions, and Metrics,
 
* Organize the aims of a (software) development organization in terms of Goals, Questions, and Metrics,
Line 54: Line 121:
 
* Structure the experience gathering during inside an organization to based on it the future strategic decision of such organization,
 
* Structure the experience gathering during inside an organization to based on it the future strategic decision of such organization,
 
* Relate the various proposals for Agile Methods to the overall principles of Lean Management,
 
* Relate the various proposals for Agile Methods to the overall principles of Lean Management,
* Define a suitable (lean) process for a new organization, a process to introduce and institutionalize it, and an approach to measure the outcome of such introduction and institutionalization.
+
* Define a suitable (lean) process for a new organization, a process to introduce and institutionalize it, and an approach to measure the outcome of such introduction and institutionalization.
  +
== Grading ==
   
=== Course evaluation ===
+
=== Course grading range ===
  +
{| class="wikitable"
The course can be passed by one of the following tracks:
 
  +
|+
I. Minimum passing level
 
II. Standard (replicate from syllabus)
 
III. Project focused
 
IV. Student research competition
 
Each track has a different weights of the evaluation criteria, but in general, the categories are the following:
 
* Class and lab participation (including class quizzes)
 
* Interactions with speakers
 
* Project
 
* Paper
 
* SRC submission
 
* Video presentation
 
* Oral exam
 
Every component will be graded on a scale 0-10 or 0-2 with a possibility of extra 30% extra credit. Failing any component of the course causes a failure of the whole course; indeed, this applies to the components with a weight larger than 0.
 
 
If there are not failing components the final grade will be computed as a weighted average of the components above approximated at the highest second digit and then rounded to the closest integer, and finally assigning A to 10, B to 7 to 9, C to 6.
 
 
 
Below a detailed description of each track is given. Notice that for tracks II, III, and IV, when they exist, the grades of the project, the paper, and SRC are divided in 50% for weekly deliverables and 50% for the final result.
 
 
 
During the first week, all groups need to have a vision of what do to. Then, every week they need to show what they have done and provide a plan for the future. Weekly outcomes will be graded on a scale 0-2 and the final result will be graded on a scale 0-10.
 
 
==== I. Minimum passing level ====
 
By choosing this track students can get a C grade for the course while putting minimum effort into it.
 
 
 
<div id="tab:LSDCourseGrading1">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|+ '''Course grade breakdown'''
 
!align="center"| '''Component'''
 
! '''Points'''
 
 
|-
 
|-
  +
! Grade !! Range !! Description of performance
| Class and lab participation (including class quizzes)
 
|align="center"| 15
 
 
|-
 
|-
  +
| A. Excellent || 96-100 || -
| Interactions with speakers
 
|align="center"| 5
 
 
|-
 
|-
  +
| B. Good || 66-95 || -
| Oral Exam
 
  +
|-
|align="center"| 80
 
  +
| C. Satisfactory || 56-65 || -
  +
|-
  +
| D. Poor || 0-55 || -
 
|}
 
|}
</div>
 
 
==== II. Standard ====
 
The standard way of passing the course including the group project activity, as it is given in the syllabus.
 
 
 
<div id="tab:LSDCourseGrading2">
 
   
  +
=== Course activities and grading breakdown ===
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
  +
{| class="wikitable"
|+ '''Course grade breakdown'''
 
  +
|+
!align="center"| '''Component'''
 
! '''Points'''
 
 
|-
 
|-
  +
! Activity Type !! Percentage of the overall course grade
| Class and lab participation (including class quizzes)
 
|align="center"| 10
 
 
|-
 
|-
  +
| Class and lab participation (including class quizzes) || 15
| Interactions with speakers
 
|align="center"| 10
 
 
|-
 
|-
  +
| Interactions with speakers || 5
| Project
 
|align="center"| 30
 
 
|-
 
|-
  +
| Oral Exam || 80
| Video presentation
 
|align="center"| 30
 
 
|-
 
|-
  +
| Class and lab participation (including class quizzes) || 10
| Oral Exam
 
|align="center"| 20
 
|}
 
</div>
 
 
The grade of the project is 50% for weekly deliverables and 50% for the final result.
 
 
==== III. Project focused ====
 
This track is for students who want to perform individual research-based projects.
 
 
<div id="tab:LSDCourseGrading3">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|+ '''Course grade breakdown'''
 
!align="center"| '''Component'''
 
! '''Points'''
 
 
|-
 
|-
  +
| Interactions with speakers || 10
| Class and lab participation (including class quizzes)
 
|align="center"| 10
 
 
|-
 
|-
  +
| Project || 30
| Interactions with speakers
 
|align="center"| 10
 
 
|-
 
|-
  +
| Video presentation || 30
| Project
 
|align="center"| 40
 
 
|-
 
|-
  +
| Oral Exam || 20
| Paper
 
|align="center"| 20
 
 
|-
 
|-
  +
| Class and lab participation (including class quizzes) || 10
| Video presentation
 
|align="center"| 10
 
 
|-
 
|-
  +
| Interactions with speakers || 10
| Oral Exam
 
|align="center"| 10
 
|}
 
</div>
 
 
The grade of the project is 50% for weekly deliverables and 50% for the final result. The grade does not depend on the actual outcome of the paper submission, but it is defined by the instructor according to the typical criteria for paper submissions.
 
 
 
==== IV. Student research competition ====
 
This track is for the most intelligent students who can provide the deliverable of the research-based project in the form of well-done paper and participate in SRC of one of the most recognizable software engineering conferences worldwide.
 
 
<div id="tab:LSDCourseGrading4">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|+ '''Course grade breakdown'''
 
!align="center"| '''Component'''
 
! '''Points'''
 
 
|-
 
|-
  +
| Project || 40
| Class and lab participation (including class quizzes)
 
|align="center"| 10
 
 
|-
 
|-
  +
| Paper || 20
| Interactions with speakers
 
|align="center"| 10
 
 
|-
 
|-
  +
| Video presentation || 10
| Project
 
|align="center"| 40
 
 
|-
 
|-
  +
| Oral Exam || 10
| Paper
 
|align="center"| 20
 
 
|-
 
|-
  +
| Class and lab participation (including class quizzes) || 10
| SRC submission
 
|align="center"| 20
 
|}
 
</div>
 
 
=== Grades range ===
 
 
<div id="tab:LSDCourseGradingRange">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|+ Course grading range
 
 
|-
 
|-
  +
| Interactions with speakers || 10
| A. Excellent
 
|align="center"| 96-100
 
 
|-
 
|-
  +
| Project || 40
| B. Good
 
|align="center"| 66-95
 
 
|-
 
|-
  +
| Paper || 20
| C. Satisfactory
 
|align="center"| 56-65
 
 
|-
 
|-
  +
| SRC submission || 20
| D. Poor
 
|align="center"| 0-55
 
 
|}
 
|}
</div>
 
   
  +
=== Recommendations for students on how to succeed in the course ===
=== Late submission and learning disabilities ===
 
<b>Late submissions:</b> All work is expected to be submitted at the indicated due date and time also because the course requires participation that is not compatible with delays. Late submissions will be penalised or voided at discretion of the lab or of the class instructor.
 
   
<b>Learning disabilities:</b> If you have a documented learning disability, please notify the instructor during the first week of class.
 
   
  +
== Resources, literature and reference materials ==
=== Prerequisite courses ===
 
Completion of the courses of the first 5 semesters of the BS curriculum of Innopolis University.
 
   
=== Cooperation policy and quotations ===
+
=== Open access resources ===
  +
* Textbook: Andrea Janes and Giancarlo Succi. Lean Software Development in Action. Springer, Heidelberg, Germany, 2014. ISBN 978-3-662-44178-7. doi: 10.1007/978-3-642-00503-9.
We encourage vigorous discussion and cooperation in this class. You should feel free to discuss any aspects of the class with any classmates. However, we insist that any written material that is not specifically designated as a Team Deliverable be done by you alone. This includes answers to reading questions, individual reports associated with assignments, and labs. We also insist that if you include verbatim text from any source, you clearly indicate it using standard conventions of quotation or indentation and a note to indicate the source.
 
  +
* Reference: James P. Womack and Daniel T. Jones. Lean Thinking: banish waste and create wealth in your corporation. Lean Enterprise Institute. Simon & Schuster, 1996. ISBN 9780684810355.
  +
* Reference: Taiichi Ohno. Toyota production system: beyond large-scale production. CRC Press, 1988
  +
* Reference: James P. Womack. Lean Thinking. Simon & Schuster, Limited, 1997. ISBN 9780671004712.
  +
* Reference: James P. Womack, Daniel T. Jones, and Daniel Roos. The Machine That Changed the World: The Story of Lean Production. Harper Perennial modern classics. HarperCollins, 1991. ISBN 9780060974176.
  +
* Reference: Mary Poppendieck and Tom Poppendieck. Implementing Lean Software Development: From Concept to Cash. A Kent Beck signature book. Addison-Wesley, 2007. ISBN 9780321437389.
  +
* Reference: C.M. Christensen. The Innovator’s Dilemma: When New Technologies Cause Great Firms to Fail. Management of innovation and change series. Harvard Business School Press, 1997. ISBN 9780875845852.
   
=== Resources and reference material ===
+
=== Closed access resources ===
   
* '''Textbook:''' Andrea Janes and Giancarlo Succi. Lean Software Development in Action. Springer, Heidelberg, Germany, 2014. ISBN 978-3-662-44178-7. doi: 10.1007/978-3-642-00503-9.
 
* '''Reference:''' James P. Womack and Daniel T. Jones. Lean Thinking: banish waste and create wealth in your corporation. Lean Enterprise Institute. Simon & Schuster, 1996. ISBN 9780684810355.
 
* '''Reference:''' Taiichi Ohno. Toyota production system: beyond large-scale production. CRC Press, 1988
 
* '''Reference:''' James P. Womack. Lean Thinking. Simon & Schuster, Limited, 1997. ISBN 9780671004712.
 
* '''Reference:''' James P. Womack, Daniel T. Jones, and Daniel Roos. The Machine That Changed the World: The Story of Lean Production. Harper Perennial modern classics. HarperCollins, 1991. ISBN 9780060974176.
 
* '''Reference:''' Mary Poppendieck and Tom Poppendieck. Implementing Lean Software Development: From Concept to Cash. A Kent Beck signature book. Addison-Wesley, 2007. ISBN 9780321437389.
 
* '''Reference:''' C.M. Christensen. The Innovator’s Dilemma: When New Technologies Cause Great Firms to Fail. Management of innovation and change series. Harvard Business School Press, 1997. ISBN 9780875845852.
 
   
  +
=== Software and tools used within the course ===
== Course Sections ==
 
  +
  +
= Teaching Methodology: Methods, techniques, & activities =
   
  +
== Activities and Teaching Methods ==
The course is organized in 15 weeks with every weeks 2 academics hours of lectures and 4 academic hours of labs. The main sections of the course and approximate hour distribution between them is as follows:
 
  +
{| class="wikitable"
  +
|+ Activities within each section
  +
|-
  +
! Learning Activities !! Section 1 !! Section 2 !! Section 3 !! Section 4 !! Section 5 !! Section 6 !! Section 7
  +
|-
  +
| Homework and group projects || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Reports || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Oral polls || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|-
  +
| Discussions || 1 || 1 || 1 || 1 || 1 || 1 || 1
  +
|}
  +
== Formative Assessment and Course Activities ==
   
  +
=== Ongoing performance assessment ===
<div id="tab:LSDCourseSections">
 
   
  +
==== Section 1 ====
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
  +
{| class="wikitable"
|+ Course Sections
 
  +
|+
!align="center"| '''Section'''
 
! '''Section Title'''
 
!align="center"| '''Teaching Hours'''
 
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
|align="center"| 1
 
| Software as a creative activity
 
|align="center"| 12
 
 
|-
 
|-
  +
| Question || Provide examples of creativity in the production of software. || 1
|align="center"| 2
 
| Measurement in software
 
|align="center"| 24
 
 
|-
 
|-
  +
| Question || Describe the differences between tame and wicked projects. || 1
|align="center"| 3
 
| Taylorism and Fordism
 
|align="center"| 6
 
 
|-
 
|-
  +
| Question || Discuss the key resources needed for the production of software. || 1
|align="center"| 4
 
| Lean and Agile
 
|align="center"| 24
 
 
|-
 
|-
  +
| Question || What are key issues in creative production of software for distributed teams? || 1
|align="center"| 5
 
| Issues in Lean and Agile
 
|align="center"| 6
 
 
|-
 
|-
  +
| Question || Provide examples of wicked problems from your everyday life || 0
|align="center"| 6
 
| Structuring a Lean Approach to software development
 
|align="center"| 6
 
 
|-
 
|-
  +
| Question || Evidence wickedness in different aspects of software production || 0
|align="center"| 7
 
| Optimizing the development process
 
|align="center"| 12
 
|}
 
 
 
</div>
 
=== Section 1 ===
 
 
==== Section title: ====
 
 
Software as a creative activity
 
 
==== Topics covered in this section: ====
 
 
* Nature of software
 
* Software and art
 
* Core resources for the production of software
 
* Tame and wicked projects
 
* Organizing the activities based on the GQM approach
 
 
==== What forms of evaluation were used to test students’ performance in this section? ====
 
 
<div id="tab:LSDSectionEval1">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|''' '''
 
! '''Yes/No'''
 
 
|-
 
|-
  +
| Question || Create a GQM for your aims of the semester || 0
| Development of individual parts of software product code
 
|align="center"| 0
 
 
|-
 
|-
| Homework and group projects
+
| Question || Discuss the role of GQM in tame and wicked projects || 0
  +
|}
|align="center"| 1
 
  +
==== Section 2 ====
  +
{| class="wikitable"
  +
|+
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Provide examples of the representational theory of measurement || 1
| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || List the measurement scales || 1
| Reports
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Present for each measurement scale the operations that can be performed on it || 1
| Essays
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Discuss the representational condition || 1
| Oral polls
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || What are key size metrics? || 1
| Discussions
 
|align="center"| 1
 
|}
 
 
 
</div>
 
==== Typical questions for ongoing performance evaluation within this section ====
 
 
# Provide examples of creativity in the production of software.
 
# Describe the differences between tame and wicked projects.
 
# Discuss the key resources needed for the production of software.
 
# What are key issues in creative production of software for distributed teams?
 
 
==== Typical questions for seminar classes (labs) within this section ====
 
 
# Provide examples of wicked problems from your everyday life
 
# Evidence wickedness in different aspects of software production
 
# Create a GQM for your aims of the semester
 
# Discuss the role of GQM in tame and wicked projects
 
 
==== Test questions for final assessment in this section ====
 
 
# Present the salient aspects of wicked problems
 
# List the key aspects of software that make it a wicked problem
 
# Provide a link between wickedness and creativity in software production
 
# Discuss what promotes and what inhibit creativity in general and in software production
 
# Outline meaning and limitation of the concept of “engineering” the production of software
 
 
=== Section 2 ===
 
 
==== Section title: ====
 
 
Measurement in software
 
 
==== Topics covered in this section: ====
 
 
* Meaning of measures
 
* The representational theory of measurement
 
* Measurement scales
 
* Fundamental measures for the production of software
 
* Procedural measures
 
* Object Oriented measures
 
 
==== What forms of evaluation were used to test students’ performance in this section? ====
 
 
<div id="tab:LSDSectionEval2">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|''' '''
 
! '''Yes/No'''
 
 
|-
 
|-
  +
| Question || What are key complexity metrics? || 1
| Development of individual parts of software product code
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Provide examples of subjective and objective metrics || 0
| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || List 3 direct and 3 indirect measures, evidencing also the problems connected to the construction of indirect measures || 0
| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Compute LOC and other size metrics for code snippets || 0
| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Compute MCC and other complexity metrics for code snippets || 0
| Reports
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Compute the metrics of the CK suite for portions of Object Oriented systems || 0
| Essays
 
  +
|}
|align="center"| 0
 
  +
==== Section 3 ====
  +
{| class="wikitable"
  +
|+
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
| Oral polls
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Detail the fundamental assumptions by Taylor || 1
| Discussions
 
|align="center"| 1
 
|}
 
 
 
</div>
 
==== Typical questions for ongoing performance evaluation within this section ====
 
 
# Provide examples of the representational theory of measurement
 
# List the measurement scales
 
# Present for each measurement scale the operations that can be performed on it
 
# Discuss the representational condition
 
# What are key size metrics?
 
# What are key complexity metrics?
 
 
==== Typical questions for seminar classes (labs) within this section ====
 
 
# Provide examples of subjective and objective metrics
 
# List 3 direct and 3 indirect measures, evidencing also the problems connected to the construction of indirect measures
 
# Compute LOC and other size metrics for code snippets
 
# Compute MCC and other complexity metrics for code snippets
 
# Compute the metrics of the CK suite for portions of Object Oriented systems
 
 
==== Test questions for final assessment in this section ====
 
 
# Structure the aims of a company using the GQM and detailing the metrics to compute, also explaining the deductions and the predictions that can be made with such metrics.
 
# Given an index computed as a combination of metrics, determine if it is a metrics according to the representational theory of measurement.
 
# Analyse a portion of a system and determine suitable metrics to extract and the information that would be provided by such metrics.
 
# Given a website performing a service (like flight reservations), compute the Function Points for such website.
 
# Discuss how to structure a taxonomy of quality for a specific company, explaining the role of reliability in it, and detailing how to compute the reliability again in the context of such company; please make the assumptions that you need to perform such computation.
 
 
=== Section 3 ===
 
 
==== Section title: ====
 
 
Taylorism and Fordism
 
 
==== Topics covered in this section: ====
 
 
* The increase of productivity in the idea of Taylor
 
* The role of division of work
 
* Planning and formalization of tasks
 
* Economies of scale
 
* Problems in understanding tasks
 
* Taylorism/Fordism and software development
 
 
==== What forms of evaluation were used to test students’ performance in this section? ====
 
<div id="tab:LSDSectionEval3">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|''' '''
 
! '''Yes/No'''
 
 
|-
 
|-
  +
| Question || What are the fundamental activities of managers according to Taylor? || 1
| Development of individual parts of software product code
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || In which sense Taylor has influenced what we now consider “good management practices?” || 1
| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || How does creativity relates to the “good management practices” of Taylor? || 1
| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || What are the problems in applying Fordism/Taylorism to software development? || 1
| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Provide examples of companies where the approach by Taylor has been successful || 0
| Reports
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Discuss how the approach of Taylor can be useful in attracting and/or retaining employees || 0
| Essays
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Analyse the fundamental activities of managers according to Taylor and determine their limits || 0
| Oral polls
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Determine the fundamental activities of managers according to Taylor can have an implication in the software crisis || 0
| Discussions
 
|align="center"| 1
 
|}
 
 
 
</div>
 
==== Typical questions for ongoing performance evaluation within this section ====
 
 
# Detail the fundamental assumptions by Taylor
 
# What are the fundamental activities of managers according to Taylor?
 
# In which sense Taylor has influenced what we now consider “good management practices?”
 
# How does creativity relates to the “good management practices” of Taylor?
 
# What are the problems in applying Fordism/Taylorism to software development?
 
 
==== Typical questions for seminar classes (labs) within this section ====
 
 
# Provide examples of companies where the approach by Taylor has been successful
 
# Discuss how the approach of Taylor can be useful in attracting and/or retaining employees
 
# Analyse the fundamental activities of managers according to Taylor and determine their limits
 
# Determine the fundamental activities of managers according to Taylor can have an implication in the software crisis
 
# Outline how flexibility and variable requirements can be handled in the context of Taylorism and Fordism
 
 
==== Test questions for final assessment in this section ====
 
 
# What aspects of making software feel like an art, which like a craft to you and how could you bend Taylorism and Fordism to handle it?
 
# How does Fordism and Taylorism can explain that companies producing software containing bugs can still stay in the market, and, in certain case, also be successful?
 
# Based on your experience and previous courses, which development models can refer to Fordism and Taylorism and which cannot be reduced to it?
 
# How does the specialization of work in software development can be linked to Fordism and Taylorism?
 
# Provide an example for each of the fundamental activities of managers according to Taylor that shows how such activity is very useful in software development and one that shows that is is inadequate.
 
 
=== Section 4 ===
 
 
==== Section title: ====
 
 
Lean and Agile
 
 
==== Topics covered in this section: ====
 
 
* Taiichi Ono and the Toyota Production System
 
* Creating a “Radiography” of the Production Process
 
* Workers involvement
 
* “Pull” and Not “Push”
 
* Kanban
 
* Quality management
 
* Process control
 
* Job enrichment
 
* Control and coordination mechanisms
 
* Case study: Extreme Programming
 
 
==== What forms of evaluation were used to test students’ performance in this section? ====
 
<div id="tab:LSDSectionEval4">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|''' '''
 
! '''Yes/No'''
 
 
|-
 
|-
  +
| Question || Outline how flexibility and variable requirements can be handled in the context of Taylorism and Fordism || 0
| Development of individual parts of software product code
 
  +
|}
|align="center"| 0
 
  +
==== Section 4 ====
  +
{| class="wikitable"
  +
|+
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Present the key problems in batch production || 1
| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Outline the key principles of the approach of Ono at Toyota || 1
| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || What are the fundamental steps in eliminating waste according to Ono? || 1
| Reports
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Details the role of the customers and of the workers in the approach of Ono || 1
| Essays
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Explain the difference between “Pulling” and “Pushing” || 1
| Oral polls
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || What are key steps in improving quality according to Ono? || 1
| Discussions
 
|align="center"| 1
 
|}
 
 
 
</div>
 
==== Typical questions for ongoing performance evaluation within this section ====
 
 
# Present the key problems in batch production
 
# Outline the key principles of the approach of Ono at Toyota
 
# What are the fundamental steps in eliminating waste according to Ono?
 
# Details the role of the customers and of the workers in the approach of Ono
 
# Explain the difference between “Pulling” and “Pushing”
 
# What are key steps in improving quality according to Ono?
 
# What are the key control and coordination mechanisms available?
 
 
==== Typical questions for seminar classes (labs) within this section ====
 
 
# What are the fundamental two actions needed to perform a Lean transformation according to Ono?
 
# What are the associated three major needs?
 
# What are the 5 steps to enact Lean Thinking according to Womak and Jones?
 
# Discuss the 8 constantly ongoing activities in a lean company like Toyota
 
# How can activities been classified in a decision matrix in an environment like Toyota?
 
# Provide concrete examples of “Push” and of “Pull” in software production.
 
# Details the control and coordination mechanisms present in agile and in traditional development environments.
 
 
==== Test questions for final assessment in this section ====
 
 
# Structure a model like PDSA for a company producing websites for online marketing.
 
# How can the right part and the right information be always available without waste according to the Toyota approach?
 
# Compare a street crossing based on traffic lights with a roundabout and determine the approach that is safest and the one with the a highest throughput according to Waterfall and to Lean.
 
# Discuss the involvements of workers in tayloristic/fordistic and in Lean development processes and their implications for the retention and the improvement of the quality of the workforce.
 
# Outline the extent of which economies of scale exist in Lean development processes.
 
# Imagine you had to introduce Extreme Programming in a software development team that follows a waterfall process. Which problems do you foresee? How will the clients react (that until now are used to work with a team that used the waterfall process)? How would you address them?
 
 
=== Section 5 ===
 
 
==== Section title: ====
 
 
Issues in Lean and Agile
 
 
==== Topics covered in this section: ====
 
 
* The “Hype of Agile”
 
* The dark side of agile
 
* Skepticism about agile methods
 
* Knowledge and software engineering
 
* Using burn-down charts
 
* The Zen of agile
 
 
==== What forms of evaluation were used to test students’ performance in this section? ====
 
<div id="tab:LSDSectionEval5">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|''' '''
 
! '''Yes/No'''
 
 
|-
 
|-
  +
| Question || What are the key control and coordination mechanisms available? || 1
| Development of individual parts of software product code
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || What are the fundamental two actions needed to perform a Lean transformation according to Ono? || 0
| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || What are the associated three major needs? || 0
| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || What are the 5 steps to enact Lean Thinking according to Womak and Jones? || 0
| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Discuss the 8 constantly ongoing activities in a lean company like Toyota || 0
| Reports
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || How can activities been classified in a decision matrix in an environment like Toyota? || 0
| Essays
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Provide concrete examples of “Push” and of “Pull” in software production. || 0
| Oral polls
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Details the control and coordination mechanisms present in agile and in traditional development environments. || 0
| Discussions
 
  +
|}
|align="center"| 1
 
  +
==== Section 5 ====
|}
 
  +
{| class="wikitable"
 
  +
|+
 
</div>
 
==== Typical questions for ongoing performance evaluation within this section ====
 
 
# What is the Gartner’s Innovation Hype Cycle? Could you provide examples of application of it to a different field of knowledge?
 
# Describe the so-called “Dark Agile Manifesto”
 
# What are the sources of the skepticism present with respect to Agile?
 
# What makes agile awkward in the eyes of “traditional” managers?
 
# Given a production system, how do you determine what is the value of every step, how much improvement can be considered enough, and when is the point reached where value is not increased anymore but destroyed?
 
# How is it possible to obtain knowledge about the production process? How can I create visibility of the ongoing activities or problems?
 
 
==== Typical questions for seminar classes (labs) within this section ====
 
 
# Identify in other areas of software engineering phenomenon similar to the “Dark Side of Agile.”
 
# Identify in other knowledge-intensive fields phenomena similar to the “Dark Side of Agile” and discuss how they can be tackled.
 
# Given a production process, determine strategies to store knowledge to create experience?
 
# How can you design the production process so that the team uses the gained experience?
 
# How can you systematically improve your process, also building on the experience to anticipate problems (create wisdom)?
 
 
==== Test questions for final assessment in this section ====
 
 
# Imagine you are the boss of a small software development company. Which actions would you do or which practices would you introduce to prevent that your programmers fall into the trap of following a software guru?
 
# Elaborate possible extreme (and damaging) positions that can be taken by gurus of agile.
 
# Explain the differences in introducing a methodology by a guru and by a smart and effective coach.
 
# Detail why Extreme Programming produces an informative workspace.
 
# Discuss effective ways of packaging and “distributing” knowledge in software teams, starting with the guru approach of organizing knowledge into simple, clear practices which are easy to explain and to follow.
 
 
=== Section 6 ===
 
 
==== Section title: ====
 
 
Structuring a Lean Approach to software development
 
 
==== Topics covered in this section: ====
 
 
* Existing proposals to create a “Lean Software Development”
 
* Sharing a common vision
 
* Depriving gurus of their power
 
* GQM+
 
* Applying the GQM+ step-by-step
 
* Business alignment
 
* GQM+ for business alignment
 
 
==== What forms of evaluation were used to test students’ performance in this section? ====
 
<div id="tab:LSDSectionEval6">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|''' '''
 
! '''Yes/No'''
 
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
| Development of individual parts of software product code
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || What is the Gartner’s Innovation Hype Cycle? Could you provide examples of application of it to a different field of knowledge? || 1
| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Describe the so-called “Dark Agile Manifesto” || 1
| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || What are the sources of the skepticism present with respect to Agile? || 1
| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || What makes agile awkward in the eyes of “traditional” managers? || 1
| Reports
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Given a production system, how do you determine what is the value of every step, how much improvement can be considered enough, and when is the point reached where value is not increased anymore but destroyed? || 1
| Essays
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || How is it possible to obtain knowledge about the production process? How can I create visibility of the ongoing activities or problems? || 1
| Oral polls
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Identify in other areas of software engineering phenomenon similar to the “Dark Side of Agile.” || 0
| Discussions
 
  +
|-
|align="center"| 1
 
  +
| Question || Identify in other knowledge-intensive fields phenomena similar to the “Dark Side of Agile” and discuss how they can be tackled. || 0
|}
 
  +
|-
 
  +
| Question || Given a production process, determine strategies to store knowledge to create experience? || 0
 
  +
|-
</div>
 
  +
| Question || How can you design the production process so that the team uses the gained experience? || 0
==== Typical questions for ongoing performance evaluation within this section ====
 
  +
|-
 
  +
| Question || How can you systematically improve your process, also building on the experience to anticipate problems (create wisdom)? || 0
# Reflect on the seven principles for characterizing Lean Software Development by Mary and Tom Poppendieck.
 
  +
|}
# What is the semantic gap and which threats it poses to effective software development?
 
  +
==== Section 6 ====
# Map the structure of Extreme Programming to the layered structure of Shalloway et al.
 
  +
{| class="wikitable"
# How does the scientific method deprives gurus from their power?
 
  +
|+
# What are the steps to implement the GQM+?
 
  +
|-
# For what reason measurement goals and business goals should be interconnected?
 
  +
! Activity Type !! Content !! Is Graded?
 
  +
|-
==== Typical questions for seminar classes (labs) within this section ====
 
  +
| Question || Reflect on the seven principles for characterizing Lean Software Development by Mary and Tom Poppendieck. || 1
 
  +
|-
# How do the practices of Lean Management defined by Hibbs and colleagues relate to the seven principles by Mary and Tom Poppendieck
 
  +
| Question || What is the semantic gap and which threats it poses to effective software development? || 1
# Propose how you could develop software and hardware tools to promote common visions in companies.
 
  +
|-
# Elaborate a proposal to create some kind of Balanced Scorecards to evaluate your current study.
 
  +
| Question || Map the structure of Extreme Programming to the layered structure of Shalloway et al. || 1
# Discuss the opinion of Ono about following plans and the extent to which such opinion contradicts (a) the practices, and (b) the principles of the tayloristic/fordistic approach
 
  +
|-
# Propose a SWAT analysis to introduce a Lean approach to your most recent software development endavour
 
  +
| Question || How does the scientific method deprives gurus from their power? || 1
 
  +
|-
==== Test questions for final assessment in this section ====
 
  +
| Question || What are the steps to implement the GQM+? || 1
 
# Discuss the role of customer on-site under the perspective of lean and outline it relevance in the earlier and then in the later proposals of agile software development.
 
# Suppose that you have to develop Balanced Scorecards for a software development team. Which perspectives would you use? Which goals would you use for each perspective?
 
# What is a socio-technical system and how can it be used to describe an (agile) software production environement?
 
# Imagine you want to evaluate how readable the source code of some program is. Define a GQM+ model to describe what and why you would measure.
 
# The development in company M occurs according to the following schema: when a new project is started, a developer takes an old project that is the most similar to the new requirements and makes a copy and starts implementing the required modifications. To improve this process and to help the company to adopt a component-based approach, we want to understand which pieces of code are the best candidates for future components and which variability points they have. Define a suitable GQM+ for such purpose.
 
 
=== Section 7 ===
 
 
==== Section title: ====
 
 
Optimizing the development process
 
 
==== Topics covered in this section: ====
 
 
* Why the PDSA does not work in software
 
* The experience factory
 
* The QIP cycle
 
* Non invasive measurement
 
* The big-brother effect
 
* The role of autonomation
 
* Employing Andon boards
 
 
==== What forms of evaluation were used to test students’ performance in this section? ====
 
 
<div id="tab:LSDSectionEval7">
 
 
{| style="border-spacing: 2px; border: 1px solid darkgray;"
 
|''' '''
 
! '''Yes/No'''
 
 
|-
 
|-
  +
| Question || For what reason measurement goals and business goals should be interconnected? || 1
| Development of individual parts of software product code
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || How do the practices of Lean Management defined by Hibbs and colleagues relate to the seven principles by Mary and Tom Poppendieck || 0
| Homework and group projects
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Propose how you could develop software and hardware tools to promote common visions in companies. || 0
| Midterm evaluation
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Elaborate a proposal to create some kind of Balanced Scorecards to evaluate your current study. || 0
| Testing (written or computer based)
 
|align="center"| 0
 
 
|-
 
|-
  +
| Question || Discuss the opinion of Ono about following plans and the extent to which such opinion contradicts (a) the practices, and (b) the principles of the tayloristic/fordistic approach || 0
| Reports
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Propose a SWAT analysis to introduce a Lean approach to your most recent software development endavour || 0
| Essays
 
  +
|}
|align="center"| 0
 
  +
==== Section 7 ====
  +
{| class="wikitable"
  +
|+
 
|-
 
|-
  +
! Activity Type !! Content !! Is Graded?
| Oral polls
 
|align="center"| 1
 
 
|-
 
|-
  +
| Question || Details the major components of an experience factory. || 1
| Discussions
 
  +
|-
|align="center"| 1
 
  +
| Question || What are Reflection, Retrospective, and Post-Mortem Analysis? Why are they useful in Lean Software Development? || 1
|}
 
  +
|-
  +
| Question || What are the key components of a non invasive software measurement systems? || 1
  +
|-
  +
| Question || What is the big brother effect and how it is possible to alleviate it. || 1
  +
|-
  +
| Question || Discuss how autonomation is present in Extreme Programming. || 1
  +
|-
  +
| Question || Where is the term “Dashboard” coming from and what is its use in Lean Software Development? || 1
  +
|-
  +
| Question || List the steps of a QIP. || 0
  +
|-
  +
| Question || Discuss the risks of a measurement program and how non invasive software measurement can help alleviating them. || 0
  +
|-
  +
| Question || Are there cases in which Theory X of management could be more effective than Theory Y? Discuss your findings. || 0
  +
|-
  +
| Question || For which aspects of software production autonomation could be useful? || 0
  +
|-
  +
| Question || Which tools could be used to promote autonomation? || 0
  +
|-
  +
| Question || Prototype by paper and pencil an Andon board that you would consider useful in a software production environment. || 0
  +
|}
  +
=== Final assessment ===
  +
'''Section 1'''
  +
# Present the salient aspects of wicked problems
  +
# List the key aspects of software that make it a wicked problem
  +
# Provide a link between wickedness and creativity in software production
  +
# Discuss what promotes and what inhibit creativity in general and in software production
  +
# Outline meaning and limitation of the concept of “engineering” the production of software
  +
'''Section 2'''
  +
# Structure the aims of a company using the GQM and detailing the metrics to compute, also explaining the deductions and the predictions that can be made with such metrics.
  +
# Given an index computed as a combination of metrics, determine if it is a metrics according to the representational theory of measurement.
  +
# Analyse a portion of a system and determine suitable metrics to extract and the information that would be provided by such metrics.
  +
# Given a website performing a service (like flight reservations), compute the Function Points for such website.
  +
# Discuss how to structure a taxonomy of quality for a specific company, explaining the role of reliability in it, and detailing how to compute the reliability again in the context of such company; please make the assumptions that you need to perform such computation.
  +
'''Section 3'''
  +
# What aspects of making software feel like an art, which like a craft to you and how could you bend Taylorism and Fordism to handle it?
  +
# How does Fordism and Taylorism can explain that companies producing software containing bugs can still stay in the market, and, in certain case, also be successful?
  +
# Based on your experience and previous courses, which development models can refer to Fordism and Taylorism and which cannot be reduced to it?
  +
# How does the specialization of work in software development can be linked to Fordism and Taylorism?
  +
# Provide an example for each of the fundamental activities of managers according to Taylor that shows how such activity is very useful in software development and one that shows that is is inadequate.
  +
'''Section 4'''
  +
# Structure a model like PDSA for a company producing websites for online marketing.
  +
# How can the right part and the right information be always available without waste according to the Toyota approach?
  +
# Compare a street crossing based on traffic lights with a roundabout and determine the approach that is safest and the one with the a highest throughput according to Waterfall and to Lean.
  +
# Discuss the involvements of workers in tayloristic/fordistic and in Lean development processes and their implications for the retention and the improvement of the quality of the workforce.
  +
# Outline the extent of which economies of scale exist in Lean development processes.
  +
# Imagine you had to introduce Extreme Programming in a software development team that follows a waterfall process. Which problems do you foresee? How will the clients react (that until now are used to work with a team that used the waterfall process)? How would you address them?
  +
'''Section 5'''
  +
# Imagine you are the boss of a small software development company. Which actions would you do or which practices would you introduce to prevent that your programmers fall into the trap of following a software guru?
  +
# Elaborate possible extreme (and damaging) positions that can be taken by gurus of agile.
  +
# Explain the differences in introducing a methodology by a guru and by a smart and effective coach.
  +
# Detail why Extreme Programming produces an informative workspace.
  +
# Discuss effective ways of packaging and “distributing” knowledge in software teams, starting with the guru approach of organizing knowledge into simple, clear practices which are easy to explain and to follow.
  +
'''Section 6'''
  +
# Discuss the role of customer on-site under the perspective of lean and outline it relevance in the earlier and then in the later proposals of agile software development.
  +
# Suppose that you have to develop Balanced Scorecards for a software development team. Which perspectives would you use? Which goals would you use for each perspective?
  +
# What is a socio-technical system and how can it be used to describe an (agile) software production environement?
  +
# Imagine you want to evaluate how readable the source code of some program is. Define a GQM+ model to describe what and why you would measure.
  +
# The development in company M occurs according to the following schema: when a new project is started, a developer takes an old project that is the most similar to the new requirements and makes a copy and starts implementing the required modifications. To improve this process and to help the company to adopt a component-based approach, we want to understand which pieces of code are the best candidates for future components and which variability points they have. Define a suitable GQM+ for such purpose.
  +
'''Section 7'''
  +
# What type of wisdom (in the sense of “know-why”) would you manage in an Experience Factory to support Lean Thinking? Distinguish between organizational learning and project learning.
  +
# Assume you are a manager convinced that Theory X is true. Which non-invasive measurement probes would you want to develop to maximize productivity? Now assume you are convinced that Theory Y is true. Which non-invasive measurement probes would you need now?
  +
# We discussed that we foresee two ways to collect measurements non- invasively: in batch and in background mode. What are the advantages and disadvantages of each approach?
  +
# There are many interrelated building blocks (or concepts) of Lean Software Development and each contributes differently to it. What types of data are handled by each of these building blocks (or concepts)? How do the contribution to the overall value stream, to the creation of knowledge, and to the overall improvement?
  +
# Assume you set up a fantastic dashboard for your team. As you collect the data and visualize it, you notice that all the measurements show problematic values. You let the dashboard in place for some days and also show it to your collaborators, but nobody cares; everybody continues his job as if everything would be fine. What is going wrong?
   
  +
=== The retake exam ===
  +
'''Section 1'''
   
  +
'''Section 2'''
</div>
 
==== Typical questions for ongoing performance evaluation within this section ====
 
   
  +
'''Section 3'''
# Details the major components of an experience factory.
 
# What are Reflection, Retrospective, and Post-Mortem Analysis? Why are they useful in Lean Software Development?
 
# What are the key components of a non invasive software measurement systems?
 
# What is the big brother effect and how it is possible to alleviate it.
 
# Discuss how autonomation is present in Extreme Programming.
 
# Where is the term “Dashboard” coming from and what is its use in Lean Software Development?
 
   
  +
'''Section 4'''
==== Typical questions for seminar classes (labs) within this section ====
 
   
  +
'''Section 5'''
# List the steps of a QIP.
 
# Discuss the risks of a measurement program and how non invasive software measurement can help alleviating them.
 
# Are there cases in which Theory X of management could be more effective than Theory Y? Discuss your findings.
 
# For which aspects of software production autonomation could be useful?
 
# Which tools could be used to promote autonomation?
 
# Prototype by paper and pencil an Andon board that you would consider useful in a software production environment.
 
   
  +
'''Section 6'''
==== Test questions for final assessment in this section ====
 
   
  +
'''Section 7'''
# What type of wisdom (in the sense of “know-why”) would you manage in an Experience Factory to support Lean Thinking? Distinguish between organizational learning and project learning.
 
# Assume you are a manager convinced that Theory X is true. Which non-invasive measurement probes would you want to develop to maximize productivity? Now assume you are convinced that Theory Y is true. Which non-invasive measurement probes would you need now?
 
# We discussed that we foresee two ways to collect measurements non- invasively: in batch and in background mode. What are the advantages and disadvantages of each approach?
 
# There are many interrelated building blocks (or concepts) of Lean Software Development and each contributes differently to it. What types of data are handled by each of these building blocks (or concepts)? How do the contribution to the overall value stream, to the creation of knowledge, and to the overall improvement?
 
# Assume you set up a fantastic dashboard for your team. As you collect the data and visualize it, you notice that all the measurements show problematic values. You let the dashboard in place for some days and also show it to your collaborators, but nobody cares; everybody continues his job as if everything would be fine. What is going wrong?
 

Revision as of 13:01, 12 July 2022

Lean Software Development

  • Course name: Lean Software Development
  • Code discipline: XYZ
  • Subject area:

Short Description

This course covers the following concepts: Fundamental principles of producing software as a creative act of the human mind; Techniques to optimize such production, with specific focus on agile methods.

Prerequisites

Prerequisite subjects

Prerequisite topics

Course Topics

Course Sections and Topics
Section Topics within the section
Software as a creative activity
  1. Nature of software
  2. Software and art
  3. Core resources for the production of software
  4. Tame and wicked projects
  5. Organizing the activities based on the GQM approach
Measurement in software
  1. Meaning of measures
  2. The representational theory of measurement
  3. Measurement scales
  4. Fundamental measures for the production of software
  5. Procedural measures
  6. Object Oriented measures
Taylorism and Fordism
  1. The increase of productivity in the idea of Taylor
  2. The role of division of work
  3. Planning and formalization of tasks
  4. Economies of scale
  5. Problems in understanding tasks
  6. Taylorism/Fordism and software development
Lean and Agile
  1. Taiichi Ono and the Toyota Production System
  2. Creating a “Radiography” of the Production Process
  3. Workers involvement
  4. “Pull” and Not “Push”
  5. Kanban
  6. Quality management
  7. Process control
  8. Job enrichment
  9. Control and coordination mechanisms
  10. Case study: Extreme Programming
Issues in Lean and Agile
  1. The “Hype of Agile”
  2. The dark side of agile
  3. Skepticism about agile methods
  4. Knowledge and software engineering
  5. Using burn-down charts
  6. The Zen of agile
Structuring a Lean Approach to software development
  1. Existing proposals to create a “Lean Software Development”
  2. Sharing a common vision
  3. Depriving gurus of their power
  4. GQM+
  5. Applying the GQM+ step-by-step
  6. Business alignment
  7. GQM+ for business alignment
Optimizing the development process
  1. Why the PDSA does not work in software
  2. The experience factory
  3. The QIP cycle
  4. Non invasive measurement
  5. The big-brother effect
  6. The role of autonomation
  7. Employing Andon boards

Intended Learning Outcomes (ILOs)

What is the main purpose of this course?

This course exposes the student to the core concepts behind Lean Development in Software Engineering, beyond myths and legends, emphasizing how it relates to the general principles of Lean Development. It discusses the different possible software processes, how they can be tailored, enacted, and measured. In addition, a significant part of the course is centered around the application of lean to software development to knowledge intensive areas not necessarily connected to software.

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 ...

  • creative nature of software production as an act of creativity of the human mind,
  • the substantial differences between tame and wicked problems,
  • the core concepts of measurement in software engineering,
  • the fundamentals of Taylorist/Fordist approaches to (software) production,
  • the basis of lean and agile software development,
  • the “dark” side of agility,
  • the importance of knowledge and knowledge sharing in producing software,
  • how to create an ad-hoc process for a development organization.

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 ...

  • when a problem is “easy to solve” provided enough effort is put to such solution and when it is not,
  • what is a measure in general,
  • why it is important and how we can define and perform measurements in software engineering, especially in lean and agile development environments,
  • how to organize the development process to collect metrics non invasively,
  • the difference between pulling and pushing in (software) development,
  • the fundamental principle of agility,
  • the risk intrinsic in the dark side of agile,
  • how to organize an agile development process based on the definition of overall Goals, associated Question, and milestones based on Metrics,
  • an environment based on experience, like the Experience Factory.

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 ...

  • Compute the fundamental software metrics to track the evolution of a project,
  • Organize the aims of a (software) development organization in terms of Goals, Questions, and Metrics,
  • Create a tailored (lean and agile) development process for an organization producing software,
  • Define a path to insert and manage such (lean and agile) development process into an organization producing software,
  • Structure the experience gathering during inside an organization to based on it the future strategic decision of such organization,
  • Relate the various proposals for Agile Methods to the overall principles of Lean Management,
  • Define a suitable (lean) process for a new organization, a process to introduce and institutionalize it, and an approach to measure the outcome of such introduction and institutionalization.

Grading

Course grading range

Grade Range Description of performance
A. Excellent 96-100 -
B. Good 66-95 -
C. Satisfactory 56-65 -
D. Poor 0-55 -

Course activities and grading breakdown

Activity Type Percentage of the overall course grade
Class and lab participation (including class quizzes) 15
Interactions with speakers 5
Oral Exam 80
Class and lab participation (including class quizzes) 10
Interactions with speakers 10
Project 30
Video presentation 30
Oral Exam 20
Class and lab participation (including class quizzes) 10
Interactions with speakers 10
Project 40
Paper 20
Video presentation 10
Oral Exam 10
Class and lab participation (including class quizzes) 10
Interactions with speakers 10
Project 40
Paper 20
SRC submission 20

Recommendations for students on how to succeed in the course

Resources, literature and reference materials

Open access resources

  • Textbook: Andrea Janes and Giancarlo Succi. Lean Software Development in Action. Springer, Heidelberg, Germany, 2014. ISBN 978-3-662-44178-7. doi: 10.1007/978-3-642-00503-9.
  • Reference: James P. Womack and Daniel T. Jones. Lean Thinking: banish waste and create wealth in your corporation. Lean Enterprise Institute. Simon & Schuster, 1996. ISBN 9780684810355.
  • Reference: Taiichi Ohno. Toyota production system: beyond large-scale production. CRC Press, 1988
  • Reference: James P. Womack. Lean Thinking. Simon & Schuster, Limited, 1997. ISBN 9780671004712.
  • Reference: James P. Womack, Daniel T. Jones, and Daniel Roos. The Machine That Changed the World: The Story of Lean Production. Harper Perennial modern classics. HarperCollins, 1991. ISBN 9780060974176.
  • Reference: Mary Poppendieck and Tom Poppendieck. Implementing Lean Software Development: From Concept to Cash. A Kent Beck signature book. Addison-Wesley, 2007. ISBN 9780321437389.
  • Reference: C.M. Christensen. The Innovator’s Dilemma: When New Technologies Cause Great Firms to Fail. Management of innovation and change series. Harvard Business School Press, 1997. ISBN 9780875845852.

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 Section 5 Section 6 Section 7
Homework and group projects 1 1 1 1 1 1 1
Reports 1 1 1 1 1 1 1
Oral polls 1 1 1 1 1 1 1
Discussions 1 1 1 1 1 1 1

Formative Assessment and Course Activities

Ongoing performance assessment

Section 1

Activity Type Content Is Graded?
Question Provide examples of creativity in the production of software. 1
Question Describe the differences between tame and wicked projects. 1
Question Discuss the key resources needed for the production of software. 1
Question What are key issues in creative production of software for distributed teams? 1
Question Provide examples of wicked problems from your everyday life 0
Question Evidence wickedness in different aspects of software production 0
Question Create a GQM for your aims of the semester 0
Question Discuss the role of GQM in tame and wicked projects 0

Section 2

Activity Type Content Is Graded?
Question Provide examples of the representational theory of measurement 1
Question List the measurement scales 1
Question Present for each measurement scale the operations that can be performed on it 1
Question Discuss the representational condition 1
Question What are key size metrics? 1
Question What are key complexity metrics? 1
Question Provide examples of subjective and objective metrics 0
Question List 3 direct and 3 indirect measures, evidencing also the problems connected to the construction of indirect measures 0
Question Compute LOC and other size metrics for code snippets 0
Question Compute MCC and other complexity metrics for code snippets 0
Question Compute the metrics of the CK suite for portions of Object Oriented systems 0

Section 3

Activity Type Content Is Graded?
Question Detail the fundamental assumptions by Taylor 1
Question What are the fundamental activities of managers according to Taylor? 1
Question In which sense Taylor has influenced what we now consider “good management practices?” 1
Question How does creativity relates to the “good management practices” of Taylor? 1
Question What are the problems in applying Fordism/Taylorism to software development? 1
Question Provide examples of companies where the approach by Taylor has been successful 0
Question Discuss how the approach of Taylor can be useful in attracting and/or retaining employees 0
Question Analyse the fundamental activities of managers according to Taylor and determine their limits 0
Question Determine the fundamental activities of managers according to Taylor can have an implication in the software crisis 0
Question Outline how flexibility and variable requirements can be handled in the context of Taylorism and Fordism 0

Section 4

Activity Type Content Is Graded?
Question Present the key problems in batch production 1
Question Outline the key principles of the approach of Ono at Toyota 1
Question What are the fundamental steps in eliminating waste according to Ono? 1
Question Details the role of the customers and of the workers in the approach of Ono 1
Question Explain the difference between “Pulling” and “Pushing” 1
Question What are key steps in improving quality according to Ono? 1
Question What are the key control and coordination mechanisms available? 1
Question What are the fundamental two actions needed to perform a Lean transformation according to Ono? 0
Question What are the associated three major needs? 0
Question What are the 5 steps to enact Lean Thinking according to Womak and Jones? 0
Question Discuss the 8 constantly ongoing activities in a lean company like Toyota 0
Question How can activities been classified in a decision matrix in an environment like Toyota? 0
Question Provide concrete examples of “Push” and of “Pull” in software production. 0
Question Details the control and coordination mechanisms present in agile and in traditional development environments. 0

Section 5

Activity Type Content Is Graded?
Question What is the Gartner’s Innovation Hype Cycle? Could you provide examples of application of it to a different field of knowledge? 1
Question Describe the so-called “Dark Agile Manifesto” 1
Question What are the sources of the skepticism present with respect to Agile? 1
Question What makes agile awkward in the eyes of “traditional” managers? 1
Question Given a production system, how do you determine what is the value of every step, how much improvement can be considered enough, and when is the point reached where value is not increased anymore but destroyed? 1
Question How is it possible to obtain knowledge about the production process? How can I create visibility of the ongoing activities or problems? 1
Question Identify in other areas of software engineering phenomenon similar to the “Dark Side of Agile.” 0
Question Identify in other knowledge-intensive fields phenomena similar to the “Dark Side of Agile” and discuss how they can be tackled. 0
Question Given a production process, determine strategies to store knowledge to create experience? 0
Question How can you design the production process so that the team uses the gained experience? 0
Question How can you systematically improve your process, also building on the experience to anticipate problems (create wisdom)? 0

Section 6

Activity Type Content Is Graded?
Question Reflect on the seven principles for characterizing Lean Software Development by Mary and Tom Poppendieck. 1
Question What is the semantic gap and which threats it poses to effective software development? 1
Question Map the structure of Extreme Programming to the layered structure of Shalloway et al. 1
Question How does the scientific method deprives gurus from their power? 1
Question What are the steps to implement the GQM+? 1
Question For what reason measurement goals and business goals should be interconnected? 1
Question How do the practices of Lean Management defined by Hibbs and colleagues relate to the seven principles by Mary and Tom Poppendieck 0
Question Propose how you could develop software and hardware tools to promote common visions in companies. 0
Question Elaborate a proposal to create some kind of Balanced Scorecards to evaluate your current study. 0
Question Discuss the opinion of Ono about following plans and the extent to which such opinion contradicts (a) the practices, and (b) the principles of the tayloristic/fordistic approach 0
Question Propose a SWAT analysis to introduce a Lean approach to your most recent software development endavour 0

Section 7

Activity Type Content Is Graded?
Question Details the major components of an experience factory. 1
Question What are Reflection, Retrospective, and Post-Mortem Analysis? Why are they useful in Lean Software Development? 1
Question What are the key components of a non invasive software measurement systems? 1
Question What is the big brother effect and how it is possible to alleviate it. 1
Question Discuss how autonomation is present in Extreme Programming. 1
Question Where is the term “Dashboard” coming from and what is its use in Lean Software Development? 1
Question List the steps of a QIP. 0
Question Discuss the risks of a measurement program and how non invasive software measurement can help alleviating them. 0
Question Are there cases in which Theory X of management could be more effective than Theory Y? Discuss your findings. 0
Question For which aspects of software production autonomation could be useful? 0
Question Which tools could be used to promote autonomation? 0
Question Prototype by paper and pencil an Andon board that you would consider useful in a software production environment. 0

Final assessment

Section 1

  1. Present the salient aspects of wicked problems
  2. List the key aspects of software that make it a wicked problem
  3. Provide a link between wickedness and creativity in software production
  4. Discuss what promotes and what inhibit creativity in general and in software production
  5. Outline meaning and limitation of the concept of “engineering” the production of software

Section 2

  1. Structure the aims of a company using the GQM and detailing the metrics to compute, also explaining the deductions and the predictions that can be made with such metrics.
  2. Given an index computed as a combination of metrics, determine if it is a metrics according to the representational theory of measurement.
  3. Analyse a portion of a system and determine suitable metrics to extract and the information that would be provided by such metrics.
  4. Given a website performing a service (like flight reservations), compute the Function Points for such website.
  5. Discuss how to structure a taxonomy of quality for a specific company, explaining the role of reliability in it, and detailing how to compute the reliability again in the context of such company; please make the assumptions that you need to perform such computation.

Section 3

  1. What aspects of making software feel like an art, which like a craft to you and how could you bend Taylorism and Fordism to handle it?
  2. How does Fordism and Taylorism can explain that companies producing software containing bugs can still stay in the market, and, in certain case, also be successful?
  3. Based on your experience and previous courses, which development models can refer to Fordism and Taylorism and which cannot be reduced to it?
  4. How does the specialization of work in software development can be linked to Fordism and Taylorism?
  5. Provide an example for each of the fundamental activities of managers according to Taylor that shows how such activity is very useful in software development and one that shows that is is inadequate.

Section 4

  1. Structure a model like PDSA for a company producing websites for online marketing.
  2. How can the right part and the right information be always available without waste according to the Toyota approach?
  3. Compare a street crossing based on traffic lights with a roundabout and determine the approach that is safest and the one with the a highest throughput according to Waterfall and to Lean.
  4. Discuss the involvements of workers in tayloristic/fordistic and in Lean development processes and their implications for the retention and the improvement of the quality of the workforce.
  5. Outline the extent of which economies of scale exist in Lean development processes.
  6. Imagine you had to introduce Extreme Programming in a software development team that follows a waterfall process. Which problems do you foresee? How will the clients react (that until now are used to work with a team that used the waterfall process)? How would you address them?

Section 5

  1. Imagine you are the boss of a small software development company. Which actions would you do or which practices would you introduce to prevent that your programmers fall into the trap of following a software guru?
  2. Elaborate possible extreme (and damaging) positions that can be taken by gurus of agile.
  3. Explain the differences in introducing a methodology by a guru and by a smart and effective coach.
  4. Detail why Extreme Programming produces an informative workspace.
  5. Discuss effective ways of packaging and “distributing” knowledge in software teams, starting with the guru approach of organizing knowledge into simple, clear practices which are easy to explain and to follow.

Section 6

  1. Discuss the role of customer on-site under the perspective of lean and outline it relevance in the earlier and then in the later proposals of agile software development.
  2. Suppose that you have to develop Balanced Scorecards for a software development team. Which perspectives would you use? Which goals would you use for each perspective?
  3. What is a socio-technical system and how can it be used to describe an (agile) software production environement?
  4. Imagine you want to evaluate how readable the source code of some program is. Define a GQM+ model to describe what and why you would measure.
  5. The development in company M occurs according to the following schema: when a new project is started, a developer takes an old project that is the most similar to the new requirements and makes a copy and starts implementing the required modifications. To improve this process and to help the company to adopt a component-based approach, we want to understand which pieces of code are the best candidates for future components and which variability points they have. Define a suitable GQM+ for such purpose.

Section 7

  1. What type of wisdom (in the sense of “know-why”) would you manage in an Experience Factory to support Lean Thinking? Distinguish between organizational learning and project learning.
  2. Assume you are a manager convinced that Theory X is true. Which non-invasive measurement probes would you want to develop to maximize productivity? Now assume you are convinced that Theory Y is true. Which non-invasive measurement probes would you need now?
  3. We discussed that we foresee two ways to collect measurements non- invasively: in batch and in background mode. What are the advantages and disadvantages of each approach?
  4. There are many interrelated building blocks (or concepts) of Lean Software Development and each contributes differently to it. What types of data are handled by each of these building blocks (or concepts)? How do the contribution to the overall value stream, to the creation of knowledge, and to the overall improvement?
  5. Assume you set up a fantastic dashboard for your team. As you collect the data and visualize it, you notice that all the measurements show problematic values. You let the dashboard in place for some days and also show it to your collaborators, but nobody cares; everybody continues his job as if everything would be fine. What is going wrong?

The retake exam

Section 1

Section 2

Section 3

Section 4

Section 5

Section 6

Section 7