Re-architecting

How to deal with software architecture in Agile

Software architecture is an evolutionary process. This means that the architecture grows and blooms while the software is being developed and that it’s impossible to describe the architecture to perfection at the start of a project.

Almost every project has aspects of the architecture that still need to be worked out once the project is running. For example, the services in a service-oriented architecture. What’s the format of the messages? How is error handling arranged? Security? Collaboration with other systems? Firewalls? Which frameworks are used? When these issues arise, it’s critical to select work items that address them as soon as possible. These are work items that put the architecture to the test. This lowers the risk. As a result, the software architecture changes.

If the architecture changes, this also leads to adjustments in code that are already realized. This is often wrongly dismissed as unavoidable and negligible and is labeled as refactoring. But it’s actually re-architecting. This isn’t without danger.

Get hands-on with 1200+ tech skills courses.