Crystal (Clear) – Part 3

This is the third part of this series and is about the seven properties of Crystal(1)(2) applied in our context narrated by one of the team members, Alexandra Vasile, so:

“After working in the context of this project I realized that for sure the context on which I worked before, which claimed to be agile/scrum, was out of track. They reversed individuals and interactions with processes and tools.

Our work was to create a tool which helped all the other teams. We needed to move fast, to respond prompt to the unplanned things that appeared, take care not to disturb the others work.

Crystal has the following seven properties. I will come across them and discuss each related to this specific situation:

  1. Frequent Delivery – our work was delivered everyday in the test platform, and was tested by us and by the other teams which used that code. Every month, our code was included in the production delivery. This helped us to have a quick feedback regarding our work and in case of problems we could respond fast. At the begining of the month we did not have the whole picture of what was going to be delivered, at the detail level, we only had the direction of the changes. In a way, problems which occurred on production helped us a lot because it aid more to rafinate our decisions, priorities and daily work. Almost each time a bug appeared everything stopped and we tried to fix it. There are rare the occasions when we postpone one bug for more than a month.
  1. Reflective Improvement – This thought exercise did not happened because a protocol was in place. If it was a protocol, for sure, I did not felt it. Is like common sense prevailed also here. It just happened without too much hassle. We stayed and reflected on 2 occasions: when a bug appeared in production or when the monthly release was done to production. Everytime a problem occurs, we all discussed, sometimes very nervous, tried to find a solution/way to improve and not to make the same mistake again.

If I think better and try to make associations with past work, we had dailys when we took the coffee, but for sure were not those kind of dailys were reporting was done.

  1. Osmotic Communication – It seems this was a critical point in our physical setup. In other occasions/projects although we were collocated actually it did not matter because conversation happened almost exclusively on Skype, so strange. The fact that we stayed in the same office, with the business expert, closed to each other helped us.  We communicated frequently between us, we knew what the others were doing. We didn’t need special meetings for that. We intervened when we heard a discussion between the other team members and shared our opinion/knowledge/piece of advice – we helped each other. This aids us a lot.

We had a Skype group shared with the client. We put on the Skype group, as a profile image, an italian police car and agents from DIA, for us it was a way to say “ok, no fooling around”.

  1. Personal Safety – We felt safe in the team. We didn’t had fear to make a mistake. Our team lead encouraged us a lot, he told us is ok if we also do make mistakes because we learn from that – who didn’t work, didn’t make mistakes. We helped each other, between us it wasn’t a competition. If someone made a mistake, nobody putted him/her on the wall, on contrary it was helped to find a solution. Another thing very important was that we trusted each other. That’s why it’s very important how the teams are build, because if you are in a team where you are not trusted this implies in a way that you don’t have trust in the other team members either. And when you don’t feel safe you will never do your best.
  1. Focus – The team was built specially for this project. It was a very important premise from the beginning that the persons involved will have to work full time on this subject, no part time work or partially involved. It was very important because the work needed to be done involved full concentration. We set from the beginning some premises and we all knew the final scope.
  1. Easy Access to Expert Users – The business expert, the one which envisioned the tool was with us. Also the members of the team knew the sub-parts of the product. When we had some unknowns we knew who were the persons to ask.
  1. Technical Environment with Automated Tests, Configuration Management, and Frequent Integration – Since almost most of our work involved repairing and fixing existing code we needed these changes on the test platform as soon as possible.Without knowing, the other teams by testing their product indirectly tested also our work.

Probably some will say the same things could have been done in other ways. What was nice is that we were able to see another unknown face of agile in this case was Crystal. Our scope was to move fast, to deliver quickly the work which was needed, because without this tool, which we made, they spend more than 90 days to have some things done, which now with the tool are ready in ~20  minutes.”


(1) Alistair Cockburn, “Crystal Clear Applied: The Seven Properties of Running an Agile Project”,  http://www.informit.com/articles/article.aspx?p=345009

(2) Alistair Cockburn, “Crystal Clear: A Human-Powered Methodology for Small Teams: A Human-Powered Methodology for Small Teams”, https://www.amazon.com/gp/aw/d/0201699478

Crystal (Clear) – Part 2

In the previous post I tried to describe the why, in this second part I try to describe the context and some particulars.

The vision/direction

The vision of this project was borned because of a pain. Pain experienced by a lot of people trying to make the software work for a new certain type of client. People from all levels of the company were involved. The existing product we speak was formed by 3 big sub-products. This meant that integration between the 3 sub-products had to work. We knew about this problem for some time, but usually people react when there is a great need or a pain. So I waited for this occasion, all the other efforts being useless, to rise the idea that it can be solved and all this integration setup to take ~20 minutes.

The team formation

In those difficult moments, from the start, the right technical persons were being chosen to make the integration work for that new client. After a month of big presure the problem was solved and it was decided that we should make the project. I asked for those initial persons. I did not said: “Please give me one person from project A, another one from project B, and one from Project C”. When I spoke with the responsible for each of the sub-project, I asked them for the specific person. I emphasized the fact that I need those persons, by saying their full name, and that is not a coincidence that is about them. I wanted to show the importance of each of the person needed.

A team is not formed by choosing randomly/available/free people, not at all … is much more difficult.

Before going to speak regarding the possibility to have a new project I spoke which each of the persons which I wanted in the new team. For me it was clear that no other person would qualify, so the project would have been with them or not at all. I wanted to have their approval and permission. I have said to them no platitudes or pseudo-motivation stuff. I say this because otherwise I would have consider that I would tell bullshit and offend them and that is not an option for me. They agreed and so the work to form the team started.

It was not easy, but in the end, the desired team was formed: 5 persons. The respect between us, at least what I felt, was enormous. I realized again that once the right people are in place then we can concentrate on the nasty things from the outside. At least we knew that no problems would occur from inside and I was right. I am amazed of how much energy is lost on trying to solve internal problems just because the team is formed in a careless way, a lot of energy is lost and not on solving the real problem(s).

In all this a wonderful person from the client helped us a lot.

Strategy

We knew what we wanted to do grosso modo. We begun the discussions between us, in Crystal parlance I would say it was the  “Reflective Improvement”. There are many details which can be said regarding how we defined the strategy and documented it to offer vizibility, but one thing I remembered vividly is the technique named “Advocatus Diaboli”(1) which helped us a lot. We knew from the start that the colleague, playing the devil advocate, intention was not to hurt us, not at all. Actually he was more like the guardian angel and this from the moment when that pain begun.

Although we had the strategy, we knew surprises will occur, we realized from the beginning that we will meet those unknown unknowns(2).

Also we decided to use a different style of reporting to show our progress and we used the Parking Lots diagrams from FDD(Feature Driven Development) – we wanted to see better the forest from the trees and also to avoid possible anomalies with the current techniques involved with story points – a future blog post will be done regarding this.

Robustness vs Resilience(3)

We knew we couldn’t tackle an important subject and repair code without causing problems/bugs in production. There were too many instabilities we had to deal with. Even if a  problem would have occured in production, we knew we would have to solve it as soon as possible, to recover fast. This way of thinking helped us not being paralyzed/rigid in our approach. What I can say is that is strange when one team focus on resilience and all the others on robustness(actually was rigidity), still we did not gave up. On each occasion I had, I tried to emphasize the need to concentrate on resilience not on robustness.

The Seven Properties of Crystal(4)(5)

For me these properties were like constraints in the complex adaptive systems. But I let one of the team members to describe these properties in connection with the project, in the next post.


(1) “Devil’s advocate”, https://en.wikipedia.org/wiki/Devil%27s_advocate

(2) Dave Snowden, “The Origins of Cynefin”, http://old.cognitive-edge.com/wp-content/uploads/2010/08/The-Origins-of-Cynefin-Cognitive-Edge.pdf

(3) Dave Snowden, “Risk and Resilience”, https://www.youtube.com/watch?v=2Hhu0ihG3kY

(4) Alistair Cockburn, “Crystal Clear Applied: The Seven Properties of Running an Agile Project”,  http://www.informit.com/articles/article.aspx?p=345009

(6) Alistair Cockburn, “Crystal Clear: A Human-Powered Methodology for Small Teams: A Human-Powered Methodology for Small Teams”, https://www.amazon.com/gp/aw/d/0201699478

Crystal (Clear) – Part 1

Recently I saw a video from an agile conference(1). I have looked at the video because of two persons appearing in that video: Dave Snowden  and Alistair Cockburn. Dave Snowden is co-author of DSDM and Alistair Cockburn is creator of Crystal methodologies(2). In that agile meeting, where the term agile was coined(3), these 2 methodologies were represented also.

When looking at this video I noticed one remark, made by Alistair Cockburn, which made me sad, he said: “…….is like Crystal Clear, completely irrelevant…”. Is it irrelevant? For me and my team members surely was not. We have applied Crystal, recently, 2 times:

  • A project started at the end of 2016 and ended in February 2018;
  • A project lasted for 3 months at the beginning of 2017.

I noticed that is hard to use a way of working which is different than the dominant way of working, in this case Scrum – but I think this would have happened also if dominant methodology would have been something else,  because is about people, not methodologies. I noticed that some people, calling themselves Scrum Master or fully devoted to Scrum, if I can say so, were disturbed by this and I do not understand why. I say this because Scrum has its roots also in Toyota Production System, in this sense I try to imagine a great line manager  or a Kami-sama(4) who will avoid learning/investigating/exploring/experimenting something just because “that’s how things are”…

But let me tell you why Crystal proved useful to us:

-it helped us to respond promptly in a multi-ontologic(5) space → we had the properties ( frequent delivery; reflective improvement;  osmotic communication; personal safety;focus; easy access to expert users; technical environment with automated tests, configuration management, and frequent integration)  as guidance then techniques followed;

-It was like a cognitive activation that allowed us to be agile, but also to be pragmatic and solve the problems we had. And yes they, my team, realized they can be agile by other means;

-It helped us to face that volatility is needed ( well actually will appear unannounced)  sometimes in projects, although the trend -in my circles – is against volatility;

-it helped me to think at the granularity(5). I mean how things (techniques, events, formalities) combine. With Scrum, on how was applied and enforced upon on us, we saw we were like paralyzed ( all was very rigid like being strait-laced. What mattered was velocity and predictability. Things were done but without the knowledge of why. We had to put stuff in sprints because we had to fill in those sprints and a lot of energy was lost with that.We were trying to  solve something, but is not that we had clear list of the things to be done; it was about creativity, investigation, experimentation, observation. Yet we knew that at the end of each month things, important things, had to be delivered. Delivered, and as far as I was concerned without useless pressure and fully aware that those things will/might fail and they failed, and it was/should be ok to fail; but things went ok also because of those preceding failures among other things. A short answer would be that people respond to something  based on patterns of the recent past experiences, whether good or bad )

-I like to say that it also solved a sociological problem. In a way, Scrum is becoming ironized, unfortunately, especially Scrum Masters – as I said is about people and how prepared they are and even more their desire to be prepared. Members of my team have had very bad experiences with that kind of Scrum and begun to doubt the religiosity which surrounds it.

I was very proud, that in a monthly meeting, when a presentation was made regarding the ways of working, Crystal was there – in a list of 8 or 10 projects. I think 50 people saw the Crystal in that slide. And when I had the occasion I spoke about Crystal.

Those lines above were written when the big project was in danger of not “receiving the final acceptance”. I was calm because anyway our work was in production already, each month our work was delivered in production and things were ok. And if things were not ok we responded fast. Is important to make this note, because usually the description of something differs depending on the outcome – in this case the outcome was  rather a sad one. The lines above were reviewed by all the team members. And finally, things are ok, it seems.

Crystal is relevant for me, and it was for my team. Each time an intern is assigned to me I’ll take care they will know also about Alistair Cockburn, Jim Highsmith. So maybe Alistair Cockburn work is not lost, for me it matters – I know I am just one person but I am :).

In the next post I’ll detail a little bit the how.


(1) AgileByExample 2017: Discussion panel, https://www.youtube.com/watch?v=WTZlLBUo1gE

(2) Alistair Cockburn, “Crystal methodologies”, http://alistair.cockburn.us/Crystal+methodologies

(3) Manifesto for Agile Software Development, http://agilemanifesto.org/

(4) Craig Trudell,  Yuki Hagiwara,  Ma Jie,”Humans replacing robots herald Toyota’s vision of future”, http://www.livemint.com/Companies/B53nQRpNGDTrVMYrcD1RBK/Humans-replacing-robots-herald-Toyotas-vision-of-future.html

(5) Dave Snowden, “Multi-ontology sense making; a new simplicity in decision making“   http://cognitive-edge.com/articles/multi-ontology-sense-making-a-new-simplicity-in-decision-making/

(6) Dave Snowden, “Granularity”, http://cognitive-edge.com/blog/granularity/