Transparency is the main ingredient to a successful client-developer relationship. Solution providers and clients can build long-term, and mutually fruitful relationships based on the Agile mindset. This is also what’s made of Retalo.
What is Agile Software Development?
Agile is a term used to describe approaches to software development emphasizing incremental delivery, team collaboration, continual planning, and continual learning, instead of trying to deliver it all at once near the end. Agile focuses on keeping the process lean and creating minimum viable products (MVPs) that go through a number of iterations before anything is final. Feedback is gathered and implemented continually and in all, it is a much more dynamic process where everyone is working together towards one goal.
The term “Agile” was coined in 2001 in the Agile Manifesto. The manifesto set out to establish principles to guide a better approach to software development.The Agile Manifesto consists of 4 important values. The way to read the Agile Manifesto is not that the items on the right side have no value anymore, but the Agile movement values the items on the left more.
So let’s take a look at the first line of the Agile Manifesto. This line states that we value people, their interactions, communication and collaboration more than having all sorts of extensive processes and tools in place. Of course processes and tools are valuable, however, they are much more valuable if they actually support people working together and delivering great products. What we see in a lot of organizations these days, is that the processes and tools are the goal themselves. From an Agile perspective, we value this differently. Processes and tools should be supporting people in working together and delivering value to customers.
What is Agile delivery?
Agile is one of the most important and transformative methodologies introduced to the software engineering discipline in recent decades, helping software teams efficiently create customer-centric products. Agile delivery is an iterative approach to software delivery in which teams build software incrementally at the beginning of a project rather than ship it at once upon completion.
We Retalo successfully embed an Agile mindset into the relationship with our client. We believe that adaptive, Agile software development has the potential to deliver more value to the client than traditional, prescriptive models.
We deliver more outcome, not more output
The first step towards Agile mindset is to shift our focus from output (i.e. features prescribed by initial concept plan) to outcome (i.e. improvements in business goals).
Agile development is all about customers and developers working collaboratively and exploring ways of creating successful solutions together. Facing high uncertainty, the success of the project will depend on the team’s ability to quickly discover and deliver formerly unknown requirements.
- The faster we deliver, validate, and adapt, the higher our chance to meet business goals.
- Development iterations must be short.
In fact, Agile developments use even more constraints than traditional development methods. The difference is that in Agile, we know that we often need to drop some of our initial requirements and replace them with new features to maximize the value delivered.
The goal of an agile team is to be able to build software that is useful to the customer and release it as early and often as possible. The customer should use the software and provide the team feedback. Then the team should use the feedback to make the software better.
To make good decisions about priorities, clients and developers need to develop a shared understanding about the available options, their costs, expected benefits and the given constraints of the project.
We validate working product increments on a frequent basis and communication
A common practice is agreeing on a weekly or bi-weekly release rhythm. Once agreements are set up, then we can add the secret sauce of Agile: The business project team needs to select an appropriate volume of work that fits in the next iteration. That’s a limited amount of work for which they will need to prioritize.
Prioritization should be driven by the client. In perspective, clients must have a clear understanding of all the work that should be done to make a decision about what to select to implement next. They also need to comprehend the limitations of the next iteration.
Customers can toss their new requests frequently. Afterward, they have very little information about what happens with their requests. Their experience is that they receive results in a less than satisfactory speed. This increases the pressure on the development team, creates a sense of urgency, and could cause the team to miss quality standards.
To improve transparency, keep a simple list of all the pending work. It should contain details about what the team is working on, and what hasn’t been started yet. Yes, what we need is a backlog. The backlog is the common, single source of truth that lists the work that needs to get done, and it’s accessible for both the clients and service providers. The order of the items in the backlog defines the order of implementation.
Clients can add new requests to the list and reorganize the backlog based on their current priorities at any time. The shared backlog allows customers to set realistic expectations by implanting transparency in everything that needs to get done.
By having a detailed backlog with priorities set in a disciplined way, we can avoid misunderstandings, such as missed deadlines or flawed planning.
To sum up
Agile mindset believes we don’t know what software should do when we start a project. By satisfying the customer through early and continuous delivery of valuable software, we can start to triangulate into the right software for the customer by giving them something, having them give us feedback, and then shooting closer to the software they’re ultimately going to use and has the most business value possible.