Category Archives: Blog

What is adaptive planning?

The map is not the territory.

Alfred Korzybski

We need to adapt our approach as we find unplanned obstacles.

Executing a knowledge work project is a complex, creative, and high-risk endeavor. Unlike many manufacturing projects, the work is often research-and-development-based process.

Changing environments

Una vez planteada la diferencia entre ambos tipos de proyectos, tambien vemos que es diferente la forma de planificarlos, ya que para los proyectos tradicionales tanto el entorno, como la forma de trabajo son bien conocidas y no estan sujetas a (casi) ningun tipo de cambio, en cambio en proyectos de tecnologia, ya sea por la tecnologia, el producto o las condiciones cambiantes del entorno, lo unico seguro es el cambio. Entonces vemos que la Uncertainly drives the need to replan:  our plan is to replan.

Esta forma de trabajo, se asume que estamos inmersos en un entorno cambiante, se denomina Adaptative planning, y esta basada en el convencimiento de que es imposible realizar en forma anticipada una planificacion detallada, y en cambio asume que la planificacion debe realizarse en forma iterativa adaptandose a cada uno de los sucesos que vayan apareciendo conforme avance el proyecto.

Progressive elaboration and Rolling Wave Planning

Even when both concepts sounds very similar, there are substantial base differences between both ideas.

Rolling Wave Planning is the name for the strategy of planning at multiple points in time as more information becomes available. It is the process of project planning in waves as the project moves on and more information and details become clearer.

Progressive planning is how we implement the rolling wave planning approach.

 

 

 

 

Advertisements

Shu-Ha-Ri of Skill Mastery

Shu: Obey the rule – shu means “to keep, protect or maintain.”

Ha: Consciously moving away from the rules.- ha means “to break free”

Ri: Unconsciously finding an individual path – ri means “to go beyond or transcend”

Page 211

What es Shu-Ha-Ri?

Shuhari is a Japanese concept which details the cycle of the progress of a student in a martial art under ideal circumstances. This idea was originally presented in Tea Mastery, extended to Noh Dance (almost four centuries ago), later spread out in martial arts like aikido (in the early 1900s) and Kempo and nowadays reached out scientific or professional areas… even software engineering specifically agile development.

What is the meaning of Shu-Ha-Ri?

In Japanese, there are three types of writing: katakana, which is an “alphabet” for writing foreign words taken to Japanese; hiragana, which is typically Japanese, the most common and commonly used for any Japanese word. Kanji are ideograms from Chinese, in simple terms is a symbol representing an idea or object.

Shu-Ha-Ri, it is a word made with kanji, and for that reason it can be broken down into its component parts.

Shu: In this beginning stage the student follows the teachings of one master precisely. He concentrates on how to do the task, without worrying too much about the underlying theory. If there are multiple variations on how to do the task, he concentrates on just the one way his master teaches him. No excuses, no exceptions.

Ha: At this point, the student begins to branch out. With the basic practices working he now starts to learn the underlying principles and theory behind the technique. He also starts learning from other masters and integrates that learning into his practice. You don’t sweat every little ceremony. 

Ri: The student stops learning from others but from his own practice. He creates his own approaches and adapts what he’s learned to his own particular circumstances. You don’t think about the rules anymore; instead, you just build awesome things.

What is the idea behind this concept?

The fundamental idea here is that when someone learn an art, first need to completely understand the reason why behind each concept and idea, follow each ceremony and step required and later when he/she dominate the art and the way to do the things are completely ingrained, just in that moment, the student could stop to imitate others and avoid the strict adherence to the path laid, starting to develop his/her personal way to do the things.

Early stages of learning focus on concrete steps to imitate, (as long as the student advances in the domain of discipline) the focus shifts to understanding principles to self-directed innovation.

How it is applied to software development?

This concept was introduced by Alistair Cockburn first via his blog (http://alistair.cockburn.us/Shu+Ha+Ri) and later in his book  after that, it spread out in agile development.

In general terms, the idea is to deeply understand the methodology first and later tailoring the process. A practical implementation of Shuhari in agile development happen when a team is new and want to implement an agile process. The best moment to tailor something is after several uses of the basic and complete methodology just out of the box, without any change, and later when the team has a real comprehension about the reason why behind each process and ceremony, just in that moment the team could create their own variations.

References:

The beauty of the measurement

The beauty of the performance measurements is that “You get what you measure”. The problem with performance measurements is that: “You get only what you measure, nothing else”. You tend to lose the things that you can’t measure: insight, collaboration, creativity, dedication to customer satisfaction.

Robert Austin

Page 167

Establishing a common ground for teams: Definition of Done

If the definition of “done” for an increment is part of the conventions, standards or guidelines of the development organization, all Scrum Teams must follow it as a minimum. If “done” for an increment is not a convention of the development organization, the Development Team of the Scrum Team must define a definition of “done” appropriate for the product. If there are multiple Scrum Teams working on the system or product release, the development teams on all of the Scrum Teams must mutually define the definition of “Done.”

Inventing rather than researching

Inventing rather than researching

Alistair Cockburn | Agile Software Development : The cooperative Game, 2nd Edition

In the book Agile Software Development, Cockburn developed some ideas about the human side of performance and process. The five failure modes identified by him are:

  1. Making mistakes
  2. Preferring to fail conservatively
  3. Inventing rather than researching
  4. Being creatures of habit
  5. Being inconsistent

De todos, el que mas quedo en mi mente porque haberlo visto en numerosas oportunidades es: “Inventing rather than researching”(*).

Este concepto aplica a todos esos casos donde en vez de investigar si existe una solucion para el problema que enfrentamos, buscamos inventar nuevas formas de hacer las cosas, lo cual es excelente pero en terminos generales es mas costoso en tiempo, esfuerzo e implica mayor probabilidad de errores.

Como decia mi profesor de Base de datos: “la rueda ya esta inventada senores”, sin oponerse a la innovacion, se oponia a la perdida de tiempo de crear una solucion que ya existe, en vez de invertir ese tiempo en buscar la mejor forma de implementar la solucion.  Si ya sabemos que existe la rueda entonces, porque no invertir ese tiempo en determinar si para solucionar el problema necesitamos una rueda mas grande, mas chica, de un determinado material.

(*) Una de las cosas que mas me maravilla de leer un libro, especialmente uno referente al ámbito donde uno se desarrolla profesionalmente, es encontrar reflejado en palabras escritas ideas y situaciones que uno percibe pero no ha llegado a verbalizar, ese preciso momento en el que uno encuentra no solo la idea sino que podemos ver reflejado nuestro pensamiento en el pensamiento del autor es uno de esos momentos mágicos por los que vale la abrir un libro.

Creative destruction: When new industries rise and replace old ones

Creative destruction refers to the incessant product and process innovation mechanism by which new production units replace outdated ones.

Joseph Schumpeter

In these days we are reading news about Macys is closing stores and eliminating jobs, but at the same time Amazon announces the creation of 100,000 new jobs, is inevitable to notice the contrast between the two scenes which are a real example of “creative destruction,” the inevitable process in which new industries rise and replace old ones.

The original concept was formulated originatelly in 1942 by Schumpeter, and was perfected after 53 years by Clayton Christensen who formulated the theory of the disruptive innovation, intrinsically related with creative destruction.

Disruptive innovation describes a process by which a product or service takes root initially in simple applications at the bottom of a market and then relentlessly moves up market, eventually displacing established competitors.

Clayton Christensen

 

Moving away from theory and approaching to our daily life, it is particularly strinking to see companies that 20 years ago did not exist be active and necessaries participants in our life mentioning for example Amazon, Uber, Airbnb

All these changes occur because new industries are created, with thousands of jobs, but at the same time they destroy innumerable companies and jobs.

In general and totally abstract terms, the economy as a whole benefits from creative destruction, because greater productivity is essential for long-term economic growth, where a new business idea displaces other existing but less efficient ones.

In singular terms, it is necessary to analyze what happens both with the companies and  laid-ofemployees.

This is the paradox of progress in an economy: it is to be witnesses of creative destruction and disruptive innovation live.
It is totally unpredictable how innovation will transform the world in the next 50 years and what it means for us.

 

 

How to deal with problems as a team

How effectively a team deals with problems has a critical impact on whether a project succeeds or fails. It is too easy to ignore problems for too long and continue pushing forward on a project, hoping the problem will somehow go away or resolve itself. But problems eventually stop us from working, and they often results in us having to undo work we’ve already done.

Being hit with the need to diagnose a problem and then having to do rework to correct it can have a dramatic effect on our projects.

Mike Griffiths | PMI-ACP Exam Prep

It’s almost impossible to add something to this paragraph because it summarizes many concepts and ideas in a very precise way: we see so many times how people (try to) ignore a problem until it’s become a crisis which exploits in their hands.

And when it happens, when a problem turns into a crisis, everyone panic, opening all the umbrellas they can, with the primary intention of covering themselves.

The real solution is to be proactive, and if we found a problem, in that very moment we must start working on that because to stick our heads, necks, and everything else into the sand is never the answer.

The real answer is to solve the problem.
And it applies in every aspect of our life, never is the solution deny the reality, excellent, good, average o poor it is what it is, and the only real way to improve something is working on that.

The use of color in data visualization

While I was working on one of my last visualizations, I needed much longer than expected it because the incorporation of colors complicated everything.

After of each failed intend, I did not understand consciously the reasons because I was completely certain about why I have the sense that each image was wrong but I clearly intuited it, so I let my work rest for a while to understand what is the origin of that strong though elusive belief.

Rather than resign myself to a mediocre visualization, I was determinate to make the most of my visualization. While reflecting on how to follow, a sturdier element to break up the circle of multiple mistakes: not so long I had finished with “Data at work” and inside the book, there was a chapter dedicated to the application of the principles of the use of color. Suddenly all those ideas returned to my mind and I understood that that chapter was the origin of my discomfort with each of the created visualizations.

No one wants to share the mistakes that we made, but let’s face it there is no better way to understand something that fails over and over and over, as Thomas Alva Edison said: I have not failed. I’ve just found 10,000 ways that won’t work.
In this opportunity fortunately, they didn’t 10,000 ways just a few times only.

But, first the data

The visualization is based on the stats about multiple births along the last three decades. This data presents a high range with very large numbers for birth rate and tiny numbers for triplets, quadruplets, quintuplets births. 

First attempt: Add very, very few colors

In order to put the color to work for us, I chose to add a few colors, using a very simple palette. And as you can see in the image below these lines, the result is not fair with the visualization created because it turns it in something extremely plain.

[Image with two colors]

Error: Lack of alignment between color and suitability of the task. The excessive simplicity of the color palette renders it incapable of showing the variability of the data.

Second attempt: Stimuli intensity & suitability to the task

After to understand the origin of the mistake in the previous attempt, I looked for a palette composed several colors: with different values and a high contrast between them.

The final result can be seen below these lines, and in this opportunity even when there was a reasonable good choice in the color selection, the final result is a graph where the data associated with multiple births (triplets and more) are represented with one single color.

incorrectusepalette2

Even though the choice of the palette was improved, it is still not the appropriate and final palette. The use of this palette was inappropiate due to lack of suitability to the task: it not allowed to show the sequence in the data (in this case clearly exists because we have more births of twins and less quintuplets), and also prevents perceive the order of the data.

 

Third attempt: Correcting stimuli intensity and misrepresentation of data

Stimuli intensity and Palette

I finally chose a palette from Rcolorbrew in blue shades, with 9 colors, showing a sequence showing the orderly display of this data.

Variability of the data

To solve the problem of huge range between data, I generated separately three graphs grouping the data sets with values similar to each other, in order to show the variations between them.

correctingpalette_3separategraphs2

For the first two graphics I used the colors of the Blues palette of Rcolorbrew, however for the third graphic I decided to change the last color of the palette for a lighter one.

To help me in the election of the lighter color based on a specific color, the best tool that I found was:   http://www.color-hex.com

Final graph

Project step by step: What is the range of age with most players in the NFL?

A popular belief that has been considered valid throughout the centuries is the best way to understand an idea is to explain it to someone else. Seneca said so many centuries ago: “While we teach, we learn”.

Based on that I chose a very simple project in order to implement a histogram, firstly to break down the steps about how to use it, secondly because through this simplification we obtain very small, manageable pieces that facilitate understand the concepts behind each idea.

Definition of histogram

A histogram is a graphical method for displaying the shape of a distribution. It is particularly useful when there are a large number of observations.

The data

I will use a dataset with the 2,764 NFL players for all team rosters as of July 22, 2016. Some of the information includes jersey number, name, position, age, height (in inches), weight (in lbs), years in the NFL, college they graduated from, NFL team, position grouping (OL, QB, tailback, TE, WR, Front 7, DB, special teams), side of the football (offensive, defense or special teams), and their experience level by years played.

I mentioned all the elements of the data due to the completeness of this data set allow me to consider it to answer other questions and implement other tools.

In this particular example in answer to the question What is the age range with most players in the NFL?, Considering the age of 2764 NFL players which are between 20 and 43 years.

Preliminary analysis of the data

Interval’s Lower Limit Interval’s Upper Limit Class Frequency
20 25 1652
25 30 902
30 35 160
35 40 17
40 42 3

This table shows the range of ages (intervals). The first interval is from 20 to 25, the second from 25 to 30, etc. In the next column, the number of players falling into each interval was counted to obtain the class frequencies.

Code

After to analyze the data, we can create an histogram in R:

#Load the data
nfl_2016 <- read.csv("NFL_Players_2016.csv")

#Cleaning the data
nfl_2016 = subset(nfl_2016, nfl_2016$Age != "--")
nfl_2016$Age <- as.numeric((as.character(nfl_2016$Age)))
 
hist(nfl_2016$Age,
 main="Distribution of NFL Players by Age", 
 xlab="Age", 
 col="blue",
 breaks=5,
 ylab="Quantity of players",
 ylim=c(0,2000)
 )

Final result

nfl

Sources

Hardening Iteration

A Hardening Iteration is an iteration that Agile project teams use to perform integrated testing on each of the different product increments developed during each iteration so far in the current release to ensure that they work together as a whole.