Agile Know-How Magazine • Fall 2017
Therefore, it is essential to have a structure that includes all the layers from the beginning, but it needs to be constantly defined and modified throughout the development process that is conducted one small step at a time. Each of these steps is a chance to remain at the leading edge of technology( both in terms of the infrastructure and of user experience) without suffering great repercussions in the event that the choice agreed upon was not the right one.
The role of the Agile Designer( Architect)
Seeing how the design can be built vertically, we understand that the designer’ s role is different in an Agile mode. Instead of managing technical decisions, he needs to act as an expert or a mentor that accompanies the team in a development that will meet the requirements.
The designer does not only have the role of a coach; he also remains responsible for defining and maintaining the solution’ s structure.
His role can be split into five parts:
1. Understanding the requirements Since he is generally more experienced, the designer must master analysis of the requirements to be able to take part in the product development strategy, while making sure to remove all the elements that can impact the design’ s definition.
2. Formulating the design His expertise also allows him to have a global vision of the solution to ensure that the defined structure will not unnecessarily increase complexity. Working collaboratively with the Product Owner, he can then maintain a balance between the solution’ s objectives and constraints.
3. Communicating the design He also has to make sure that everyone understands the structure correctly, regardless of the level of experience and knowledge. Everyone can have a different point of view. Therefore the designer must make sure to present several facets of the system to adapt the information to the different teams’ audiences.
4. Supporting the developers It is important to have a well-defined structure, but it must also be achievable. So the designer must act as a mentor and be directly involved in the development so as to be quickly informed of the obstacles and assist members of the team in overcoming them.
The architect needs to act as an expert or a mentor that accompanies the team in a development that will meet the requirements
5. Verifying implementation As soon as the first version of the software is delivered, the designer monitors the technology of what has been programmed. He has to verify that the delivered code is coherent with the communicated design and that it respects the requirements supported by the added features.
These roles need to be changed as the project advances. In fact, it is the designer’ s focus that needs to change according to the maturity level of each part of the system design. The designer can therefore assume several roles and his workload can often be shared between different team members to avoid having only one source of information.
Everyone changes with time. When sharing the different tasks, preferences and skills evolve and certain people can then be more motivated by the possibility of taking care of certain parts of the system’ s evolution. For example, someone that has more ease communicating concepts to business people can take part in the strategy, while someone else with deep technological knowledge can get more involved in creating and communicating the design to the team.
Accepting change
In an Agile mode, the designer is the main person responsible for changes and for managing the complexity they bring, whereas other developers focus more on the next version.
Naturally, in a complex system we can’ t let anyone make changes at any time, much like it would be illogical to let any family member destroy any wall of the house. There are three main dangers when we have too much ease accepting change:
• Scrapping and wasting features because requirement changes are too frequent and unstable.
• Loss of global system stability, as if the whole building was collapsing.
48 agileknowhow. com