Course Title

- IT support for project management processes
- Course description
- Chapter 1 - Introduction to project management
  - Objective
  - 1.1 Project management
  - 1.2 Limitations
  - 1.3 Task
  - 1.4 Project planning
  - 1.5 V-model
  - 1.6 Summary
  - 1.7 Questionnaire
  - 1.8 Bibliography
- Chapter 2 - Introduction to PRINCE2
  - Objective
  - 2.1 Introduction
  - 2.2 Principles
  - 2.3 Themes
  - 2.4 Processes
  - 2.5 Tool demo example
  - 2.6 Summary
  - 2.7 Questionnaire
  - 2.8 Bibliography
- Chapter 3 - Introduction to PMBOK
  - Objective
  - 3.1 Description
  - 3.2 PMBOK's methodology
  - 3.3 PMBOK Core Areas
  - 3.4 PMBOK Facilitating Areas
  - 3.5 PMBOK Integration Management
  - 3.6 Summary
  - 3.7 Questionnaire
  - 3.8 Bibliography
- Chapter 4 - Introduction to Agile
  - Objective
  - 4.1 Description
  - 4.2 Sprints
  - 4.3 Roles
  - 4.4 Communication
  - 4.5 Requirements management
  - 4.6 Measurement
  - 4.7 Summary – pros and cons of Agile
  - 4.8 Questionnaire
  - 4.9 Bibliography
- Chapter 5 - Advanced Agile
  - Objective
  - 5.1 Description
  - 5.2 Kanban Development – Just-In-Time logistics
  - 5.3 Extreme Programming – Simplicity with a scent of quality assurance
  - 5.4 Crystal methodology – According to project size & criticality
  - 5.5 Dynamic Systems Development Method – Business value
  - 5.6 Feature-Driven Development – Business model
  - 5.7 Summary
  - 5.8 Questionnaire
  - 5.9 Bibliography
- Chapter 6 - Introduction to Lean
  - Objective
  - 6.1 Introduction
  - 6.2 History
  - 6.3 Lean basic concepts
  - 6.4 Further Principles
  - 6.5 Lean tools
  - 6.6 Basic overview of concepts and tools
  - 6.7 Lean improvement cycle
  - 6.8 Tool demo
  - 6.9 Summary
  - 6.10 Questionnaire
  - 6.11 Bibliography
- Chapter 7 - Advanced Lean
  - Objective
  - 7.1 Introduction
  - 7.2 Lean Principles
  - 7.3 Lean Software Development
  - 7.4 Summary
  - 7.5 Questionnaire
  - 7.6 Bibliography
- Chapter 8 - Discussion
  - Objective
  - 8.1 Introduction
  - 8.2 Modelling a project
  - 8.3 Other methodologies
  - 8.4 Related fields
  - 8.5 Groupwork, homework
  - 8.6 Summary
  - 8.7 Questionnaire
  - 8.8 Bibliography
- Chapter 9 - Comparison
  - Objective
  - 9.1 Introduction
  - 9.2 Principles – processes – tools
  - 9.3 Modelling the project
  - 9.4 Classifications of project management methodologies
  - 9.5 Proposed method
  - 9.6 Groupwork, homework
  - 9.7 Summary
  - 9.8 Questionnaire
  - 9.9 Bibliography
- Chapter 10 - Project management tools basics
  - Objective
  - 10.1 Description
  - 10.2 Desktop tools
  - 10.3 Cloud based tools
  - 10.4 Summary
  - 10.5 Questionnaire
  - 10.6 Bibliography
- Chapter 11 - Project management tools advanced
  - Objective
  - 11.1 Description
  - 11.2 Demonstration
  - 11.3 A walkthrough on Redmine
  - 11.4 Redmine deficiencies
  - 11.5 Summary
  - 11.6 Questionnaire
  - 11.7 Bibliography
- Chapter 12 - Summary, conclusion
  - Objective
  - 12.1 Project management methodologies and software solutions
    - 12.1.1 PRINCE2
    - 12.1.2 PMBOK
    - 12.1.3 AGILE
    - 12.1.4 Lean
    - 12.1.5 Discussion and comparison of the methods
    - 12.1.6 Various project management tools
    - 12.1.7 Redmine
  - 12.2 Groupwork, homework
  - 12.3 Questionnaire
  - 12.4 Bibliography

« Prev | Next »

# 7.3 Lean Software Development

Lean software development techniques seems to be applicable and adaptable to research and experiment projects, because their similar nature. As Poppendieck et al wrote, software is not a production process but a development process. Let’s imagine

a chef is developing a new recipe (development)

versus

somebody is preparing the dish by following a recipe published in a book (production):

Development: designs the recipe ↔ Production: produces the dish

- Quality is fitness for use ↔ Quality is conformance to requirements
- Variable results are good ↔ Variable results are bad
- Iteration generates value ↔ Iteration is unnecessary

Software development is much more “receipt” development than production. This is the main reason (root cause) for the popularity and wide acceptance of agile and Lean methods in this field. The same seems to be true for any kind of research experiment (physics, biology, chemistry, etc.).

Eliminate Waste

- The fundamental Lean principle
- 1940s, Toyota, Japan: how to make cars in small quantities but keep them as cheap as cars of mass production?

- Answer: eliminate waste

- New definition: Something that not conveys any value is considered as waste

- Transportation, motion, waiting for something, any extra step, defects

- Deliver the product immediately after the customer placed her order
- For example in the context of software development:

- Software functionality that has never or very rarely been used
- Unnecessary delays
- Ambiguous requirements (and any kind of ambiguous documents)
- Unnecessary repetition of the same activity
- Slow communication

- First step: How to recognize waste? It is absolutely not easy to do and several times trivial things are not recognized as waste (can’t see the forest for the trees situation)

- Value Stream Mapping technique

- Next steps, iteratively: eliminate waste (from the big to the small) and look for waste again
- The seven wastes

Manufacturing | Software development
Inventory | Partially Done Work
Extra processing | Extra Processes
Overproduction | Extra Features
Transportation | Task Switching
Waiting | Waiting
Motion | Motion
Defects | Defects

Amplify Learning

- Software development is a continuous learning process, it is a discovery (just think about the chef and the receipt example)

- Iteration is a key factor in learning
- We also need good feedback from good sources to be able to learn

- Challenge: large and complex projects, several developers

- Parallel developments have to be synchronized

Decide as late as possible

- Software development usually conveys significant uncertainty (like a research activity)
- Delay decisions to avoid bad and speculative decisions too early: in the beginning there is almost zero information about the software development project
- Collect enough information and facts and make the decisions based on them (instead of deciding based on uncertain predictions & assumptions)
- Develop several options and choose the best one as late as possible based on the collected information

Deliver as fast as possible

- Developers get the most information and feedback if they deliver very fast and frequently
- Therefore this principle feeds the “decide as late as possible” and “amplify learning” principles
- Moreover, current needs are satisfied, not obsoleted ones

Empower the team

- Technical people (developers, testers) must be involved into technical decisions

- Because only they are knowing all the relevant (and irrelevant) details should be considered in a decision

- People should not be considered as resources, they have to be motivated (clear targets, tasks, etc.)

Build integrity in

- Perceived integrity: external integrity of the system, user interface, delivery, deployment, intuitiveness, problem solving, customer perception
- Conceptual integrity: internal integrity of system, maintainability, flexibility, etc
- Refactoring, testing

See the whole

- Experts in a specific area tend to maximize their own part (web service, database, UI, etc.)

- Locally optimized solutions (faster, cheaper, etc.) could cause big problems and bugs at system level

- Think about the whole system and the integration of different parts before local optimization

« Prev | Next »