"The Myth of the Man-Month": Chapter 4 "Autocracy" and "Democracy" in System Design

The following summary is from Chapter 4 of The Myth of the Man-Moon: Aristocracy, Democracy, and System Design

The most important factor in system design: conceptual integrity

1. Design must be completed by one person or a small team with consensus

2. Separation of large-scale system architecture design and specific implementation

3. Someone must control the concept and ensure its integrity, which is called autocracy

The fundamental task is defined as "creating complex conceptual structures that constitute abstract software entities "

Attachment: For point 2, it is similar to the SOA idea, or microservices

SOA is a design method/idea that contains multiple services, and the cooperation between services will ultimately provide a series of functions. A service usually exists in an independent form within an operating system process. Services communicate through network calls rather than in-process calls.

For example, create a separate project and deploy it on a server, and write a method (or function) to perform the above query operation, and then allow others to access this method through some way (can be an http link) to get the returned data. The data type is general json or xml data, which means that this operation is encapsulated into a project , and then the access method is exposed to form a " service ". For example, here is the registered user service, and this service will provide methods for all related addition, deletion, modification and query operations of registered users.

The secondary question is "Express these abstract entities in a programming language"

On the premise of maintaining authoritarianism, the architect needs to use various methods to implement his authoritarianism.

Returning to individual developers/individual R&D, when developing a new module or new function, define the concept of extensibility that may be confused. to prevent future unpredictability. Also accept other suggestions and incorporate them into the "rules".

To put it simply: remain authoritarian during the design phase and remain democratic during the development phase.

How to define an architect?

Can represent users' ideas, in short, the role of product manager, support users to truly benefit.

Think: Alignment of Interests

Party A needs an architect more

 What the individual is going through

Product Personnel C is concerned about whether the function is online, and R&D Personnel A discovers that there is a problem with the system's robustness and needs to be repaired before the new function can be improved. However, C firmly disagrees with A’s idea and believes that the first priority is Party A’s satisfaction.

in this matter. As a business architecture designer, C did not achieve consistency of interests with R&D. Too many decisions and disputes can distract from implementation.

The solution is to obtain the opinions of designers of technical architecture. Decide between the two. The result of the decision is not necessarily satisfactory to both parties or better than either party. The important thing is to realize the decision and achieve separation.

Guess you like

Origin blog.csdn.net/dongnihao/article/details/132569433