The most important agile ceremony for a developer is: Refinement. Let us explore a little deeper into Refinement and Agile to unlock the full potential of software!

There are a number of great agile ceremonies that help a team / group / organization manage software to deliver amazing features and code. Here is a recap of some the promenade agile ceremonies:

  • Daily Stand-up
  • Planning
  • Sprint Retrospective
  • Sprint Review
  • Refinement

As a developer I feel the Product Backlog Refinement meeting, or Refinement meeting for short, is a critical ceremony in the journey of creating great software.

Refinement Meeting Features

  • Dedicated Time for Backlog
  • Engagement in Issues Before Development Starts
  • Planning Poker to Gauge Difficulty
    • This is a lot of fun!
    • Helps to gauge understanding of a request
  • Provide Clarification Between Business / Development / Testing / QA
    • Reminder Testing / QA can be involved too

The opportunity to ask questions and think through the software development process prior to writing code is priceless. There have been numerous times in my experience that a Refinement session has exposed flaws in the requirement / planning process that a feature request was lacking or missed. The time-saved from a developer / QA / business finding this out saves a lot of pain and development hours.

“truth, like gold, is to be obtained not by its growth, but by washing away from it all that is not gold.” ― Leo Tolstoy

The Refinement meeting is just that; it is the continuous improvement of an idea / a thought / a feature and increasing its clarity and value.

There are times, and quite a lot, when a feature is ready-to-go and that is a big testament to planning and the ability of one to enter a thoughtful feature request. Having more sets of eyes on a feature request can only improve its value – keep on washing away all that is not gold!

Refinement Tips

Read and Re-Read the Feature Request

Slow down. Take the feature request and read it again. Digest it and get a complete understanding of what is being asked. If you are still having a hard time understanding what is happening this is usually a sign of lacking clarity or something that can clarified further.

Refine, Refine, Refine

“Requirements rarely lie on the surface. Normally, they’re buried deep beneath layers of assumptions, misconceptions, and politics.” Andrew Hunt the Pragmatic Programmer

What might seem like a simple request could lead to something bigger and deeper that needs to be understood. Take this time to dig further into it.

Think like a User

Empathy is something that is often overlooked in Software Development and to great detriment. Think about the user – how will they use it? Is it in-line with other areas of the system it is being requested for? Does it make sense in terminology?

Think about the Edges

Most of the time in Software Development we are truly defined by our edge cases or limited by them. Exposing the edges earlier will help speed up development and make the system in entirety more reliable. Think about mappings, sub tables, or other limiting factors that may be an impediment to the potential developer that will either be you or one of your teammates!

The Runner-up

Daily Stand-up Matters

My personal favorite ceremony for Scrum / Agile is the Daily Stand-up as it provides are a quick hitting look into what development is taking place. It includes what areas other developers are working in or any impediments that other developers are experiencing in the Sprint. Can you help? Maybe you have run into a similar problem.

As a developer I find this very important to understand – are there any areas that two developers might be run into a conflict with each other? Is there a system-wide testing issue occurring?

The Daily Stand-up is one of the most important agile ceremonies too!