Thierry de Pauw Profile picture
Aug 29 7 tweets 2 min read
During the trunk-based development support group session at #SoCraTes2022 naturally, the code review topic came by.

Some takes ...
First of all ...

Code reviews often don't catch problems they catch nitpicks.
@SamirTalwar
One problem with code reviews:

We put all the collaboration in the code review but it happens too late.
@SamirTalwar
With PRs we created a world where the amount of time we spend reviewing code has become disproportionate to the time spent creating value.
@sebrose
@sebrose suggests that the code review should start with the tests.

Do the tests describe the change? If not, stop the code review. Go put the missing tests.

Also, check if the tests are aligned with the acceptance criteria.
Options to avoid PRs:

- half an hour at the start of the day where the whole team reviews the commits of the last day

- have a half an hour optional call every day to discuss code with the team

@SamirTalwar
More options to avoid PRs:

- pair programming which enables continuous code review

- ensemble programming which then also enables single-piece flow

- non-blocking code reviews on mainline

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Thierry de Pauw

Thierry de Pauw Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @tdpauw

Dec 6, 2021
X: Where do you get your amazing people at Netflix?
A Cockcroft: I get them from you.

It is not about hiring brilliant people.
It is about Netflix building an organisation, a management structure and leadership that enabled people to do their best and create outcomes effectively
The system is important!

If you hire good people into a bad system, you break the people.

> A bad system will beat a good person every time
>-- Deming

@jezhumble #agiletd
People don't create outcomes. Teams create outcomes.
What enables teams is good management and good leadership.
@jezhumble #agiletd
Read 14 tweets
May 2, 2021
Another implication of Conway’s Law is that if we have managers deciding on teams, and deciding which services will be built, by which teams, we implicitly have managers deciding on the system architecture.
@ruthmalan on Conway’s Law

web.archive.org/web/2018102200…
Conway’s Law also kicks in if we take an initial guess at the system decomposition allocate subsystems to teams, and sally forth–the team boundaries will tend to become boundaries within the system.
Anything else will be a feat of architectural heroics; hard to accomplish, when architectural heroics have to compete with schedule heroics driven by the steady beat of integration clocks.
Read 5 tweets
May 2, 2021
Conway's Law:
We can view a system as a linear graph.
Each node is a subsystem which communicates with other subsystems along the branches.
Each subsystem may contain a structure similarly portrayed.
"Interface" refers to the inter-subsystem communication path or branch.
The linear-graph notation is useful because it provides an abstraction that has the same form for the two entities we are considering:
the design organization
and the system it designs.
Replace "system" with "committee."
Replace "subsystem" with "subcommittee."
Replace "interface" with "coordinator."
Just as with systems, we find that design groups can be viewed at several levels of complication.
Read 4 tweets
May 2, 2021
... organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations.
-- How Do Committees Invent?, Melvin Conway
(aka Conway's Law)
... we have found a criterion for the structuring of design organizations: a design effort should be organized according to the need for communication.
This criterion creates problems because the need to communicate at any time depends on the system concept in effect at that time. Because the design which occurs first is almost never the best possible, the prevailing system concept may need to change.
Read 5 tweets
May 2, 2021
The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems.
Why do large systems disintegrate?
-- How Do Committees Invent?, Melvin Conway
First, It is a natural temptation of the initial designer to delegate tasks when the apparent complexity of the system approaches his limits of comprehension. ... Either he struggles to reduce the system to comprehensibility and wins, or else he loses control of it.
Second, application of the conventional wisdom of management to a large design organization causes its communication structure to disintegrate.
Read 10 tweets
May 2, 2021
... we have demonstrated that there is a very close relationship between the structure of a system and the structure of the organization which designed it.
— How Do Committees Invent?, Melvin Conway
This kind of a structure-preserving relationship between two sets of things is called a homomorphism.
— How Do Committees Invent?, Melvin Conway
... it is reasonable to assume that for any system requirement there is a family of system designs which will meet that requirement, we must also inquire whether the choice of design organization influences the process of selection of a system design from that family.
Read 7 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(