Showing posts with label Evolution patterns. Show all posts
Showing posts with label Evolution patterns. Show all posts

Saturday, August 18, 2018

Specificity of homo sapiens. Part 2 - Knowledge Work & Software Development


Know thyself - Temple of Apollo, Delphi; Socrate; Aeschylus
Nosce te ipsum! – Cicero
Man, know thyself, and you are going to know the gods - Luxor, External Temple

You may be asking what was the purpose of the previous post "Specificity of homo sapiens. Part 1 - Evolution evidence" in an agile (software development) blog. 
Software development is knowledge work, where the most important factor is the people. Do we, people, use our full potential in this kind of work? We have some industry experience and personal experience but we still struggle with basic things. Where can we find some "hard" evidence about what is important to use full human potential? Evolution. We have the evidence of evolution steps of Homo Sapiens and his predecessors in  thousands of years or more.

I propose a little game - to compare some knowledge work process approaches and what really helped humans to make significant steps forward in their evolution.

NO IMPROVEMENT TEAMS


Process story - I am somehow sad when I saw this kind of phenomenon: a development team with "no improvement", in fact too few improvements in a long period of time (years). There is an individual improvement, there is some adaptation to a specific context, but is no real improvement for the team/organization work approach. When they discover better ways of working, these improvements are not distributed and adopted enough. Yes, they could adopt new and better external tools, but that is like exploiting a natural oasis, not like making an existent hard context livable.   

Evolution - Homo Erectus was "strong and skillful" but <<Not only were they lazy, but they were also very conservative," Shipton said. Their tools stayed the same in both size and composition as the environment around them changed>>  (See Biblio 1)  The problem of H.E. was not really the laziness, but a limited cognitive capability while comparing to us, Sapiens.  

Comments - So, there is a huge waste to have a team that activates in knowledge work area and has too few improvements for long periods of time. That is a waste of talents in Toyota Production System but here is applied not only to professional talents but to most basic human capabilities.
     

SPECIALISTS (ONLY)


Process Story - Domain experience: in knowledge work you need people with cross-functional skills that work collaboratively. There is a pragmatic profile that seems feasible and gets good results: the Generalizing Specialist (explicitly explained by Scott W. Ambler and Disciplined Agile, see Biblio 7). There are still cases where organizations are trying to use specialist-only teams for software development (and silos) and, their results are more than questionable.

Evolution - the "very Sapiens niche" was the one of "generalist specialist", that means to it was able to <<colonized a diversity of challenging environments, including deserts, tropical rainforests, high altitude settings, and the palaeoarctic, but also specialized in its adaptation to some of these extremes.>> (see Biblio 2)

Comments - when the context is complex: diverse, fluid and extremely adverse and you need to use knowledge to win, you cannot be only "generalist" or only "specialist". You can rely on specialists, but you cannot have only this skills profile or live with the hope that could work well in isolated teams (see below). 

NO COLLABORATIVE WORK   


Process story - There is a correlation between the collaboration level and the result of a team. Teams with rather sporadic collaboration will not use their full potential and their results could be always much better. Just observing the level of direct interactions between team members during a working day you can tell if something is wrong or not.
.
Evolution -  what was different in the case of Homo Sapiens comparing with other human species? Why was able to "conquer the world" and live in all kind of environments even from his early prehistory?  Here are the main factors (see Biblio 2)
  • "extensive cooperation between non-kin individuals"
  • "accumulating, drawing from, and passing down a large pool of cumulative cultural knowledge, in material or idea form, may have been crucial in the creation and maintenance of the generalist-specialist niche by our species in the Pleistocene"  

Comments - what was the fundamental strength of Sapiens from the very beginning ? "extensive collaboration" and management of the knowledge: accumulate, sharing of "a large pool of knowledge". Ignoring collaborative work it is like ignoring that people are Sapiens.
  

ISOLATED TEAMS


Team, team, team .. this is what you heard from most Agile coaches and gurus. Yes, a team of collaborative individuals will perform much better than the same individuals working alone. What about isolated teams? We can have an organization with many teams, but with no interaction between them and not shared knowledge. 
.
Evolution - around 11000 years ago, we, Home Sapiens, have started an accelerated development after 200000 years of very slow evolution. We have done that without a genetic improvement and without any E.T. intervention. At that time people start to live in larger communities where they can better share and accumulate their knowledge (see Biblio 3). It was also easier to value the "specialists", the special talents, that could build communities of practice per "profession". 

Comments - process guidance & methods have highly disregarded the inter-team collaboration and knowledge/experience sharing. It is rather strange and sad: extensive collaboration, communities of practices and inter-team experience sharing was the main factor that starts human civilization (see Biblio 3) after 200000 lost years in isolated small groups and .... we still use the isolated groups approach. 
Isolated teams: that is old prehistory!
There is only one significant exception in process methods for this aspect: Disciplined Agile, where you can find guidance about more levels of collaboration (Delivery, DevOps, IT, Enterprise), guidance about communities of practices, reuse engineering and other aspects (See Biblio 4, Biblio 5, Biblio 6).  


Bibliography and References

[Biblio 1] 
A. Laziness May Have Driven Homo Erectus to Extinction, By Yasemin Saplakoglu, Staff Writer,  August 10, 2018  
B. Acheulean technology and landscape use at Dawadmi, central Arabia, by Ceri Shipton, James Blinkhorn, Paul S. Breeze, Patrick Cuthbertson, Nick Drake, Huw S. Groucutt, Richard P. Jennings, Ash Parton, Eleanor M. L. Scerri, Abdullah Alsharekh, Michael D. Petraglia. PLOS,  Published: July 27, 2018 
[Biblio 2] 
 A. Homo sapiens developed a new ecological niche that separated it from other hominins, July 30, 2018
 B. Defining the ‘generalist specialist’ niche for Pleistocene Homo sapiens, Patrick Roberts & Brian A. Stewart, Nature Human Behaviour; volume 2, pages542–550 (30 July 2018)
[Biblio 3]  - Previous posts related to human evolution and behavior pattern
[Biblio 4]  - The Scope of Disciplined Agile (~ levels of collaboration)
[Biblio 5]  - Disciplined agile - Communities of practice
[Biblio 6]  - Disciplined agile - Reuse Engineering

[Biblio 7]  - Disciplined agile/Agile Modeling - Generalizing Specialist



Wednesday, August 15, 2018

Specificity of homo sapiens. Part 1 - Evolution evidence

We, Homo Sapiens. How are we different?

Why and how it is Homo Sapiens different from his ancestors and "cousins" Homo Erectus and Homo Neanderthalensis? What is specific to Sapiens?

If we can understand ourselves better, maybe we can evolve better and use our full potential. We have some very useful information about how these various types of humans were able to develop a culture and later a civilization:
  • Homo Erectus - appeared 2 million years ago, and went extinct some tens of thousands of years ago. He was "strong and skillful" (see Biblio 1), but does not improve too much in this period, that is pretty long also at a cosmic scale. 
  •  Neandertals and Denisovans  - also live a long period, between 450K years and 28 K years ago. They were more advanced than H.E., but their evolution has also some obvious limits. Their population does not exceed some hundreds of thousands of individuals and they live in small isolated groups.
  • Homo Sapiens - has a curious evolution. It was able to slowly make a world wide-expansions in all kind of environments (and ... make extinct other human species). In the same time, from 200K years to 15K years ago, H.S. does not make significant cultural changes. And then, "suddenly" .. boom! .. from around 11K years ago start an accelerated development and building a civilization. This big step forward was also the first one produced without being the result of a genetic change.           
 
"No improvement" Homo Erectus 

To avoid misunderstanding: yes, the culture of H.E. has evolved but was too slow. You can find interesting information about H.E. development in this article: "Laziness May Have Driven Homo Erectus to Extinction" (presenting a scientific study ). 

We will comment here some parts of this article (See [Biblio 1] for article and study).

 << A little way away from the Homo erectus camps was a rocky outcrop that had higher-quality rock but required a trek up a hill. "But rather than walk up the hill, they would just use whatever bits had rolled down and were lying at the bottom," Shipton said." [...] By contrast Neanderthals and early Homo sapiens climbed mountains for high-quality stones and transported them over long distances, according to the statement. >>

<< These early humans were strong and skillful, and they thrived in the region for some time. But once the riverbeds dried out, as sediment samples from the area reveal happened, these people's lack of initiative doomed them.
"Not only were they lazy, but they were also very conservative," Shipton said. Their tools stayed the same in both size and composition as the environment around them changed.
"There was no progression at all, and their tools are never very far from these now-dry river beds," >>

Homo Erectus was smart enough to build tools as no other species before but was too "lazy" to find "better ways" on doing that. Considering that Neandertals and Sapiens had superiors cognitive abilities, we can speculate that this "laziness" is, in fact, related to this aspect. 


Homo Sapiens "niche"

Another recent paper (see [Biblio 2]) written by scientists from the Max Planck Institute for the Science of Human History and the University of Michigan propose a hypothesis that it was a "generalist specialist, a very Sapiens niche" that give our species the ability <<to rapidly came to dominate the Earth’s diverse continents and environment.>> <<...our species not only colonized a diversity of challenging environments, including deserts, tropical rainforests, high altitude settings, and the palaeoarctic, but also specialized in its adaptation to some of these extremes.>> (see Biblio 2)

How did H.S. develop this unique "ecological ability"? According to the authors, the main factors were (see Biblio 2):
  • "extensive cooperation between non-kin individuals"
  • "accumulating, drawing from, and passing down a large pool of cumulative cultural knowledge, in material or idea form, may have been crucial in the creation and maintenance of the generalist-specialist niche by our species in the Pleistocene"  

From prehistory to history 

In a series of previous posts (see Biblio 3) I have presented the "revolution" that start the human civilization and cross the border from prehistory to history around 10000 B.C. My conclusions were similar. This non-genetic "boom" was produced by extensive cooperation and better distribution of knowledge that were both made possible by the first large communities of humans. 

In fact, from its appearance, Homo Sapiens was clearly superior from this point of view to previous and co-existent human species. Because of that was able to "conquer the Earth" and make others extinct. 

Still, for almost 200000 years, the human culture makes too few progress, because this "very sapiens niche" (see Biblio 2) cannot manifest well in small groups of individuals. Only with the first large communities around 10000 BC, the cognitive & collaborative potential of Homo Sapiens was really used.   

Bibliography and References

[Biblio 1] 
A. Laziness May Have Driven Homo Erectus to Extinction, By Yasemin Saplakoglu, Staff Writer,  August 10, 2018  
B. Acheulean technology and landscape use at Dawadmi, central Arabia, by Ceri Shipton, James Blinkhorn, Paul S. Breeze, Patrick Cuthbertson, Nick Drake, Huw S. Groucutt, Richard P. Jennings, Ash Parton, Eleanor M. L. Scerri, Abdullah Alsharekh, Michael D. Petraglia. PLOS,  Published: July 27, 2018
.
[Biblio 2] 
 A. Homo sapiens developed a new ecological niche that separated it from other hominins, July 30, 2018
 B. Defining the ‘generalist specialist’ niche for Pleistocene Homo sapiens, Patrick Roberts & Brian A. Stewart, Nature Human Behaviour; volume 2, pages542–550 (30 July 2018)
.
[Biblio 3]  - Previous posts related to human evolution and behavior pattern

Sunday, July 24, 2016

Principles for a community of professionals - II

Critical mass of potential skills

A team does not have the critical mass of potential specific skills for great steps forward or for facing too difficult problems. A single team is limited in the same way as single individual is limited. The solution is to have available a larger pool of resources: more (collaborative) teams, a community.  

Knowledge and experience sharing. Knowledge persistence

The limitations related to single team are also manifesting for sharing knowledge and experience.  Communities could be more effective in this case. Also the knowledge persistence could be more robust.
Isolated teams will have the same problems as isolated individuals: will not benefits of pre-existent or co-existent knowledge and much part of their effort will be a waste. Some examples:
  • Will re-invent already existent solutions (aka “re-inventing the wheel”)
  • Will be slowed by impediments that were already removed elsewhere 
  • Will not re-use creative work and good results from other teams

Knowledge persistence short history: first community, temples, stories, cities, stone inscriptions, papyrus, alphabetization, academies, libraries, Gutenberg, electronic data, Internet … 

Active collaboration: inside team, between and across teams

Active collaboration between individuals it is a mandatory practice for an effective knowledge work, but is not enough. In order to get more value from skills, knowledge and experience we need an active collaboration between teams and across teams

Talents valorization and rare ideas

Contribution of very talented individuals, one of the engine of our civilization could not be valorized at team level – we need communities.  They need peers to develop and validate their ideas, and only a community could sustainable offer such peers. Also, only communities could spread, persist and valorize better their contribution. There were a lot of talents in the prehistory and history that have wasted their potential because of lack of collaborators and peers.

Evolving stability

All the factors enumerated here – skills, knowledge, experience, collaboration, teams and teams of teams – need time in order to manifest and bring results. A community need a time of evolving stability. For example, the history discontinuities of the “dark ages” have slow down the evolution for centuries.

Promoting valuable ideas

We cannot get value from distribution of wrong or not productive ideas. In software development, using a historical retrospective, the Waterfall approach have not produce either benefits for single projects or for software engineering evolution … with notable exception of lessons learned.  On the other hand, agile and iterative development have improved the overall results of that domain.
Historical example: The “Classical Greek” era in the ancient history was followed by a similar flourish of sciences only on the Renaissance times; this discontinuity has affected the entire evolution of the civilization.  

Different kinds of communities

It is not just a simple math. To bring together a critical mass of skills you need more kinds of communities: cities, schools, universities, specialized companies, professionals’ communities.
Inside an organization, you could benefit from communities of practice, but the first community must be the organization itself.

Creating new values, practices and new communities

New values, practices and finally new communities will emerge from existing communities.  From an economy dominated by mechanical and construction engineering has later emerged electronics and computer science.

Historical example:  The main step in evolution of human civilization was the occurrence of the first human communities. All have started in this order: first community, first series of temples (yes, first architect and first engineer have existed before first farmer), other similar communities and later agriculture and cities.

A good example - Agile Manifesto 

  • "Talents realizations and rare ideas" - the "rare" ideas from initial agile methods and practices have been shared via ad-hoc community of Manifesto authors
  • Share knowledge, experience and knowledge persistence - no comments needed 
  • Promoting valuable ideas - the good influence over the software industry is obvious 
  • Creating new values, practices and new communities - agile practices, values and principles have emerged legacy existent form of software engineering community. In fact many of these were pre-existent, but was no evolved via communities 


A good example - Software Craftsmanship Manifesto


  • Has emerged from Agile Manifesto
  • Address manifested weakness of  agile movement and agile teams

A bad example - Discontinuity on promoting core agile engineering practices   


  • The problem was recognized by some of the main Agile contributors: Robert C. Martin, Martin Fowler, Kent Beck, Scott W. Ambler and others
  • The main symptom it is so called Flaccid Scrum  (See FlaccidScrum by Martin Fowler) 
    • Agile values was promoted in a diluted, partial manner 
    • There was a discontinuity on promoting core agile engineering practices 
    •  People skills and knowledge were "disconnected" with team-only dogma

Principles for a community of professionals - I



Not only individuals and interactions, but also a community of professionals
Manifesto for Software Craftsmanship.

“Team” has recently become a dogma. Accelerated improvement and the avoidance of wasting time, resources and talents can only be achieved within a community, where both teams and teams of teams are effective. The evidence for this comes from the evolution of human civilization. After lengthy  prehistory, where the main organizational form was the team, the transition to “history” was triggered by the emergence of the first human communities. The history of mankind is the direct result of how humans find ways to share experience and knowledge within various forms of communities.

A better way to accelerate improvement and avoid waste in any profession is to go beyond teams and make individuals and teams collaborate across various communities.        

Conditions and principles for creating and evolving a community of professionals:

Critical mass of potential skills

Knowledge and experience sharing

Active collaboration between individuals

Active collaboration between and across teams

Talents valorization: promote and connect “rare ideas”

Knowledge persistence

Evolving stability

Promoting valuable ideas 

Different kinds of communities

Emergence: Creating new values, new practices and new communities
Corollary
The axe of progress is: individual, team, teams of teams, communities

See next - Principles for a community of professionals - II 

Sunday, April 5, 2015

Human evolution patterns: from beginning of history to software



Beginning of human history

 

Asia Minor, more than 11,500 years ago, just after the Ice Age and 7,000 years before Stonehenge or Cheops. No agriculture. No domestic animals. No metals. Just some groups of hunter-gatherers. But … they have settlements, deposit of foods and a community. This community start building some massive stone temples. Their culture influence other groups and communities in the same area. 1000 years later, in that region are founded the first evidences of the agriculture and the first cities. And that was the beginning of the world history.

The first engineer and the first architect have existed before the first farmer.


The key of the evolution - community

 

Making an 11,000 years’ time travel, I want to quote from “Manifesto for Software Craftsmanship”, initiated by Robert C. Martin: “Not only individuals and interactions, but also a community of professionals”. 

The key word for evolution is community

The discovery of the Gobekli-Tepe temples in Asia Minor changes the model of the civilization evolution from: farming-settlement- religion-temples-cities to this one: settlement, religion, temples, farming then cities. (Of course that religion exist before settlements, but it is about more structured forms of religion).

Evolution sequence: settlement, religion, temples, farming then cities. 

The base of civilization was the settlement, the moment when was crystallized a stable group that share common values: from common food deposits to a common culture and form a community. This community was able to build temples and to distribute their culture
Hunter-gatherers, settlement, religion, temples, farming then cities. We can translate that to: teams, practices, sharing values, community and culture, distributing the culture, transformation: new practices, new values and new communities.

The software new civilization: between dilution and evolution

 

The recent evolution of software development has follow a similar (cyclic) pattern: the late 80s and the 90s start with some new practices, new small communities with new values. That has been finalized with some cultural “settlements”: CMMI, UML, Unified Process, Agile Methods and Agile Manifesto. This culture will be distributed and new communities will be formed.

Unfortunately, the initial new software civilization was somehow diluted during its expansion: the only widely adopted method was Scrum (very lightweight method) and many values, especially engineering values were almost forgotten. (See Robert C. Martin comments here  https://www.scrumalliance.org/community/articles/2010/december/the-land-that-scrum-forgot ). 

There is a new wave that want to recover the forgotten values and go further: the Software Craftsmanship movement and the Disciplined Agile Delivery (DAD) method are the best examples.  Both are dealing with some biggest elephants in the Agile room.

DAD want to make explicit the Agile cultural values and practices and recognizing that context matter, this method offers guidance for adapting the process to different situations.

Foundations of Software Craftsmanship are older and I will remember here only some contributors of the Agile related foundations: Kent Beck, Martin Fowler, Scott W. Ambler and Robert C. Martin. The last one – Uncle Bob – try to push further this wave with Clean Code and Clean Architecture initiatives. Unfortunately this part is difficult enough to not see yet other valuable contributors or even valuable distributors. A symptom of this problem is that most of the “distributors” talk only about Martin SOLID principles, without an understanding of the bigger picture or of other aspects. It is just a copy-paste distribution.

There are two divergent evolution aspects now: a distribution that dilute values and new endeavors for enhancing and improving the original values.

Human Evolution patterns

 

The evolution patterns seems to be in this sequence:
  • Prehistory
    • Teams & practices
    •  Small and slow transformations, many of them being lost because of limited distribution and sharing
  • History
    • Settlement: sharing common values, community, culture
    • Distribution: sharing culture, new communities 
    • Transformation: communities generate new practices and new values 

Evolution factors: communities enable values sharing and creating of new ones 

Involution factors and sequence:
    • Success with diluted values
    • Dissolution of communities
    • Cultural regression 

 Involution factors: cutting the value distribution chains and the success of “non-valuable values”

The involution factors seems to be the same in history of human civilization and in the one of software development.  The human history has several regressions caused by “success of diluted values”: such as the Greek Dark Ages (1100 BC–800 BC), the Dark Ages of Middle Ages. The history does not necessary represent a continuous linear progress and same risks could affects the software development domain.  For example, the rising of new web technologies cause a dilution on design quality ("Architecture lost years" - Robert C. Martin), even that is only because of their continuous changes. Poor design is finally resource consuming and expensive and that cause regression or slowing of the overall evolution.

These patterns that seems to be the ones that have "shaped" the human evolution. I think that should be considered for any aspect of evolution and for different levels, from large communities and "populations" to organizations level.

Any invention of human genius is born dead if is not shared and embraced by a community that will make that invention as a valuable step in the evolution. On the other hand, a community that does not profits from its "inventors" it is not a community. We need to enable, recognize and share the real values in order to have a community.