1. Software Architecture Isn’t About Big Design Upfront ☝️
Big designs upfront are usually done in waterfall models of software development.
- The waterfall model is predicted to be bad by its own inventor :)
The upfront design should be a basic, good one done with an iterative and incremental process.
When Do We Stop The Architecture Planning? ⛔️
When we have a solid understanding of the following aspects:
- The significant architectural drivers
- Cost, Response Time, etc...
- Requirements.
- Constraints.
- The context and scope of the product.
- The significant design choices.
- Technology used.
- Is our application a Monolith or is a set of Microservices?
- The risks associated with the product.
2. Every Software Team/Product Needs To Consider Architecture And Needs To Have A Technical Leader ✌️
This is crucial to have consistent patterns in the product.
3. What's The Software Architect Role About 👨🔧
- Coding.
- Keeping an eye on what’s going on with the code base.
- Coaching.
- Collaboration with others to incrementally draw the architecture of the application.
It’s a continuous role that spans the life of the project.
4. An Architect Doesn’t Need To Use UML 📐
There are several other tools that enable us to create architecture diagrams using GUIs or even using code.
- C4-PlantUML (code based)
- Diagrams.net (GUI based)
- Structurizr (both code and GUI based)
5. A Good Software Architecture Enables Agility ❤️
Credits 🙌
This post has been prepared using the lecture of Simon Brown Five Things Every Developer Should Know about Software Architecture
Top comments (3)
Very nice post, it would be more cool and visually pleasing with images/gifs.
Thanks a lot for the feedback :) I will try to include more visuals into my posts in the future.
Explain the architecture without a GUI or any graphics and you know it's a good one.