One of the things I learned from @KentBeck years ago was to see cohesion in terms of divergent change rates. If you have a class and there's a set of methods that you tend to change together while leaving others alone, that set of methods could be a separate responsibility.

Once I saw this, I went so far as to write a script to mine classes in Git and find clusters of methods that all seemed to change at the same time.
Often the results were not surprising. You could've see new responsibilities emerging just by looking at the names of methods and variables. But, sometimes this time view of the code was the first indication that a class was trying to split.
Code isn’t special that way. This is all systems stuff. If you have a group of 10 people and 3 of them often change their minds together, you can start to see them as a separate group. They may even start to see themselves as a separate group. Why does this happen?
At its base, it’s because of the tension between N and N^2. As the number of things increases, the number of possible interconnections grows (bounded by N^2). It’s harder for 10 people to coordinate than 3, so we shouldn’t be surprised to see groups from cliques periodically..
..it’s a natural tendency in systems. Sort of “the grain of the wood.”
Code is the same way. It grows through human attention. We’re loosely bounded in the number of concerns we can keep track of at once. But, again, it’s not the number of concerns that is the significant limit, it’s the number of ways that they can interact.
So, we focus, and form little areas of code around concerns even when they aren’t even consciously apparent to us yet. If we ignore our felt-sense of these dynamics we end up with legacy code.
Legacy code.. So, let’s relate this back to divergent change. I think that the core problem of software development is that code and team change at different rates.
If team turnover is faster than code turnover, you have knowledge loss. You need to prop up your code with more tests and documentation, and hope for the best.
There’s only so much that can be done about this problem. People are going to move on. The code that they wrote will remain.
A hardcore development organization would rip out the code of each developer as they leave.. by the roots, and rewrite it so that the knowledge of it is fresh in the remaining team, but I’ve never seen that as a consistent practice.
Code is perceived to have too much value. In reality, the active knowledge of a cohesive team is the value.
Mob programming is one manifestation of this understanding. It's one way to go.
But, to me, the important thing is to understand these costs of coherence and coordination. When we focus on them, we have many possibilities.

More from Business

This is a GREAT argument to pull up when talking to people about minimum wage. Some others nested below


A large number of new jobs being created are minimum to low wage, so looking for a new job generally won’t increase pay.

Raising minimum wage helps things not directly related.

Helps Infant mortality? Yup.

Lowers Suicide? Yup.

Reduce smoking rates? You bet.

It also boosts the local economy! Minimum to low wage earners spend more % of their money, so an increase means more is spent, often in community!

Low paying jobs are often in sectors which would gain from this. More people spending money in your shop makes your business more money! Now you have more profits and increased labor costs are covered.
There are so many #HotTakes on the future of news and tech and digital this week. Now nearly half a year distant (and what a year - 2020, ugh!) from CEO and board @mcclatchy, I'd like to add a few thoughts: 1/


As @jbenton said in @NiemanReports : @mcclatchy transformation shows it STILL is possible NOW 'to be operationally profitable while still doing good journalism.' Not easy; Covid made it harder. But POSSIBLE and DONE by the great team in 2020 @mcclatchy. 2/

As @jbenton wrote: the #DIGITALTRANSFORMATION @mcclatchy 'shows a company that has managed the digital transition better than most; at last public count, it was making nearly half its ad revenue in digital and digital subscriptions were up 45% year-over-year.' Such focus 3/

On the future is digital is the SOLE way the still-powerful brands of local news and information will be able to have a business in the inevitable 'printless' future (Not today, not tomorrow, but printless someday) 4/

And the crisis in local news is relentless, unabating and by most measures WORSENING. More titles going dark; huge losses to our communities, because solely a blend of new digital startups AND existing footprint offer the scale 5/

You May Also Like

#ज्योतिष_विज्ञान #मंत्र_विज्ञान

ज्योतिषाचार्य अक्सर ग्रहों के दुष्प्रभाव के समाधान के लिए मंत्र जप, अनुष्ठान इत्यादि बताते हैं।

व्यक्ति के जन्म के समय ग्रहों की स्थिति ही उसकी कुंडली बन जाती है जैसे कि फ़ोटो खींच लिया हो और एडिट करना सम्भव नही है। इसे ही "लग्न" कुंडली कहते हैं।


लग्न के समय ग्रहों की इस स्थिति से ही जीवन भर आपको किस ग्रह की ऊर्जा कैसे प्रभावित करेगी का निर्धारिण होता है। साथ साथ दशाएँ, गोचर इत्यादि चलते हैं पर लग्न कुंडली का रोल सबसे महत्वपूर्ण है।


पृथ्वी से अरबों खरबों दूर ये ग्रह अपनी ऊर्जा से पृथ्वी/व्यक्ति को प्रभावित करते हैं जैसे हमारे सबसे निकट ग्रह चंद्रमा जोकि जल का कारक है पृथ्वी और शरीर के जलतत्व पर पूर्ण प्रभाव रखता है।
पूर्णिमा में उछाल मारता समुद्र का जल इसकी ऊर्जा के प्रभाव को दिखाता है।


अमावस्या में ऊर्जा का स्तर कम होने पर वही समुद्र शांत होकर पीछे चला जाता है। जिसे ज्वार-भाटा कहते हैं। इसी तरह अन्य ग्रहों की ऊर्जा के प्रभाव होते हैं जिन्हें यहां समझाना संभव नहीं।
चंद्रमा की ये ऊर्जा शरीर को (अगर खराब है) water retention, बैचेनी, नींद न आना आदि लक्षण दिखाती है


मंत्र क्या हैं-
मंत्र इन ऊर्जाओं के सटीक प्रयोग करने के पासवर्ड हैं। जिनके जप से संबंधित ग्रह की ऊर्जा को जातक की ऊर्जा से कनेक्ट करके उन ग्रहों के दुष्प्रभाव को कम किया और शुभ प्रभाव को बढ़ाया जाता है।
I’m torn on how to approach the idea of luck. I’m the first to admit that I am one of the luckiest people on the planet. To be born into a prosperous American family in 1960 with smart parents is to start life on third base. The odds against my very existence are astronomical.


I’ve always felt that the luckiest people I know had a talent for recognizing circumstances, not of their own making, that were conducive to a favorable outcome and their ability to quickly take advantage of them.

In other words, dumb luck was just that, it required no awareness on the person’s part, whereas “smart” luck involved awareness followed by action before the circumstances changed.

So, was I “lucky” to be born when I was—nothing I had any control over—and that I came of age just as huge databases and computers were advancing to the point where I could use those tools to write “What Works on Wall Street?” Absolutely.

Was I lucky to start my stock market investments near the peak of interest rates which allowed me to spend the majority of my adult life in a falling rate environment? Yup.