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:
    ...
  16. Joint Reflection


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 Schedule

Oral exams of 20min length will take place between March 1st and 18th 2022.

Topic revision: r19 - 13 Jan 2022, GesineMilde
 
  • Printable version of this topic (p) Printable version of this topic (p)