Softwareprozesse WS 2021/22

This course teaches the content of various software development process models, but in particular the power of judgment for deciding which elements of a process may be appropriate or not appropriate and why.

We discriminate the "classical view" of software engineering (which originates from positivist thinking and the engineering ideals of industrial production) on the one hand and the "modern view" (which originates in humanist thinking and humbler expectations about what engineering should expect to achieve) on the other. We use this discimination as a litmus test for trackiing down cultural undercurrents in software processes that damage a process when and where they are inappropriate for the given task and team.

Slides and topic keywords

  1. Introduction:
    assumed knowledge; what we talk about; term "software development process"; learning goals; classical view vs. modern view; term "culture"
  2. V-Modell XT:
    Projektdurchführungsstrategie, Entscheidungspunkt; Vorgehensbaustein; Tailoring; roles, product types, (activities)
  3. SE Essentials:
    essential vs. accidental difficulties in SE; the Essence kernel (alphas, states, language to define practices, etc.); economical view
  4. Agile Manifesto:
    origin of agile; Agile Manifesto (core part, principles list, background, common misunderstanding, culture); underlying assumptions; classical view on agile (too much/too little planning; XP planning game); usage frequency of various agile methods
  5. Scrum, Kanban:
    Scrum Team (Developers, Scrum Master, Product Owner); Sprint (Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective); Artifacts (Product Backlog & Goal, Sprint Backlog & Goal, Increment & Definition of DONE); 6 Kanban principles (e.g. manage work not people), 6 Kanban practices (limit WiP, manage flow, visualize, explicit policies, feedback loops, improve via experiments); flow system with Kanban board and WiP limits
  6. ScrumBut and Agile Transition:
    Observed deviations from Scrum in Scrum teams (w.r.t. Roles, Daily Scrum, Sprint Planning, Sprint Review, curiously not Retrospectives); discussion when they may be good or bad; agile transition as a gradual process in 5 dimensions
  7. Self-organization:
    Definition; common self-organization roles (Mentor, Coordinator, Translator, Champion, Promoter, Terminator); actual roles are unique; agreement on roles is critical (role clarity); empowering teams can be highly beneficial ("Quality Experience", DevOps)
  8. eXtreme Programming (XP), part 1:
    Structure of agile methods (values, roles, technical practices, mgmt. practices); eXtreme Programming (XP1 vs. XP2 vs. Jeffries, values, roles); management practices; technical practices:; continuous integration (ten-minute build, feature toggles, continuous delivery, continuous deployment); test-first programming (Testing, TDD, ATDD)
  9. eXtreme Programming (XP), part 2:
    shared code, coding standards; refactoring; simple design, incremental design; practices support each other; values and practices; criticism of XP; usage survey; when not to use XP; introducing XP; further technical practices
  10. Pair Programming:
    Characterizations/claims (Williams, Beck, others); What happens in PP? (base activities, knowledge transfer episodes: push, pull, co-produce, pioneering); PP session dynamics (S vs. G knowledge, session types); Good PP: Togetherness; Knowledge transfer effects, motivation, driver/observer
  11. Open Source, part 1:
    Definition; license types (copyleft, virality, liberal); importance of OS SW; developer motivation; company motivation; What is 'value'?
  12. Open Source, part 2:
    Self-organization issues (basic infrastructure; typical process; leadership styles; patterns for successful process innovation)
  13. Open Source, part 3:
    Quality assurance methods; Is OSS agile? Is it modern view?; Open process within companies: Inner Source
  14. Cleanroom Software Engineering:
    principles; empirical results; typical practices; stepwise refinement (box structures, verification); statistical testing (usage modeling, hints for practice); Cleanroom and Agile
  15. Reprise:
    A joint rehash of key points of each unit of the course (from memory, based on the catchwords on this webpage only)
  16. Joint Reflection
    • Which two points do you consider your key personal insights from the course?
    • What are two points/areas where you still find your understanding insufficient so far?


Classical view vs. modern view

We will analyse each process model for where "it" takes the classical view or the modern view. (Which view is more appropriate depends on the situation.) Making this analysis a habit is the main learning goal of the present course. Here is the slide summarizing the views:


Exam questions

Here is a list of initial questions you should expect in the oral exam. They do not have a single, correct answer. Rather, I expect you to say something about them that is relevant and defensible, that you can elaborate on or put into context if required.

If it makes you feel safer, you may also give some background before you give your actual answer, but please keep in mind that one property of a good exam (grades 1 or 2) is that we manage to cover a lot of ground. This will only work if we do not dwell on any one topic too long.

Follow-up questions will depend on your answer. If you feel very incompetent at a particular question, you can pass it and ask for the next one.