Operating as an Agile Team
So, you are a team, and you would like to take a full advantage of lean and agile way of working.
But what does it really mean for you as a team?
Here are some things to keep in mind.
Responsive value delivery to the customer
First of all, you want to be responsive and you want to create value incrementally. One way to achieve this is by working in short iterations, usually two weeks each (such short iteration is often called a Sprint). The result of an iteration is working software. In other words, it is not just something you can talk about, but you can also run it and, therefore, you can demonstrate it. So, it is a good practice to have a demo at the end of each iteration. Demo is used to not only show the working software in action, but also to get some customer feedback. So, invite your customer to your demo. And if it’s not possible to get the customer every iteration, maybe it’s not a bad idea to have a customer proxy, someone who understands the customer domain quite well but can also spend a lot of time with the team to address their questions, provide more valuable detail and so forth. This person is often referred to as the team’s Product Owner.
Plan of intent and relentless improvement
And each iteration, of course, requires some degree of planning. And the plan could be expressed as a set of some meaningful chunks of solution functionality, and also at the higher level, the goal for the iteration. Once the iteration is finished and the customer demo is done, and the review of “how did we do vs. the plan” was also performed, now is the time to retrospect the iteration and see where we, as a team, succeeded, where we failed, and what would we do differently next time. And there will be next time – it’s just the next iteration. And the process simply continues on.
Within the iteration, the team is trying their best to take the full advantage of collaborative effort, day to day. There are multiple ways to make this happen. And the simplest one that can provide some very basic level of collaboration, is to have one primary team checkpoint at a specified time every day. (This is often referred to as stand-up meeting or daily scrum, by analogy with the corresponding rugby paradigm.) And at this point the team members are discussing with one another where they are with respect to the goal of their iteration. During this short (usually, 15-minute) meeting, they decide who needs whose help, and where the team needs to make adjustments and what needs to change, if anything, in their iteration plan. But of course, collaboration cannot be only reduced to one short meeting. Productive collaboration takes various forms during the day, to help the team advance towards the goal. Effective team collaboration may benefit from a good facilitator. Such a facilitator is often called Scrum Master.
Lean flow, technical practices
The team will be trying to keep as little items in-progress as possible, at a time. This is done on purpose. Finish a few chunks of value and then move to the next few and so on. This helps establishing a fair amount of predictability and improve the speed of value creation. The team members frequently integrate work with one another, to ensure that they are not accumulating inconsistencies and that integration is normally powered by fast, effective, automated testing, allowing the team to quickly ensure that the system functions up to the expectation.
And speaking of team members, they are put together on the same team to make it possible for the team to deliver customer value. Not just a chunk of code but something that represents value and that often requires people of different functions and skill areas to be on the team. In other words, it is a cross-functional, cross-discipline team.
The team and the stakeholders understand the power of the team lies in collaborative problem-solving where respect to one another and courage in bringing new ideas are very important values. The team and the stakeholders also know that the team best performs when it establishes sustainable pace of working. That means that the team only takes on the work in the iteration that they have a proven ability to deliver. A good team certainly challenges themselves, however, not to disrupt their sustainable way of operating.
Interacting with the rest of the world
And lastly, the team, of course, interacts with the outside world. There are most likely other teams that operate in a broader organizational context, there are various stakeholders and subject matter experts with whom the team needs to interact.
Alright, this is it for our brief overview of what it means to be a Lean-Agile team. Based on what we discussed, think of 1 or 2 concrete action items that would improve your team performance. Go right ahead and implement them.
Agile Manifesto. www.agilemanifesto.org.
Scrum Guide. https://scrumguides.org.
Mary Poppendieck; Tom Poppendieck (2003). Lean Software Development: An Agile Toolkit. Addison-Wesley Professional.