Dimensional reduction attack – Inspection

Inspection is not a high-tech concept, it surrounds us.

Inspection is acceptance test. In fact, a lot of things you even don’t realize that’s the acceptance test, such as:

Racing, the winner is the first person who touches the finishing line. How can we do the acceptance test? We set up a physical rope across the finish area, the runner who touches the rope is the winner.
High jump, the winner is the person who has the highest jump. How can we do the acceptance test? We set up a cross-bar, the jumper who drop the bar will fail.

Imagine this situation, a group of people is racing, they don’t know what is “win”, there is no finish line also. While another group of people is jumping, but there is no cross-bar. And both the two group is excited and do their best.

Is it reasonable? No, That is ridiculous.
Question: if no inspection or acceptance test, why do you expect every team member do their best?

Inspection, not only the must-have but also need to be clarified to every team members.

From the project point of view, we use ATDD for inspection.
ATDD refers to Acceptance Test Driven Development. Maybe you knew TDD (Test Driven Development), and you have a question about the difference between them. Here is the answer, we add a word “acceptance” to emphasize this is an acceptance criterion, and TDD is just a technical method to the purpose.

About ATDD, I can assert that the only purpose of each development activity is to pass the acceptance criteria. That means before you start coding, you must think about how to test. In another word, to be a developer, if you couldn’t figure out how to test one feature automatically, you probably don’t know how to develop the feature either. Then stop coding, and ask BA for the requirement again.

Now, you know what is ATDD and why ATDD. There are two ways for ATDD, code review, and Retro. You may have a question about why these two uncorrelated activities are mentioned together. Think twice, the goal of these two actions are same. They all look back to find problems and correct them in the next iteration. The only difference is code review for the developer, Retro meeting for the whole team.

Besides the two activities, there are four things more specific: kick-off meeting, sign-off, showcase, and CI.
A. kick-off meeting, this meeting happens at the beginning of each iteration, in this meeting BA will explain each user story, the developer asks questions about the requirement and PM clarify the goal of this iteration. All team members align both requirements, goals, schedule, and velocity with each other.
B. Sign-off, at the end of each iteration, all user stories need to sign off by BA. BA has the authority to accept the work or not.
C. Showcase meeting, after BA sign off, the team will showcase to the client and get feed back from them.
D. CI, it refers to Continuous Integration, it’s a technical practice. CI assure each commit from developers will not break the build. CI needs TDD to do the test automatically.
There are some other things about the inspection I want to mention: Story card & Planning Wall.

In the past, the requirement was “hidden” in a deep folder of your computer, and project plan was a beautiful Gantt chart in that folder. But it always has the same problem: when the client changed their plan and requirements, everything needs to change and there will be a long changing process.
That will be a nightmare of waterfall management. In the agile world, we have user stories to describe the requirements with acceptance criteria in the same card. Project plan “document” is a physical wall with full of the user stories cards on it. This is a living document, big enough, clear enough and flexible enough.

At last, let’s talk about Velocity Estimation. I must say, the hardest inspection in the development team is the velocity of the team.
When we sell products, the client always asks the price. A computer has the price from hundreds to thousands according to the different hardware; A house has a quote base on the sq ft;

But how to make a quote for an IT project? We all know that the cost of an IT project is developers. So the question becomes to how to measure the team velocity.
It’s hard. Sometimes, even the developer doesn’t know his capability, let along the project manager.

In the agile world, we use story points to measure the team velocity. At the end of each iteration, the team should evaluate velocity again and compare with the historical data, the team will have a more precise evaluation. (Velocity estimation is another big topic, it worth to talk about in a new article).

Now, you understand the second pole of Agile: Inspection.

Advertisements

Dimensional reduction attack – Transparency

Preface

We human live in a 3 dimensional world, while ants’ world only has 2 dimensions. Even ants crawling on the wall, they think they are walking on the ground. If someone takes up an ant from the wall, the other ants will be shocked, they believe their god make this ant disappear in a second.

 

This is a famous Chinese science fiction <The Three-Body Problem>. That also my first time to know how dreadful “dimensional reduction attack” is.

 

If something you cannot understand, that may because you have one dimension lost. Just like agile project management, you are confused because you don’t get the detail information.

 

In the series of “dimensional reduction attack” articles, I’ll explain the three pillars of Scrum Project Development/Management:

  • Transparency;
  • Inspection;
  • Adaptation;

 

Transparency

 

Transparency is the first policy of Scrum. We got a lot of painful lessons.

One of our project 2 years ago was to build a mobile platform. The client assigned framework and prototype tasks to another company, they came to us to “give the prototype life”. The client didn’t know much of development, they thought it will be very easy to bring the prototype to life. But in fact, we all know the most difficult part of the whole job is “go live”, just like give life to Frankenstein, that is difficult than join every part of the body.

 

At the beginning of every project, we will have an Inception phase(agile requirement collection process). Due to the client was in another city and they had a prototype, they must know well of their product. We decided to do Inception without the client involved.

 

As PM and ScrumMaster of the team, I take care about the communication with the customer. We had project meeting with the client twice a week. In the meeting, we aligned the vision, persona, user journey and gave a lot of good advice to the prototype. The team was excited and the client was happy to get the advice.

So far so good?  But thing went wrong when we showcase to the client after Inception.

The client was very angry about “waste” 2 weeks to “redo” what they have. All the discuss of vision, persona, etc, they deem the purpose was to develop.

Can you guess where is the problem?

We should let the client know what we will do during the following 2 weeks when project start. As well as explain the methodology of Inception and how important it is.

 

This was a lesson for not transparent with the client. The project team should keep transparency with the client about the goal, schedule, and every task. The other thing also very important is to keep transparency within the team. I used to coach a PM, he had no idea about the tasks plan, all tasks were planned by the main team member. But this team member had many tasks himself, so he had no time to plan. That means the team had no plan in advance, they decided the next day’s tasks at today.

The PM complained to me that requirements often changed. The plan was no use. But my opinion was:

  1. “Change comes fast” is not an excuse, it is exactly the reason of planning; Situation changes, so the plan changes to adopt, that is totally different with no plan at all.
  2. A team needs a 1-week plan at least. The whole team should know the goal of the next week and align with that, prepare for that.

 

Talking about “how to transparent”, let’s talk about lending money to someone.  Suppose you lend money to your friend, how do you avoid the risk of not returning?

  1. Sign a loan IOU
  2. Keep touch with the friend
  3. If he doesn’t want to return, talk with him
  4. Eventually, find a lawyer

 

As a PM, all technique above could be an example:

  1. Send email(or sign) memo or meeting minutes to the client;
  2. Keep touch with the client and track the condition of the team members
  3. If bad smell, talk to the client or the team member
  4. Eventually, print out all the plan, agreement, and post to the conspicuous place, near the project team.

How to Push

If you are a team leader or parent, do you have the experience of pushing your team member or kid to do a task?

In traditional Chinese culture, there is a proverb: “You can never wake up a person who pretends to sleep.”

The first thing, you should identify if it is an attitude problem. If so, stop teaching and mentoring right now and make your team member or kid calm down until he wants to continue to learn. I used to speak to my kid like this: “If you do not want to learn right now, you can do anything you want, but before midnight, you should finish everything. You have two choices now: continue learning or take a rest for 10 minutes.” Usually, she would take some rest and come to me and request to continue.

Another thing I would like to mention, it’s about criticism. If you find people are not doing well. There could be three reasons. They are concentric circles.

snip20161128_4

The innermost circle is “belief”. People maybe have the distinct belief in you.

The middle circle is “Attitude”, as I said, it’s not that he doesn’t know how to do it well, it’s that he doesn’t want to do it.

The outer circle is “Action”, it’s what he did. It is an objective fact.

When talking about criticism, the rules are:

  • You cannot even touch anything of the belief;
  • You cannot criticize attitude, but you can draw their attention;
  • You can only criticize the action.

For an example. If one of your team members was late for the meeting. You’d better just tell him: you are late this time, don’t be late next time. If you wanted to judge his attitude, such as “you should rectify your working attitude.” Then you’re wrong.

Now, you may have a question: How can I push if I don’t criticize?

There is another proverb. “If you want to build a ship, don’t drum up people to collect wood and don’t assign them tasks and work, but rather make them long for the endless immensity of the sea”.

How to push then?

In my opinion, first set a goal; Then let the whole team long for that goal; Next step decomposes the goal into some small tasks with the team. Making sure you know how to estimate every task and let the team know you know.

Then you will suddenly find that you don’t need to push anymore. The team will carry the ball and run with it well.

I am Not a Lunatic (another horror story)

Jack reclined on a chaise lounge and said:

“Doctor, you know what? I am able to see devils. No, I am not a lunatic. I am a licensed psychologist too. I know I haven’t lost my mind. I saw a little gray demon squat in the corner of my bedroom, facing the wall. He plucked his own entrails and threw them off. Last night, something serious happened, since not having many inner organs left in his body, he turned his head to me and stared at my belly.”

The door opened at that moment and Tracy, Jack’s wife, stuck her head in and asked in surprise: ”Jackie, why are you talking to a mirror?”

A Man With 9 Lives

I have never met a man who always wants to hurt himself so much. Jack was the only one. He was my patient. Our first encounter was during his emergency treatment. He had broken 4 ribs.  That was 2013. Jack was 31, had broken his ribs, but was still alive.

Jack once told me he had 9 lives, but he lost 5 of them on the snow mountain.

That was 2015, Jack was 33, trapped on a snow-capped mountain, deep frostbite, had lost two little fingers, but was still alive.

That year, I talked to Jack: “You’re getting old, don’t run risks anymore, find someone, get married, enjoy your life.”

Jack was staring at his “doesn’t exist little finger”, very slowly told me: “3 years ago. I was diagnosed with lung cancer. The doctor said, I had only 2 years left. But now, it’s the third year. I win!”

This is 2016. Jack is 34, still adventurous, but is still alive.

A simple truth

Last week I attended a great workshop of employment skills facilitated by the Newcomer’s Association. Although there was a lot of useful advice, one thing totally shocked me.

That is the power of communication.

There were greater than ten people from 7 countries attending the workshop. I noticed they used their own languages on the note which I did not recognize. But when they spoke, everyone used English and knew what the other people were talking about.

I marvelled at this truth. Same languages can make communication so smoothly. People from different countries, different cultures, when we talk, we can understand each other.

It’s a such simple truth which you won’t feel until you’re sitting there with them.

After the workshop, I asked everyone a favor. Write the same sentence using their native language. The sentence is: “Hope you can find a job early”.

Then, I collected some handwriting: Chinese, Indian, Korean, Iranian and Yoruba.

img_0817

Can you feel the Power from the Tower of Babel ?