Eduardo Guerra

Eduardo Guerra is researcher in the National Institute for Space Research (INPE) in Brasil, where he is the current coordinator of the graduate program in Applied Computing. He was a teacher in one of the most recognized engineering institutes in Brasil, the Institute of Aerospacial Technology (ITA), for 6 years, where he concluded his graduation, mastering and PhD. He is currently developing an on-line specialization course about software design and agile methods in partnership with ITA for the Coursera platform. He was for 7 years the chief-editor of a programming magazine focused on the Java platform called MundoJ and he also have 2 books about software design published in portuguese: “Design Patterns com Java: Projeto orientado a objetos guiado por padrões” and “Componentes Reutilizáveis em Java com Reflexão e Anotações”. His research areas are framework development, software design and architecture, software repository mining, and agile methodologies, which resulted in several papers published in recognized conferences and journals. He participate actively from the patterns community, being a member of the board from Hillside Group.

Looking beyond: What should I know before starting TDD?

Sometimes developers can find themselves lost in the middle of a TDD session for not having enough information to move forward. This talk presents some practices that should be done before a TDD session to ensure that it will flow as expected. The practices involves activities for the identification of the class role in the architecture, choosing the right testing tool and identifying interactions with other classes.

The presentation will have the following topics:

– TDD in a Nutshell
– Why not just jump into the first test?
– Functionality List (TDD Session Roadmap)
– Every Jack to his Trade (Understand Class Role in Architecture)
– Know your Neighborhood (Identify the Collaborations)
– Choose your Weapons (Use the Right Testing Tools)
– Conclusion: Design your Architecture for TDD!

A running example will be presented to exemplify each practice.

This presentation is based in the following paper:

Workshop: Agile Software Architecture Practices

Working with software architecture in agile projects is hard: you need to start as fast as you can, but also need to have a sustainable base architecture that you will be able to evolve through the project. This talk present a set of patterns identified on real projects, that focus on practices for creating and evolving a software architecture in the context of an agile project. These practices provide a set of tools to the team that can allow them to define an “enough” architecture in the beginning of the project and to manage the state and the evolution of it during the project iterations.