Finding ways to reduce time and improve the delivery of value of a product is crucial for every business.
In this post, we share eight key elements on how teams can provide value with agile delivery from Ramón Molina, Agile Delivery Manager (ADM) at Codurance. These insights were delivered at a recent meetup in Spain (all in Spanish language).
What is Agile Delivery?
It’s an iterative approach to software delivery in which the teams involved create software incrementally and validated by stakeholders from the beginning of a project.
And so for agile delivery to be successful, you should hear the thoughts from the whole team as well as stakeholders, so that everyone involved can contribute their vision. A crucial part of staying aligned and motivated is communication and feedback; continuous experimentation and openness to change. That way, inefficient functionalities or bad designs from the early stages aren’t carried over and the team can iterate with something that has more value for everyone involved.Eight key elements that make Agile Delivery possible
There are eight values or key elements that can help to successfully implement agile delivery:
Collaboration opens the door to continuous improvement, because through the exchange of ideas, weaknesses and action points can be identified. It is important that this collaboration has coherence, based on a clear objective in which everyone knows what their roles are. At the same time, it goes hand in hand with trust, both within the team and with customers. It is not easy to build and requires time and openness.
- Code quality
Quality should never be sacrificed for the excuse that delivery needs to be fast. To maintain code quality without losing agility, there are several useful practices that help such as: pair programming, code review, test planning and TDD.
- Team mission
It is crucial to be clear about the mission, purpose and responsibilities of the team throughout the project. It is also important to have the necessary skills to deal with problems, and to establish the strengths and weaknesses of the group. Ultimately, the team must leave a legacy, i.e. the code they have created, their best practices or the relationships they have built, which will remain after their dissolution.
There are basic elements that allow all team members to feel at ease and focus on their development. Having their needs met means, for example, having a salary they are comfortable with as well as flexible working hours to meet their personal obligations. It also helps to nurture team motivation with actions such as a career path, training programmes, salary assessments and recognition of their work.
- Biases and assumptions
When we come to a project, we bring our biases or assumptions that may not be aligned with the new team. Sometimes, there is a resistance to change that can block and lengthen the delivery time. Therefore, the first thing to do is to understand that everyone comes with their own ideas and that it is necessary to promote a conversation to reach joint agreements on how the team will work and on what values will guide us.
- Focus on the customer or product
When you work on a development or project, you are working based on a customer need. Therefore, it is important that your efforts are focused on satisfying that need, otherwise the project will be off track. Be pragmatic and look for simple solutions that respond to the success of the product.
- Planning and prioritisation
There is a lot of talk about flexibility in agile practices, but that doesn't mean that there is no planning and no clear path. It is important to draw up a plan with defined objectives that guide where the project is going.
- People first
Sometimes difficult decisions have to be made taking into account the dynamics of the team. If one piece doesn't work, you have to try to get it back on track so that the team doesn't become dysfunctional or break up.
Useful tools for good Agile Delivery practices
So how do we achieve all of the above? There are some tools to deal with these situations and which can help us to follow good practices:
- Schedule one to ones - Individual sessions that provide a safe environment to talk about issues in the team or challenges that affect your day-to-day work. It allows one to get a real insight into the state of the team and to find areas for improvement.
- Discovery - prototyping - planning - These three tools often go hand in hand because often the clients don't quite know what they want, so you first establish the need, launch a simple prototype that is testable and then, through real feedback, evaluate and plan.
- Performance reviews - Regular assessment of performance and identification of strengths and areas for improvement.
- Feedback - Feedback is an excellent practice as long as it is assertive, omni-directional, direct and with tangible examples. Not just negative or positive criticism, but clear reasons for what is being communicated.
Schedule all hands - A regular meeting where company values are promoted, strategy is reviewed and the status of the organisation is discussed. It is a good place for people to feel connected to the company.
How continuous validation is key to Agile Delivery
In conclusion, in order to improve value delivery, it is necessary to unify the team, the product and the stakeholders. For a team to do Agile Delivery successfully, it first needs to have a clear purpose, be motivated and seek continuous improvement. The product must have defined expectations, be developed with quality and requires constant validation. Continuous validation makes the difference between a waterfall project and an agile one, since in agile a project is not presented to the client after 3 or 4 months, but as it evolves. So it is very important that stakeholders feel involved in the decision-making process, so that iterations of functionality have real value for everyone. This practice of openness will increase trust in the team and encourage a constant flow of ideas. By aligning the team, the product and the stakeholders, development will become more agile and delivery time can be reduced.
Thanks to Ramón for this session and insights, and to the Agile Sur community for their collaboration in this session. If you’d like to find out about more technical practices, then please visit our Insights page.