Agility can solve the bureaucratic problem of the development model and respond to changes in users' business needs from the perspective of action;
The architecture can respond to changes in business requirements from the design perspective, and even solve the collection and validation of requirements in the Demand Survey phase.
Changes in requirements can generally take place in three fields: interfaces, processes and rules, organizational structure, and permissions.
Interface problems generally occur when the interface elements change, such as an order. There are several items that are associated with some sub-tables. Now we need to add several more items, modify several of them, and add a new association, etc.
Process problems are generally displayed after an interface is submitted, and may need to jump to a specific interface. Now you want to jump to another interface with some new rules. Or, the user jumps to another interface, or the user jumps to another interface based on a certain input on the interface, which is greater than a certain condition, jump to this interface. If it is less than a certain condition, jump to another interface.
Many rule problems are included in the process, but some are independent rules. If this input box is required, the input box must be greater than the maximum number. Rule changes will change.
Organizational structure changes frequently. New departments, new members, and member transfers are added. permissions are set through groups and roles.
What is the source of change? Business changes and personnel changes are necessary for business activities. An information system cannot blame business changes, but must obey business changes. Otherwise, the information system will be abandoned.
An information system must only adapt to business changes.
So there are at least two types of individual persons to adapt to the changes, and the methods to accomplish them are also different.
The first type is developer, and the second type is business personnel.
The first type of developer modification is throughSource codeBased on, modifyCodeModify the business. After each business change, it is necessary for the business personnel to pass the changes to the developers, after the developers have racked their brains to think about the changes, and the changes must be tested before they can be handed over to the business personnel. A complex modification may take a long period.
The second type of business personnel can be modified through the Business modification tool. After the business changes, the business personnel can be modified by the development or maintenance personnel, or by themselves. After modification, only business testing is required, and source code-level compilation and testing are not required. Therefore, the corresponding speed is faster.
The second type is the agility brought about by the architecture we mentioned. business agility is implemented by business tools by business personnel, but the intermediate development process is discarded, so it will be very flexible and fast.
How to implement such an agile architecture?
Of course, you can use a lot of commercial architectures, but you can simply design them and implement them in your own system.
I. First, some system design principles can make the system more efficient.
Perform their respective duties. Each role is to make the business clear, from business objects to business methods, business rules, you can map business objectsProgramObjects to complete the design process. Only when the business is clear can the changes be made freely.
With only one business source, maintenance, modification, and testing are easier and more stable.
If there are businesses, relationships between businesses, information and processes in the business, permissions, and so on, which classes are fixed and those classes are changing.
Separate logic. The principle of performing their respective duties may have many means, and the logical hierarchy is one of them.
The logical hierarchy is different from the physical hierarchy. The physical hierarchy is used for deployment, performance, and other non-logical requirements. The logical hierarchy is used for logic clarity.
If we want to use this software in all stores, the store manager of each store can enter the latest promotion information in this program, part of the promotion information may be uploaded to the advertising Center for publishing through the Internet.
Here, inputting the latest sales promotion information to the database is a business requirement, and all stores can use this software to transmit the stored information to the advertising Center for publishing, which is a deployment requirement; when a store manager can be input, it is a rule requirement.
When we build a design, we will extract the promotion information, users, stores, and these elements to form the class to be implemented, without worrying about which information is transmitted to the advertising center.
For the fields in the promotion information, we can place them in a separate dictionary table to modify the dictionary for expansion when the business changes.
On the input interface, you can design and present the interface through a template or interface design file. When the interface changes, you can modify the interface file for the purpose.
In this way, when the business changes, we can find the relevant changeable parts based on the different types of changes, and then re-run the changes.
The compilation system is avoided, resulting in direct efficiency. However, the system may perform explanations, which may reduce the efficiency.
Adapt to changes and reduce development efficiency.
To adapt to changes, the system must also reduce the efficiency.
2. architecture can also reduce the development workload of Distributed Systems
Distributed systems need to write a lot of repeated code at each level. After a unified business, you can save writing or passing business code multiple times between different levels.
The physical logic layer is actually used for deployment and expansion. They do not belong to the business logic, so developers do not need to develop or even code.
Therefore, through design, you can achieve flexible deployment, reduce the amount of code, and achieve business unification.
Similar to the development method of standalone or C/S architecture, the distributed deployment method is the most ideal.
3. Good architecture design allows you to easily assess the workload and development time
Because the system analysis is thorough and the implicit requirements of the system are clearer, it is easier to master the system's key points, difficulties, and development workload. It is also easier to communicate with customers in the early stage of the system and determine system requirements, avoid unexpected changes.