Table Contents

How Lessons Learned are Managed

GMAT lessons learned include things that we did well and should keep doing, and large scale things we should be doing to improve the software or our project. Lessons learned are each discussed by the team and if we decide there is a real issue, we require a plan for improvement. To make sure we are efficiently handling lessons learned, here are some high level guidelines for creating them.

What is a Lesson Learned

Lessons learned are issues that cause significant problems or could have caused significant problems, or are issues where we did something that significantly improved the software or our project. Lessons learned require group discussion and probably a change in team habits, process or strategy.

Lessons learned satisfy one the following criteria:

Issue that is putting the project at greater risk than necessary

Issue that is causing significant inefficiency

Issue that is significantly lowering quality

What is Not a Lesson Learned

A lesson learned is not a minor annoyance, a tweak to an existing process, or something that can be resolved between team members in the everyday process of getting work done. Team members should bring these types of issues up at meetings, or work them among the team members involved.

A minor issue, (i.e. not a lessons learned), satisfies one of these criteria:

Tweak to an existing process

Minor annoyance or gripe

Can be resolved by just picking up the phone, or discussing via email, or weekly meeting

Does not require significant change in habits or processes

Things We Should Keep Doing

???

Things We Should Change

Do Better

[JJKP] What happened with Code 500?

[JJKP] Overall, the issue triage/CCB process got more nebulous with the switch to GreenHopper.

This is probably to be expected with a switch to a new tool.

Maybe all this needs is documentation:

How should feature leads be pre-triaging things?

What is CCB looking for?

How to make sure we're giving all the right info?

[JJKP] Our new process based around JIRA tickets is a good thing!

But, I've noticed a tendency to fall back into a "mini-waterfall" mode:

Engineer finds an issue, describes what he sees at the time, and throws it over to the developer.

CCB gets to it and thinks it seems pretty important, suggests a fix based on the info that's available.

Developer sees the issue, fixes it as described, and throws it back to the engineer.

But wait! Fix had implications for another issue, and maybe wasn't as big of a deal as the description made it seem. Besides, engineer was pondering a different type of fix, but hadn't fully described it in the ticket yet.

But now it's set to Resolved, and Engineer doesn't verify it for another week (or month). By then, it's too late to change it.

Agile emphasizes more communication, more often.

Would Code 500 have gone any smoother if I had sat in B23 and had more face-time with Linda?

Would TVHF have gone any better if Darrel and I were both on the same chat channel (for example) while we were on that feature?

[JJKP] The "kindergarten problem" is a huge impediment. What can we do here?