October 28, 2013

The Retrospective Session for Everyone

It’s continues improvement aimed meeting, taken place at the end of each sprint. Helping the team to improve their performance effectives and efficiency (http://qconlondon.com/london-2012/presentation/Effective%20Retrospective). We look back as a team, learning from what we did wrong and how to improve in the future. And learning from what we did well and how to recreate it.

This is, in my opinion, one of the most important sessions to take place as part of the agile rituals that lead us to continuous improvement.

Don’t skip this session!

Why ?

Because it’s a learning meeting. We Communicate our performance on a regular basis (end of each sprint) we retrospect over our performance and pick action for next sprint.

** Just before we continue , please note, I will be using the term “team” as a general reference , but, you may apply this to family members, classmates, teachers group and any other form of ‘team’ with common goals.

Why retrospective?

·         Because improvement does not come alone. Having a heart beat  of improvement sessions will take us forward.
·         Because we if want to constantly improve  we need to have this official place and time, and it goes without saying that talking about our performance is what we naturally do, Regardless our results.
·         Because continues improvement and learning can come only when we are set to reflect over our performance, effectiveness and efficiency.
·         Each team member sees things differently, if we wish to improve as a team we need to get everyone’s opinion to the context of the team.
·         Without a retrospective session, the team will probably continue to make the same mistakes all over again and the improvement items will be randomly, based on crisis and the rate of improvement will be lower than it can get.

Who attends the retrospective?

Team members only! Those who have tasks on the board. Pigs , remember?
Managers are not allowed. Why? Because it’s a self-organized team, remember ?  Because the team should be accountable for its performance, therefore accountable for the improvements.
The team will decide whether to share or not retrospective items.
The scrum master can conduct the meeting  few first times , but later on it is recommended that The team will conduct the meeting.

Things that should take place during the retrospective:

·         The retrospective is an open discussion
·         Set up goals
·         Assign tasks to goals for next sprint.











In this session, we will ask ourselves questions:

1.    What should we continue doing?
2.    What should we stop doing?
3.    What should we start doing?
Or :
What were our successes “+” , or things we wish to improve “_”

The session should take place at a time when it’s convenient to chat, in a sharing atmosphere. Each team member should feel entitled to comment and contribute to the session and to the three questions.
We sometimes encountered people who avoid this session with various excuses, such as “we don’t have time for yet another meeting”,” we don’t want to share our thoughts and feelings with others”, and so on. Team members may be afraid to share their thoughts and opinions, especially if the managers are very 'command and control', ordering team members around and managing the team tasks.

Two types of retrospective as important to mention:
·         We can have a goal oriented retrospective, which is aimed to talk about a specific issue. For example – our relationships as a team with our interfaces.
·         Or we can have what I call  as “free hand” retrospective , which is  more of an open discussion over issues bothers the team , and from there the discussion will scope over the most important issues that the team thinks needs discussion.

Setting up a retrospective session:


     Allocate about an hour of team time.
     Conduct the session when just the team members are present, especially for the first few sessions.
     Have the session where you all feel comfortable. Don’t take it outside, at least not at the first times.
     Set the ground rules: for example: everybody can talk , we are here to share our view, don’t interrupt when one team member is talking and more…


As usual, the format may vary, and you can employ more creative methods than just conversation or writing tasks down on sticky notes.  Here are few examples:

Example 1 :

     One team member will review the weekly tasks. Preferred to be the scrum master Along with the rest of the team, the scrum master will summarize the sprint: main events, achievement, outcomes.
     Each team member says, in his turn, what he thought of the sprint, what can be done better, what we should keep on doing and what we should we start doing.
     One team member needs to summarize what the team says. This shows that we are taking the session and the things the team members are saying seriously.
     Pick a few tasks (not many) for preservation, changing, or to start doing.
     Assign a team member to each task. His role will be to follow this task and make sure we discuss this task in the daily family gathering.
     All team members are committed to the retrospective tasks and outcomes.
     In each retrospective session, bring up the outcomes and progress of the previous session’s action items. You may even choose to bring up the previous tasks as something we may want to deal with in our next sprint.

Example 2:

1.    Draw three columns on a white board or piece of paper:
     Things we would like to keep on doing.
     Things we would like to stop doing.
     Things we would like to continue doing.
2.    Pass around sticky notes.
3.    Each team member writes down issues and adds them to the appropriate column. Don’t comment or criticize team members over issues they add to the board.
4.    Once all finished, the team chooses the first team member to go to the board and make his case. Explain that you should start off with the positive things.
5.    When a team member finds that another team member wrote the same thing he did, he may approach the board add his sticky note together with the one presented.
6.    When a team member start presenting the issues he thinks requires improvement, start asking questions.
7.    We now have a good overview of the issues that occupied our mind during the last sprint. We also know what are the most important issues we need to improve, as we listened to all the team members' opinions.



8.    Now, it’s possible that some issues will create a lengthy conversation. If this happens, it is best to stop the discussion, and ask the team members to talk about it after the retrospective session.
9.    After all the tasks and team members concerns are on the board, lets select the tasks for improvement, to keep or to start doing.
10.  We can move the selected tasks to our ongoing tasks board, and put the rest in the backlog. This way we make sure the improvement will be followed (during the daily meeting) and will take place.




You can perform this session in many more creative ways, as long as you remember to have :
·         
Open discussion:

o   Remember to get into the mood of active listening. Ask questions during the session.  Don’t let slogans to stay as is, get to the root cause of what happens.
o   Visualizing and sharing your issues as a team on the board, as part of a team dialog, makes it easier to talk about issues and address them.
·         
Set up goals

Achieving goals with agile – using Kanban and scrum with kids and at home

Why spiders can help you achieve your goals


·         
Assign tasks to goals for next sprint.
o   Just make sure not to select too many tasks for improvement. Focus on the important ones.
o   By the way, this isn’t as obvious as it sounds. By choosing the important tasks, we find out what the other family members are thinking. We may find out that there are specific issues that bother more than one family member, and we can focus on those for improvement.

More creative retrospective sets:



Attention and techniques:

•       Don’t let this session become a status reporting meeting and then to be delivered later to managers.
•       The past looks all black and the retrospective becomes a sad or angry meeting?
•       Use future spective technique to look at the future and make things better.
•       When we delay issues to the retrospective instead of solving them on the spot.
•       Raise the issue in the retrospective and make sure to bring the message that issues can be solved outside the retrospective as well..
•       Too many problems rise in the retrospective?
•       Set priority and take issues offline to task forces.
•       Deal with one issue at a time


You can use “retrospective” session whenever you have something you want to check and improve , you don’t need wait to  have a retrospective session to make a change or improvements. All you need to know is how to talk about things.


o   Credit “agile kids book “




October 09, 2013

The Agile Values and Principles for Everyone


Agile hold a minimum set of values and principles, following them, will allow taking the agile almost anywhere. Once we get the grip of that, we can implement agile, its tools and mindset almost for anything. Only fine tuning and modifications will be required.

Post takeaways:
·         An overview over the agile values
·         How to translate those to your own context
·         How was it translated to family context
·         How was it translated to schools context
·         Try yourself check list

First, Let’s dive in to the original agile values.
Agile is an empirical process based on the principles of delivering working items and continues improve by continues adopting an awareness to problems and solving them within. It is a method of adapting to complex and constantly changed systems.
Agile is not one methodology, it’s actually a set of tools, values, principles, a collection of mindset beliefs that helps getting things done. In agile, like in agile, you can never implement the exact same framework in two organization. You will always need to adjust, be agile, and refine your activities and tool. This is because agile relays on people and effectiveness of processes and each group of people so deferent, even if they are manufacturing the same product.

Agile is Based on the mindset and psychological aspect, where teams are self-organizing and self-directed. It holds more than just few mindsets approaches related to empowered individuals, self motivate individuals and Creativity and innovation are highly appreciated and encouraged. When those individuals are part of a group with a common goals (let’s say, school for example) the agile method proves to get things done faster than any other method; the agile method will also facilitate the grows of the group and individuals within and though grow the outcome of a group for better performance.
It’s a way to improve and get things done. It’s a light designed frame work, easy to adapt even in partial aspects, where all of these can happen regardless the type of area of which we wish to evolve to agile.

The agile software development manifesto.
Initially, the agile as a method and its values and the principles behind it were mostly fit to the IT and software engineering industry. You can find them all here.

Lets dive into them a bit and reappear back and see how we can take those into “everyone’s” world
 “We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and tools”

We believe that effective communication may drive a group of people toward better efficient and effective performance. We employ a vast set of communication tools to make sure it happens, and we demand the same from team members and management.
We believe that face to face communication is a key for success. We believe that using frequent communication is even better. And we make sure direct communication is kept as a key using various tools such as a daily standup meeting, retrospective, talking about planning, visualizing our work to our team members and stakeholders. And we prefer doing that face to face over communicating using several of tools. It’s just doesn’t work when we have so many mediators (phone, applications, reports). After all we are people, working together.


We believe then in:
·         Frequent , direct communication
·         Transparency and truth in a communication that leads to trust
·         Transparency toward decisions, toward impediments

We strive to coach and lead individuals and group to follow the communication set of behaviors.

For example, isn’t it better for a teacher to hold a close communication with a child parent then keep all her feedback to the last moment before giving the grade? Isn’t it easier to get early feedback from the teacher, besides only via a tool (grade) and then get the opportunity for early improvement and early feedback once again? After all, we all know the grade are just a tool, there is a lot going on beyond the grades.
Inset it better to talk to the teacher then get her feedback via email? Wouldn’t it give us the opportunity to react, and get feedback?


Working software over comprehensive documentation”

This is our deliverables.
 We deliver working outcome as set of intervals each holding a value. Instead of long month of planning, design, developing and testing an entire system, we do this more frequent, with smaller portions and each portion is a working software.

We make sure everything we do that we want to deliver holds its definition of done. Meaning, what will make this task complete.
In order to deliver something bit that works, we believe that dividing it to smaller portions that each works and holds a value is better than building in parallel many parts and try to shamble them at the end. The effort to build it up , correct and change  is huge  , sometime needs getting back to the core developed framework , the amount of errs are out of control. The feedback is sometimes too late and the changes will be build ad plasters over a non working product.
This is a mindset change statement. It allows as at early staged give and get early feedback over our work. And we should be open to that feedback.

Lets say , we are building a car , so we better not check at the last moment that the wheel is working as part of assembling and testing the entire product. We will probably build the wheel as a separate mechanism, test it (reuse it), then connect it to other working items such as the wheels and retest them. Errs will the be easy to detect and solve.

Customer collaboration over contract negotiation”

Collaborating with our stakeholders
When the stakeholder is involved, he feels more in control, anxiety reduced and communication flows better. We don’t have to wait a long period of time till the end of a project finding out we didn’t develop what the customer wanted. And, god, how often did this happen?! Almost 90% of the times!
We need to have the ability for early feedback.
In school as an example, I tend to consider the teachers as the principle customer and vice versa. Therefore, sharing your plans and outcomes in an early stage, while at the same time having a hart bit of healthy feedback may empower the entire system toward better ideas, better cooperation and better performance. Everyone feels they have a share. And agile does exactly that.

Responding to change over following a plan”

We leave in a very small world, communication is faster and changes are all over. In the industry of software development change is a reality. And we may better understand it and adapt. It’s not only that the technology is changing all around, it’s also our need to develop over these technology frameworks (such as develop over iphone , tablet, PC , Mac) it’s also the frequent of changes in what we develop may change. People may also change their priority for variety of reasons , especially customers. People are not born to forecast the future (well at least most of us), so it may be that we want something develop today and change our mind in few weeks.
Agile holds a set of rules and behaviors allowing us better to react to the changing environment , weather with hard strict rules (“The sprint is the team safe zone”) or with soft skills supplied (frequent communication) or tools (standup meeting).
Same goes to all of us, the non software world residents. We need to embrace change first, acknowledge that changes are fact of life, and embrace the tools that will allow us better accept a change and grow to take advantage out of it.
We may hold a yearlong curriculum plan for our class, but then comes an event , that make us change. We want to be able to embrace change, understand the we are working according to the value of each deliverable holds and we may leave a side other deliverable and artifacts as a result of a change. We are not expected to toe everything at once , but we are expected to be agile enough to leave in this fast changed reality.

That is, while there is value in the items on the right, we value the items on the left more.

The software development Principles behind the Agile Manifesto
These reflecting the values above in a more practical sense.

We follow these principles:

1.      Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2.      Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
3.      Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4.      Business people and developers must work together daily throughout the project.
5.      Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6.      The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7.      Working software is the primary measure of progress.
8.      Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9.      Continuous attention to technical excellence and good design enhances agility.
10.  Simplicity--the art of maximizing the amount of work not done--is essential.
11.  The best architectures, requirements, and designs emerge from self-organizing teams.
12.  At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

The first thing will be to try and understand those values and principles to fit to a more common ground then just software.

Remember: these are not lip service, we need to understand each of them and follow them.
Well, mainly when taking it to the common ground of practice agile principles are about:

Individuals and interactions over process and tools
Communication is a key , we can’t skip it. We live in a world of constant and fast communication using tools. Face to face communication cannot be skipped and its proven to be effective than any other tool.

Getting things done over measures of behaviors
Stop concentrating over measures, grades. It’s not that it is not important, rather than it should not be the scope of evaluating yourself. Achieving a true progress a long with mindset change is the true goal.
We better deliver 100%  of 80% then 80% of 100%  , its better to stick to the important then just do things we don’t need; understanding what is important is an art.

Stakeholder’s collaboration over lack of feedback
Involve others that have interest, get early feedback. Its always better to do small mistakes then big last minute big mistakes.

Responding to change over following a plan
Changes are part of our day to day activities; we better accept it and adapt to change all the time. Changing I a potential for growth; staying in one place will get you stuck. Change and adapt all the time
Self organization leads to prosperity
Take decisions; Fail; Learn to grow for your mistakes; is a key to success

Then, the next step should be, to try and fit those values to the one , you  are trying to evolve to agile.

For examples, when we came to implement the agile into a family and with kids , we initially defined some of our values as guidelines:

The Agile@Home Values and principles: 



That is, while there is value in the items on the right, we value the items on the left more

We also took the principles behind the values and translated them to what we believe in to be our agile way.

1.    Our highest priority is our family and our children. Our children go through childhood once, and we are the ones responsible for it.
2.    We believe that the parent is the key to family growth and should be coached to be the role model for any required changes.
3.    The family must work together as a team in order to enhance its communication, achievements and abilities, including the children regardless of their age.
4.    Investing constantly in our family, even for brief periods of time and regardless of negative or positive events, will bring about good results.
5.    The parents must supply the family with the right tools to succeed, and trust them that they will know best how to use them for their needs.
6.    We believe that face to face communication is the most effective form of communication.
7.    The most effective family empowerment and growth will come from the ability of parents and children to have an open dialog.
8.    Simplicity is an art. Dividing big issues into small chunks will bring the best results. Doing 'just enough' from these chunks will bring about the best results. An effective change is one that is done gradually, so it is quantifiable and manageable in real time, while at the same time the entire family is responsible for the change.
9.    The best outcomes come from children and families that manage themselves effectively.
10.  we believe that enhancing one’s strengths also enhances his weaknesses. Therefore we prefer to focus on the strong and positive over the weak and negative.
11.  We believe that all family members must evaluate their actions constantly, not just when a crisis emerges.
12.  Visibility and openness is the key to family empowerment.
13.  We believe that fun, rather than ‘serious’ takes us further. Therefore, we will make sure that everything we do will involve the element of fun, although we will insist on making it fit to the spirit of the events.

It’s that obvious!

I’m amazed at how easily it translates to education if you are applying scrum in schools for example:
I have encountered this article of a very talented  teacher stating the agile values as he sees fir to the education arena (contact him)

About the Author

Steve Peha is the President of Teaching That Makes Sense, an education consultancy in Carrboro, NC specializing in literacy, assessment, and school leadership. Since 1995, he has taught in thousands of classrooms and hundreds of schools across the United States and Canada. Prior to that he was a software entrepreneur


The Twelve Principles of Agile Schools

We follow these principles:
  1. Our highest priority is to satisfy the needs of children and their families through early and continuous delivery of meaningful learning.
  2. Welcome changing requirements, even late in a learning cycle. Harness change for the benefit of children and their families.
  3. Deliver meaningful learning frequently, from a couple of days to a couple of weeks, with a preference to the shorter timescale.
  4. School and family team members work together daily to create learning opportunities for all participants.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a team is face-to-face conversation.
  7. Meaningful learning is the primary measure of progress.
  8. Our processes promote sustainability. Educators, students, and families should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances adaptability.
  10. Simplicity-the art of maximizing the amount of work not done-is essential.
  11. The best ideas and initiatives emerge from self-organizing teams.
  12. At regular intervals, teams reflect on how to become more effective, then tune and adjust their behavior accordingly.
Here again, we find a blueprint for better schooling.

Now it’s your turn:

Individuals and interactions over process and tools
…………
Getting things done over measures of behaviors
……..
Steak holder’s collaboration over lack of feedback
……..

Responding to change over following a plan
……
Self organization leads to prosperity
…….

  1. Our highest priority is ….
  2. Welcome changing ……..
  3. Deliver meaningful …...
  4. …….. Team members work together daily ……..
  5. Build projects around motivated individuals……….
  6. face-to-face communication is………
  7. Meaningful outcome  is the primary measure of progress….
  8. Constantly invest in….
  9. Continues improvement is……
  10.  Simplicity-the art of maximizing the amount of work not done-is essential…..
  11. The best ideas and initiatives emerge from self-organizing teams.
  12. Simplicity is an art…Dividing big issues into small chunks will bring the best results. …
  13. The best outcomes come from ….. that manage themselves effectively.
  14. Visibility and openness is the key …...
  15. We believe that fun, rather than ‘serious’ takes us further……
  16. And more……