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