Software Architecture
© Sabine Haag 2021. All rights reserved
What is a good architecture?
I am frequently asked: “What is a good architecture?”
Sometimes I simply respond: “It makes fun”. And I mean this seriously: A system must be fun to work with, and this affects users, developers, product owners and managers.
- Users like it for the performance, time to deliver new features, time to fix bugs
- Developers like it, because it provides the frame for adding new features
- Developers like it, because there is a solid base of integration tests, so refactoring is possible
What are the duties of an architect?
- Analyze requirements
- Design a plan, provide guidelines
- Select tools and libraries, but pay attentation to dependencies
- Consider building prototypes
- Implement a build system
- Implement a test strategy
- Check that the system is implemented according to the architecture
- Check for documentation
- Deal with technical debts
- Do not forget about long-term system maintenenace
- Consider operators: Provide a monitoring interface
- Think about a versioning scheme, branching model
- Check non-functional requirements
- Multi-tenancy
- Internationalization
- Performance requirements
- …
Last but not least: The most important duty:
- Listen to your team - most often, it’s more about moderation. And in the end, it’s the team which has to use and support the architecture
- No matter how experiencd you are, there is always more experience in the team.