perm_identity Milena Santos
I just returned from São Paulo's 2019 Agile Trends conference, where experts on agile software development and Scrum project management shared their insights. Avenue Code was there to sponsor the event, speak at the event, and trade knowledge! Today, I'll recap one of my favorite workshops--"Agile Architecture Practices" by Eduardo Guerra--for everyone who couldn't be there with us.
In his amazing workshop, Eduardo Guerra explained how important it is to find the balance between having sustainable architecture and starting a project quickly. To achieve this balance, a set of patterns have been identified in real-world agile projects that can serve as guidelines. A few of the most important patterns include:
Climbing on the Shoulders of Giants
This means we can rely on existing projects as a reference before the first iteration, taking notes of what has worked and what has not worked well, if the new project is solved via a well-known architecture instead of a totally different one. Then...
Find Where it Hurts
Does the project have to be scalable? Do we have to care about transactions? Which is the most painful aspect--logging, security, persistency, or networking? This practice is here basically to help us focus on relevant issues.
Plan for Responsible Moments
This is when an architecture decision has to be made in the middle of a project. To avoid making a decision before it's too late, it's better to plan for such moments and be prepared for handling the most critical issues when they come up.
Architecture in the Backlog
Deciding how to add related items in the product backlog varies from project to project and mainly depends on how the client deals with it, but one practice that's usually tried and true is to mix architecture items in the middle of functional ones, or even to have a completely separate backlog just for them.
Tracer bullets, test architecture, architectural trigger, architectural spike, continuous inspection and technical debt management are other practices/patterns Eduardo described that can give support in developing a sustainable and evolving software architecture. You can view the presentation slides for his talk here. Be sure to try out some of these patterns in your own projects, and let us know how they go. Thanks for the incredible workshop, Eduardo!