当前位置:网站首页>Conway's law can not be flexibly applied as an architect?

Conway's law can not be flexibly applied as an architect?

2022-06-25 13:00:00 JackieZhengChina

Soft skills are always hard than hard skills. Soft skills are harder than hard skills .

The boss heard that it's popular recently “ Microservices ”, Ask the architect if we want to have a system ? The boss heard that it's popular recently “ Midrange system ”, Ask the architect if we want to get started ? Actually , These questions don't need to be asked by the boss , Architects who focus on technology trends hear about new technologies or solutions , Will secretly think about whether to apply to the system . However , With or without , You can't just feel it . here , If you can use Conway's law flexibly , Then the judgment will be more perfect .

Conway's law

Conway's law is Marvin · conway 1967 Proposed :“ The architecture of the design system is subject to the communication structure of the organization that produces these designs .” In layman's terms : The product must be its ( personnel ) The epitome of organizational communication structure .

Cross departmental communication is very difficult , The interface of each module of the system also reflects the information flow and cooperation between them .

image

Conway's law The first law in software architecture design , At first it was just published in magazines , After the 《 One month myth 》 This software Biblical reference , And named Conway's law (Conway’s law), So we can promote .

It's impossible to understand the essence of Conway's law through simple description , In the original text, Conway's law can be summarized into four laws :

  • The first law Organizational communication will be expressed through system design .
  • The second law One more thing in time can't be perfect , But there is always time to finish one thing .
  • The third law There are potential heterogeneity and homomorphism between linear systems and linear organizational structures .
  • The fourth law Large system organizations tend to decompose more than small systems .

The first law

Communication dictates design.
Organizational communication determines system design .

This Law focuses on the impact of organizational structure and communication on system design . Organizational communication and system design are closely linked , Especially complex systems , Only by solving the communication between good people can we have a better system design .

《 One month myth 》 It sums up the law that communication cost increases exponentially with the increase of personnel : Communication costs = n(n-1)/2. For example :

  • 5 People project team , The channel to communicate is 5*(5–1)/2 = 10
  • 15 People project team , The channel to communicate is 15*(15–1)/2 = 105
  • 50 People project team , The channel to communicate is 50*(50–1)/2 = 1,225
  • 150 People project team , The channel to communicate is 150*(150–1)/2 = 11,175

That's one of the reasons why Internet companies pursue small teams . The problem of communication will bring the problem of system design , And then affect the development efficiency of the whole system and the final product results .

The second law

There is never enough time to do something right, but there is always enough time to do it over.
One more thing in time can't be perfect , But there is always time to finish one thing .

People will never be enough , Things can never be done , But you can come one by one . This is not the software industry “ agile development ” The problem that the pattern solves . In the face of such a situation , Agile development can be iterative 、 Continuous delivery 、 Quick verification and feedback , And continuous improvement .

Even the development of the cattle will write bug, No matter how comprehensive the test coverage is, it can't measure all the problems . The solution is not to eliminate these problems , It's about tolerating problems , And then through proper design ( redundancy 、 monitor 、 High availability design ) Be able to solve problems quickly when they occur .

A small company of several developers , To pursue micro Services 、 To pursue the middle platform architecture , Is this the pursuit of perfection ? No , It's about dying .

Good architecture is not bought , It's not designed , It's based on the long-term evolution of the business .

The third law

There is a homomorphism from the linear graph of a system to the linear graph of its design organization.
There are potential heterogeneity and homomorphism between linear systems and linear organizational structures .

This law is the concrete application of the first law . Imagine if the organizational structure of a company is like this : Teams are distributed , Every team has products 、 Research and development 、 test 、 Operation and maintenance and other roles . At this time, the system is single block , The cost of project communication and coordination is huge , If I can't get it right, I will fight again .

image

If we split the single block system into microservices , Each team is responsible for its own part , The corresponding interface can be provided externally , Mutual interference . System efficiency will be improved . This is highly cohesive in software design 、 Low coupling is interlinked .

image

To be frank, we need to build a team of what kind of system we want , What kind of team will build what kind of system . The system that needs to be separated from the front end and the back end builds a team that separates the front end and the back end , conversely , Have a front and back team , You can design a system that separates the front end and the back end . Of course , If we can manage as a whole , Have the right to reorganize the team or design the system architecture , That would be great . Usually let both form 1:1 The mapping relation of , More efficient .

The fourth law

The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems.
Large system organizations tend to decompose more than small systems .

“ The general trend of the world , Long period of division , A long time must be divided. .” The more complex the system is , The more we need more people , More people , Communication costs are also increasing exponentially . Divide and rule is the solution most companies choose . At different levels , Different small teams , Let the team complete self governance , Then unified external communication .

Summary

Architecture requires more than technology , Politics is especially needed in big companies , So called structured politics .

Mr. Yang Bo once wrote in his article 《 Every architect should study Conway's law 》 I mentioned :“ Politics is the art of working with others to get things done , Architecture is a kind of social activity , In the world of Technology , Individualism is easily defeated , Even if your goal is good technology is optimal , Technology decision is political decision (technical decisions are political decisions), A technical product , A wave of people can do , Another wave of people can do , Who did it well , It's hard to say , Whoever does , They all handcuffed the business .”

Link to the original text :《 Conway's law , Not flexible as an architect yet ?



---------------------
author : New perspective of procedure
source :CSDN
original text :https://blog.csdn.net/wo541075754/article/details/102476828
Copyright notice : This is the author's original article , Please attach a link to the blog post !
Content analysis By:CSDN,CNBLOG One click reprint plugin for blog posts

原网站

版权声明
本文为[JackieZhengChina]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/176/202206251216529567.html