" How to accomplish software architecture design efficiently through Agile team under agile development ? "
The core of thinking is : the "team" is the latitude, but no longer the "product" for the latitude of the software architecture design. only in this way can the team effectively control and process the complexity of the product.
In other words, traditionally , The product team has only one, single product software architecture of the mold. This software architecture, with the latitude of " product " , will enable the design of the software architecture , It is too complex and large to exceed the scope that the team can understand, control and handle. And the software architecture can not establish consistency, unity ; Some classes ( Class or the definition of a data table structure is contradictory or related rules are conflicting with each other.
In the past, the team often had to spend a lot of manpower and time cost, in order to solve the above software architecture design introduced by the inconsistency, not uniform problem.
in the Agile development , to effectively improve the efficiency and quality of product development, you can learn from Domain-driven Design 's thinking; " Team " rather than the latitude of " Product " software architecture design for latitude.
Each team, under the lead of Product Owner, focuses only on the "bounded Context" of its own team, ensuring consistency and uniformity of the class and data table structure within the bounded context of its own team. As to how the other team's bounded context is designed, it is not concerned.
and the whole product, then in Super Product Owner under the leadership of build up teams bounded Context Room the definition of the relationship, relationship type, interface (protocol).
Finally, the entire product team will actually be integrated through continuous integration to make the " Team " for the latitude of the software architecture, set becomes " Product " -level software architecture. and to ensure that the " product " of the software architecture, after continuous integration is consistent and unified.
"To do something efficiently, you need to fully understand what human beings can do to deal with the limits of complexity."
Agile teams efficiently complete the software architecture design