Work with Steering Agile Architecture in projects

Kurs: Steering Agile Architecture («STEARA»)

In diesem Kurs lernen Sie eine agile Architektur aufzubauen und zu steuern. Dies mit besonderem Schwerpunkt auf eine Architektur die zu jeder Zeit mit allen Systemen codiert ist.
Dauer2 Tage
Preis2'500.–

Inhalt

«Emerge your architecture» ist das agile Mantra.

Entwickler erhalten leistungsstarke Papiere, die Platz für echte Code-Struktur machen. Aber wie stellen Sie die Kohärenz des Ergebnisses sicher? Ja, Tests, Codeüberprüfungen oder Muster sind nützliche Werkzeuge. Die Herausforderung, mit Softwaresystemen zu arbeiten, ergibt sich jedoch aus ihrer Größe und ihrer sich ständig verändernden Natur. Es ist von entscheidender Bedeutung, jederzeit den Überblick über das, was im System vor sich geht, zu behalten.

Die Architektur eines Systems ist wichtig und verdient besondere Aufmerksamkeit. Ansonsten ist es auf lange Sicht sehr wahrscheinlich, dass etwas Schief geht und dadurch hohe Kosten entstehen. In diesem Kurs analysieren wir was Architektur eigentlich ist und zeigen Ihnen auf wie Sie methodisch folgende Herausforderungen angehen können:

  • Klare Formulierung von architektonischen Problemen
  • Bauen von automatisierten Kontrollen
  • Übereinstimmung von neuen Erkenntnissen
  • Bestimmung von Korrekturmassnahmen

This approach requires the team to build custom tools and use them to guide decisions actively. This requires new skills and an appropriate technical infrastructure. However, this is a technical detail. The critical benefit comes from making architectural decisions explicit, and from the daily actions of cleaning the state of the system

Approaching architecture

  1. Brief introduction in software architecture:
    • The value of architecture
    • The cost of architecture
    • Paper architecture vs. real architecture
    • Who should care about architecture?
    • Architecture and architects
    • Architecture and requirements
    • Architecture and testing
    • Architecture and pair programming
    • Architecture and code review
    • Architecture and code reading
  2. Architecture and agility:
    • Architecture as an emergent property
    • Emergent properties and complex (as different from complicated) games

Growing architecture

  1. Architecture and technical debt:
    • Architecture and quality
    • The benefits and limitations of the technical debt metaphor
    • Beyond technical debt: software habitability as a positive metaphor
  2. Architecture as a collaboration:
    • Architecture as a commons
    • Architecture as a work in progress
    • Architecture as a negotiation
    • Small fixes and long term goals
  3. The daily assessment game:
    • The roles: stakeholder and facilitator
    • Integrating daily assessment in the development process
    • Dealing with the queue of technical tasks
    • Examples of daily group decisions and actions

Exposing architecture

  1. Detecting architecture drifts:
    • The limited impact of out-of-the-box detections
    • The need for contextual detection
    • Testing architecture
    • Hypothesizing and the humane assessment method of crafting custom tools during development
    • Examples of custom detections and experiments
  2. Software analysis 101:
    • Overview of what software analysis is and how it helps software architecture
    • How developers already unknowingly know software analysis
    • Code as data
    • Beyond basic code structure: annotations, configurations, tests etc.
    • How to think of analyses: static vs. dynamic, history vs. one version, code vs. bytecode, metrics vs. queries vs. visualizations
    • Combining analyses
    • Custom analyses
    • Software analysis vs. software assessment
    • Examples of analyses

Key Learnings

  • Learn a concrete approach to deal with software architecture in agile projects
  • Learn how to test architecture
  • Learn how to integrate architecture needs with business needs
  • Learn how to organize architecture work

Methodik & Didaktik

The course is held through a combination of theoretical aspects, and group discussions based on real-life case studies.

Zielpublikum

Steering agile architecture is a challenge regardless of the type of system or chosen architecture and it should concern everyone involved in building the system. That is why this course is targeted to both engineers and managers. We cover the multiple facets of the process, and we accompany the conceptual descriptions with real life examples from multiple case studies.

Anforderungen

People that took part in at least one project involving more than 4 people