Principio K.I.S.S. verifica se lo applichi davvero






Guardando i numeri, diresti che il tuo team pratica realmente il principio K.I.S.S. o diresti che segue la legge di Parkinson ?



  •  .NET Framework 2.0 il nucleo é composto in tutto da soli 12 Assembly per piú di 12.000 classi (una media di 800 per progetto) e 2.800.000 istruzioni IL (190.000 per progetto)
    Fonte: Analyzing the .NET Framework 2.0 with NDepend
  •  Google ha un singolo source code repository che é completamente accessibile a tutti i 10.000 sviluppatori. Sebbene tutti i sistemi vengono rilasciati indipendentemente l'uno dall'altro (con cicli di rilascio che variano da una settimana a un mese), tutto viene  compilato dalla HEAD senza l'uso di binari precompilati, il repository accetta diverse migliaia di modifiche al giorno con picchi di 20+ modifiche per minuto.
    Fonte:  Mark Striebeck engineering manager a Google, al suo speech al  XPDay London 2009 (guarda anche il report da questo post)

  • Flickr riceve 40.000 nuove foto per secondo e ha ne archivia piú di 3 miliardi di foto al giorno, vengono eseguiti piú di 10 nuovi rilasci al giorno.  Due fattori abilitanti per queste prestazioni tra i molti citati: un unico version control condiviso e no branching.
    Fonte:
    Dev and Ops Cooperation at Flickr


E ora chiediti:
- In quanti Project/Assembly  é scomposta la code-base?
- Da quanti code repository distinti (server o trunk) devi fare il get dei sorgenti per compilare la code-base?
- Quante Solution distinte devi compilare per compilare la code-base?
- Oltre al trunk su quanti altri branch sviluppa il team?


La legge di Parkinson applicata alla complessitá della code-base dice che la complessitá della code-base tende ad espandersi sino alla massima capacitá del team e della azienda di gestire la complessitá, invece di limitarsi alla complessitá minima richiesta dai problemi affrontati.





Coaching Self-Organizing Teams




Here is the link to the 3rd and last of this group of interesting presentations: http://www.infoq.com/presentations/coaching-self-org-teams



Here my notes on tools described or mentioned in the presentation:

  • self organizing systems what they are and how they work

  • core group theory what drive the behavior of a team
    read about here The Core Group

  • heat model how to stimulate a team to self-organize
    read the basic model and the levels

  • flow model by Mihály Csíkszentmihályi, just mentioned here
    read the definition here

  • ABIDE model by David Snowden, just mentioned here
    stands for: Attractors, Boundaries, Identities, Diversity and Environment

  • Social Network Analisys or SNA, formal power network, trust network, active/passive network stimulation
    read Of social networks and Agile teams

There is also this short session transcript on InfoQ: http://www.infoq.com/news/2008/08/coaching_teams
And here more resources from Joseph Pelrine : http://www.metaprog.com/blogs/2010/03/coaching-self-organising-teams-at-the-orlando-scrum-gathering/


Those concepts and their practical applications in agile teams are topics covered in Joseph Pelrine advanced courses.


Formula1 and Agile sw development



Michael Schumacher:
driving is always about adapting to new circumstance
Source:
Looking very much forward to the start of the season - Schumi

So it is the agile software development

Looking forward for a new exciting F1 season


What a qualifying session!  Vettel (Red Bull) leads on pole position, Ferrari very very near then McLaren and Mercedes.
How will be the weather Sunday? Will the temperature of the air and of the track surface change? How will be tyres degradation during the race? What will be the pit-stop strategy of the opponents? How the engines, the electronics and the software will behave during the race?
All the focus goes on the first Sprint of the season.
Bright people, effective teamwork, top technology, relevant data always available and the ability to adapt quickly to new circumstances will bring to the victory.


Finally it has been a goooood race for Ferrari ;-)


Tags :   |  |

Divide et impera ... is a flawed principle


Divide et impera ... is a flawed principle.

Merge and simplify !

Is the binomial formulas of software engineering :

        a * b + a * d => a * (b + d)        


Tacit knowledge





Tacit knowledge shape the way we perceive the world.

Is made of subjective insights, intuitions and hunches.
Have a technical dimension and a cognitive dimension that consists on beliefs, ideas, value, mental models and schemata.

What we learn, what we discover and what we invent blooms in our tacit knowledge.


How to make this tacit knowledge visible and expressible, how to communicate and share it with others ?


Read this pdf: The concept of `Ba': Building a foundation for knowledge creation.
And this article: Ba and Knowledge Creation in Scrum