OpenAgile is not (just) Empirical

A few weeks ago, David Parker and I had a conversation about some of the differences between Scrum and OpenAgile.  We hit upon one really interesting thing: Scrum strongly emphasizes that it is a purely empirical approach to doing work… and OpenAgile does not make that claim.  In fact, OpenAgile, while it includes empiricism, is definitely not an empirical process framework.

Ken Schwaber has long been adamant about empiricism with his phrase “Inspect and Adapt” which is the core of Scrum.  All the artifacts, meetings and roles of Scrum are meant to be supportive of the inspect and adapt approach in a product development environment.  A Scrum self-organizing team inspects and adapts on the product it is building.  It inspects and adapts on the obstacles that arise as it does its work.  It inspects and adapts on all the organizational processes, technical tools, team dynamics,… everything!  This is Good.

But Scrum, in its pure empiricism, also lacks something.

OpenAgile has components of Scrum’s empiricism.  Certainly, OpenAgile owes a great deal to Scrum.  The concept of “Systematic Learning”, one of the foundations of OpenAgile, is similar to Scrum’s empirical framework.  The process structure of OpenAgile is also similar to that of Scrum with short cycles of work delivering value on a regular basis.  The main difference comes from a simple concept: Guidance.

In OpenAgile, guidance is a critical component of systematic learning.  Guidance allows someone outside the team to intervene.  This might be a manager, a stakeholder, a family member… anyone who sees things from an “outside” perspective.  It might also be someone within the team pulling in guidance: asking for advice, doing a web search, reading a book, or even meditating in the hope of inspiration.

In Scrum, there are some very strong boundaries around outsiders providing guidance.  No changes mid-sprint.  All requests for work go through the Team’s Product Owner.  The ScrumMaster “protects” the team from outside interruptions.  “Chickens” cannot participate in the Daily Scrum.  The team self-organizes with individuals volunteering for specific tasks.  Team members discard all organizational titles when working within a Scrum team.  All of these boundaries support a pure empirical approach to working.  They also provide a form of safety for the team.  This safety is deemed necessary with the implication that stuff from outside the team is dangerous.

In OpenAgile, guidance comes to the team through the conduit of love.  Yes… love.

The team develops a love for its work.  This love then opens the team members to guidance.  Think of the opposite: if I hate my work, I’m not likely to be interested in taking any advice about how to do it better.  If I love my work, I will always be seeking ways to improve it.

Of course, love is not binary.  It’s not on or off.  In that continuum, the more an OpenAgile team loves its work, the more receptive it will be to guidance.  The more receptive to guidance, the more sources of guidance will be “safe”.  And the less reliance on pure empiricism will be necessary.

Let’s be frank: pure empiricism, in its most extreme form, means that Scrum teams would re-invent things that may have already been invented many times before.  In the Scrum community, the most obvious example of this is the Agile engineering practices that come from Extreme Programming.  Scrum teams seem remarkably resistant to adopting these practices at the outset… despite the fact that eventually most Scrum teams working in software succeed or fail based on their eventual adoption of these practices.  Scrum teams are often left without the guidance that XP practices can help them.  Instead Scrum teams seem expected to re-discover XP practices on their own.

For what it’s worth, I don’t think that Scrum is fatally flawed.  In fact, I think that in some environments, where teams truly are unsafe, where people tend to hate their work, where dysfunctional bureaucracy is deeply embedded in the organizations culture… in these environments Scrum is actually the right place to start.  Scrum is great for product development in high-crisis situations: save your product with Scrum!

OpenAgile, by accepting guidance into its framework, allows teams to progress rapidly when they can leverage other people’s learning.  Scrum does not dis-allow this, but it sets up an environment where the team culture tends towards the “Not Invented Here” syndrome.  OpenAgile puts teams on the other path: the path of allowing for greater and greater learning from others.

Try out our Virtual Scrum Coach with the Scrum Team Assessment tool - just $500 for a team to get targeted advice and great how-to information

Please share!
facebooktwittergoogle_plusredditpinterestlinkedinmailfacebooktwittergoogle_plusredditpinterestlinkedinmail

ScrumMaster + OpenAgile + Kanban training in Halifax October 5-7 2011

We have an upcoming three-day agile training seminar in Halifax on October 5-7, 2011.

In this unique seminar, we will be offering a practical view of three important Agile methods: OpenAgile – used for general agile project management and agile teamwork including projects and organizations doing any kind of work. Scrum – used for software new product development and IT project management. Kanban – used for teams doing operational work.

This seminar contributes towards three certification programs: the Scrum Alliance’s Certified ScrumMaster program, the OpenAgile Team Member level and the IPMA/PMAC Agile Project Management certification.

For more information and http://www.berteigconsulting.com/UpcomingAgileScrumOpenAgileSeminars register: http://www.berteigconsulting.com/UpcomingAgileScrumOpenAgileSeminars

Proudly delivered by Berteig Consulting, a Canadian organization since 2004.

Try out our Virtual Scrum Coach with the Scrum Team Assessment tool - just $500 for a team to get targeted advice and great how-to information

Please share!
facebooktwittergoogle_plusredditpinterestlinkedinmailfacebooktwittergoogle_plusredditpinterestlinkedinmail

Upcoming Agile Training in Ottawa September 26-27

We have an upcoming Certified ScrumMaster (CSM) training in Ottawa on August 15-16. This two-day Scrum training is full of great features including:

  • Facilitated by Certified Scrum Trainer ™ Mark Levison, an Agile expert since 2001
  • Classroom management using agile methods so that you can learn by example
  • Two intensive days of training with exercises, simulations, discussion and lecture
  • plus much more!

For more information and to register visit: http://www.berteigconsulting.com/UpcomingAgileScrumOpenAgileSeminars

Proudly delivered by Berteig Consulting, a Canadian organization.

Try out our Virtual Scrum Coach with the Scrum Team Assessment tool - just $500 for a team to get targeted advice and great how-to information

Please share!
facebooktwittergoogle_plusredditpinterestlinkedinmailfacebooktwittergoogle_plusredditpinterestlinkedinmail

How to Introduce a Test Driven Mindset

Recently, I was helping a friend of mine introduce OpenAgile into their environment. They are a software development house with some local and some overseas developers. I am occasionally following up with my friend to see how they are doing.

Their development has been going well since adopting Agile practices with the exception of a recurring problem with “returning bugs”.

A bug will be discovered, fixed, and then several weeks later will show up again after some other modifications.  This is a sure sign that Test Driven Development is not happening.

Consider the following:

  • There is a master data entry screen called “Shipment Entry”.  The first field on the form has a “Shipper” field that allows the entry of a Shipper Code.
  • If you press CTRL-N, you Should get a sorted list of Company Names ordered by CompanyName, paged 20 at a time, with a smaller selection if some of the characters of the company name have been filled out.  The resulting list should appear within 3 seconds.
  • Today you downloaded the code, recompiled and find that the drop down does not sort anymore.
  • You know that you have fixed this before.

Introduce the Test Driven Development Mindset.

Instead of opening a ticket, sending an email, complaining or whatever your process is, consider trying the following and introducing something like this into your source / version control.
Shipment Entry Screen Tests
Shipper Field is Empty, CTRL-N pressed List Appears, paged 20 at a time, sorted Alphabetically by Company Name within 3 seconds
Shipper Field has “ABC”, CTRL-N pressed List Appears (filtered to show all companies containing “ABC” in the company name), paged 20 at a time, sorted Alphabetically by Company Name within 3 seconds
Shipper Field has an invalid entry “INVALID”, CTRL-N pressed Within 3 seconds, a pop-up appears indicating “NO COMPANY FOUND”, the shipper field is blanked and the cursor is returned to that location. The popup disappears.

If any developer works on that screen, before checking in, they need to do all the tests on the SHIPMENT ENTRY TESTS document to ensure they have not broken anything.Don’t get me wrong. The idea is not to document the entire screen up front! Try to avoid designing the ENTIRE UI up front in this way. That has it’s own non-agile problems. This is just an easy way to introduce future changes using a different mindset.In my example above, there is a field called “Mode of Transport”. It currently shows a list of numbers which internal employees “KNOW” from years of experience with the application. When that number is selected, it gets converted into something like “MAIL”, “COURIER”, when it is printed on the final document. Your team has agreed to do work to have it show the appropriate labels in a drop down on the screen.Traditionally (non-test mindset), you would send out an email or open up an issue with a request for this change. Then, the cycle will continue again. As time goes by, you will always need to re-check this is working properly.

Try something like this instead:

When you have finished your planning and have decided this “story” or “feature” will be introduced to this cycle or Sprint, simply modify this document as follows;

Shipment Entry Screen Tests
Shipper Field is Empty, CTRL-N pressed List Appears, paged 20 at a time, sorted Alphabetically by Company Name within 3 seconds
Shipper Field has “ABC”, CTRL-N pressed List Appears (filtered to show all companies containing “ABC” in the company name), paged 20 at a time, sorted Alphabetically by Company Name within 3 seconds
Shipper Field has an invalid entry “INVALID”, CTRL-N pressed Within 3 seconds, a pop-up appears indicating “NO COMPANY FOUND”, the shipper field is blanked and the cursor is returned to that location. The popup disappears.
Mode of Transport Entry into Field Within 1 second, when entering this field, a drop-down list appears show full descriptions, sorted alphabetically by Mode of Transport.

Granted, the tests will eventually become cumbersome. However, please remember that someone will eventually be testing these screens and find these bugs in a never ending circle. My friend found that every morning they were having to go through all the screens to see what “new things” were broken.

Why not just try to get it right during your Cycle or Sprint ?

In the above example, as soon as someone takes on this task, they will have a failing test (Red), they will do what they need to do to get the test to pass (Green), and then will adjust the code to be efficient (Re-factor).

Although Test Driven Development is better done at other places in the code, this is a great way to introduce the “Mindset” into your team.

Someone will eventually say “This is getting to be a hassle. Can we automate it somehow?”, which as an Agile person is exactly the words you eventually want to hear.

Maybe now, you can start to introduce it at the Unit Test, or Functional Test or whatever level is appropriate to your organization. There are some more formal ways of doing TDD such as Extreme Programming (XP).

The important thing is that your company will have shifted to a Test Driven Mindset.

The quality of your product will increase and stay that way and the need to go back and fix old bugs in a never ending cycle can soon be a thing of the past.

Try out our Virtual Scrum Coach with the Scrum Team Assessment tool - just $500 for a team to get targeted advice and great how-to information

Please share!
facebooktwittergoogle_plusredditpinterestlinkedinmailfacebooktwittergoogle_plusredditpinterestlinkedinmail