Origin
A: "agility should not be written into architecture design. Each iteration should be the same to achieve self-similarity (as Ken shweber said )."
B: "If you do not write architecture design, it is easy to rework and you will have to come back later ."
A: "restructuring is a big deal. This is an important practice of agile development ."
B: "refactoring? The reconstruction cost is very high. After several iterations, the reconstruction will fail ."
A: "It is easy to overdesign the architecture design, and it is easy to overwrite the code ;."
......
Do you want to write this architecture document? Write, why? Don't write. Why? Write, how to write? Don't write, why don't you write?
Why agile architecture design?
First, let's say nothing. Agility means no architecture design. Why not write architecture design?
To reduce waste.
Agile architecture design is a waste of time for two reasons.
First, business needs are changeable.. Previously, the architecture was well written, the Intermediate requirements were changed, and the architecture was also changed, which was time-consuming and laborious. Many requirements may be useless, and may be planned in the early stage, but will not be available in the later stages, if these useless requirements are taken into account in the architecture, they will be too large.
Second, it is difficult to determine whether the architecture design is correct and complete.. I am also very familiar with this. I thought it was a good design. When it came to coding, I found that this was not the case. At this time, I had to go from scratch. How about review? Unfortunately, apart from the final software, most of the requirements, architecture, and test cases ...... Difficult to review, review for half a day, there are still a lot of problems.
Agile assumptions are common in the whole. They can be said to be a compromise after trying to "make a good architecture.
It is not the starting point for agile architecture that always changes and does not know whether it is feasible to waste time on things.
How to write this architecture document?
But what if I do not write the architecture design at all and may rework? Of course yesDesign the architecture based on the "minimum waste" Principle.
Below are some written and non-written content:
Write: relatively stable and costly reconstruction. We can see right and wrong.
Do not write: The concept is not accurate, it is easy to expand, can not tell right or wrong
To a large extent, it is affected by business stability, advanced technology, and personnel capabilities.
Therefore, all the architecture documents are written differently in each enterprise. You should not ask "How should I write architecture documents in Agile development ?", Instead, you should ask"How should I write architecture documents if my business, technology, and personnel are so involved??", If you can ask this question, you can find the answer yourself.
An essential method of smart agility is to understand what agile is for, rather than how agile should be done..
If there is an advanced architecture method in the future, the architecture may become something that is easy to do, easy to review, and easy to change. At that time, it is another way of saying. But the essential goal of agile architecture design remains the same: reduce waste.