03/03/16: Steering agile architecture with Tudor Girba
Early bird: Register before February 5 and get a 10% discount!
We offer group discounts for groups of 3 or more people
Price for swiss ICT members: CHF 1’800
“Emerge your architecture” goes the agile mantra. That’s great. Developers get empowered and fluffy papers make room for real code structure. But, how do you ensure the cohesiveness of the result? Yes, testing, code reviews or patterns are useful tools. But, the challenge of working with software systems stems from their sheer size and their continuously shape changing nature. Keeping track of what goes on in the system at all times is critical. This is not a course about good or bad architecture. It’s a course about knowing the real architecture of your software system, and choosing to how to steer based on that reality.
The architecture of the system is important and it deserves special attention because it is too easy for it to go wrong in the long run, and it is too expensive when that happens. In this course, we take a systematic look at what architecture is, and we detail a method of approaching the challenge of steering it on a daily basis through:
- making architectural concerns explicit
- crafting automated checkers
- agreeing on findings
- distilling corrective actions
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.
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.
The course tackles three parts in a non-linear fashion guided by live interactions with the audience.
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
Architecture and agility:
- Architecture as an emergent property
- Emergent properties and complex (as different from complicated) games
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
Architecture as a collaboration:
- Architecture as a commons
- Architecture as a work in progress
- Architecture as a negotiation
- Small fixes and long term goals
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
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
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
SHORT BIO: TUDOR GIRBA
Tudor Gîrba obtained his PhD in 2005 from the University of Bern, and he now works as a consultant and coach. He leads the work on the Moose platform for software and data analysis, he founded the Glamorous Toolkit project for rethinking the IDE, and he is a board member of the Pharo live programming environment. He advocates that software assessment must be recognized as a critical software engineering activity, and he authored the humane assessment method to help teams to rethink the way they manage large software systems and data sets. Tudor also argues that storytelling should be prominent in software development (http://demodriven.com). In 2014, he won the prestigious Dahl-Nygaard Junior Prize for his work on modeling and visualization of evolution and interplay of large numbers of objects
DETAILS & REGISTRATION
Place: Holiday Inn, Wallisellenstrasse 48, 8050 Zürich
Date: 03/04 March 2016
Duration: 2 days. Both days 9:00 to 17:00
Price: 1900 CHF incl. VAT + course materials and meals
Discounts: We do not combine discounts. This means that the biggest discount that applies to you will count.
Registration: Please send name, company, phone number and billing address to Bianca Legorreta
We do not provide any refunds. What happens in case you cannot attend the course? 1) You are welcome to pass on the place to a colleague or 2) You are welcome to attend a later course in our course calendar.
Further, once a registration has been made and the confirmation email has been sent out, the price is set and can not be changed or adjusted.