Software Development agencies are a thing all their own and working with them, for the first time, leaves a lot of clients (and would-be clients) scratching their heads and wondering how it all fits together.
This short guide will take you through the terms and practices that agencies use, from the initial brief through to understanding Scrums and Sprint Teams and what those practices mean for you in terms of process and transparency.
The Agile methodology or mindset, which incorporates Scrums and Sprint Teams, champions adaptability, flexibility and client collaboration.
The Consultation and Discovery Process
Before you begin understanding the Agile methodology, you’ll want to go through a consultation and initial discovery process. Like all agencies, we use a briefing process but we also take it one step further with in-depth discovery workshops to help understand your business objectives and user needs.
If you haven’t already, we recommend reading:
Understanding Agency Terms and Processes
Once you’ve completed the brief and discovery process, it’s time to start working with your agency in earnest.
These are some of the terms and processes that you’ll encounter working with an agency and what they mean. This will help to equip you to best work with your agency and be clear about what’s going on and how accountability and success for your project operate.
What is Agile?
Software development is a special kind of art that requires the care and attention of an adaptable, flexible, team that can respond quickly to changes and doesn’t bat an eyelid as the changing requirements of a client.
This is what it means to be Agile.
Agile aims to deliver a clear and measurable structure that promotes iterative development and change recognition.
Built on four foundational values and 12 key principles, Agile development is grounded in:
- Customer satisfaction through early and continuous software delivery
- Working software over comprehensive documentation
- Customer collaboration over contract negotiations
- Responding to change over following a plan
These four foundational values are then reinforced by strong, customer-centric, principles:
- Accommodate changing requirements throughout the development process
- Frequent delivery of working software
- Collaboration between the business stakeholders and developers throughout the project
- Support, trust, and motivate the people involved
- Enable face-to-face interactions
- Working software is the primary measure of progress
- Agile processes to support a consistent development pace
- Attention to technical detail and design enhances agility
- Self-organizing teams encourage great architectures, requirements, and designs
- Regular reflections on how to become more effective
Agile is one of the most powerful ways of delivering complex projects because of the way it emphasises continuous improvement, collaboration, flexibility and, above all else, high quality results.
Companies that work in the Agile Methodology are always accountable and put that at the heart of everything they do. This is because there are six main deliverables that agile companies strive for.
Those deliverables are:
- Product vision statement: A summary that articulates the goals for the product.
- Product roadmap: The high-level view of the requirements needed to achieve the product vision.
- Product backlog: Ordered by priority, this is the full list of what is needed to be done to complete your project.
- Release plan: A timetable for the release of a working product.
- Sprint backlog: The user stories (requirements), goals, and tasks linked to the current sprint.
- Increment: The working product functionality that is presented to the stakeholders at the end of the sprint, and could potentially be given to the customer.
What is SCRUM?
One of the core parts of working with a software development agency is understanding what a scrum is and how they work.
Scrums are a framework that help teams work together. They encourage teams to learn through experience and self organise while working on a problem. The scrum framework actively encourages reflecting on wins and losses to help a team continuously improve.
The scrum framework acknowledges that when a team goes into a project, they won’t know everything about it when they start. This is why it emphasises evolving through experience and helping teams adapt to changing environments and user requirements (underpinned by short release cycles and re-prioritization, which are built into the process).
Scrums adhere to three artifacts (these are essentially tools that get built to help get a problem solved as effectively as possible) which are always constant and revisited and redefined overtime.
The three artifacts include:
- The Product Backlog is a master to do list and is maintained by the product owner. It’s a living list and should always be refreshed and updated. It can include a list of features, requirements, enhancements and fixes that act as the input for the sprint backlog.
- The Sprint Backlog is a list of items, user stories and bug fixes that are included in the current sprint cycle. During sprint planning the team will choose which items on the backlog it will focus on.
- The Increment is the goal. It’s the usable end product that is created by a sprint. This is the team’s definition of “done” and should be shown to the client at the end of the sprint.
What is a Sprint?
Agile software development companies use Sprints (in association with Scrum) to move through projects and hit project deadlines.
Sprints are short, time-boxed, periods where the scrum team works to complete a pre-defined task or section of a project.
The amount of work that needs to be completed will inform the length of the sprint but they’re usually between five and 10 working days and never longer than a month.
The benefits of sprints are that they break down complex projects into consumable, measurable, tasks. For the scrum team this makes it easier to get things done. For the client, it means you’re able to see constant progress at the end of every sprint. You can see your project come alive and tweak it as you go.
Just like working Agile, there’s a framework that underpins the best ways to have a Sprint (and the things you shouldn’t do).
These should give you some insight into how your Sprint team is working and what you can expect from them.
What Your Agency’s Sprint Team Should Be Doing:
- The team should set a sprint goal and understand how success will be measured. This keeps everyone aligned and moving in the same direction.
- Ensure there’s a well organised backlog with priorities and dependencies in order. If this isn’t in place, the whole project could be derailed.
- Suggested velocity should reflect annual leave (and potential for sick leave) and team meetings.
- The Sprint planning meeting should flesh out the minutiae of the work that needs to get done during the sprint. This includes: tasks for all user stories, bugs and other tasks that come into the sprint.
- Sprints should not include work where the dependencies can’t get done. This includes, but isn’t limited to, work from another team, designs and legal sign-off.
- Lastly, make sure the plan is captured in Jira so everyone can refer back to it when they need to.
What Your Agency’s Sprint Team Should Not be:
- Be putting too many user stories into the sprint, over estimating velocity or pulling in tasks that can’t be completed.
- Forget about quality or technical debt. Sprints aren’t about rushing through things as quickly as possible. (side note: they should also be making sure there is time for QA and bug fixes).
- Unclear about the goals of the Sprint before they start.
- Taking on large amounts of high-risk work
- Ignoring the concerns of their teammates, whether it’s about velocity, low certainty work or having underestimated the task.
Sprints are a core part of project development and as well as helping the teams to break down the project into consumable chunks with achievable goals and deadlines, they’re also crucial in helping you hold your agency to account. At the start of each sprint, you know what is going to be achieved in the following five to 10 day period.
The beginning of Your New Agency Relationship
Now you understand how to work with your agency and what the processes mean for you and your project. Once you’ve chosen the right agency for you, it’s time to begin the consultation process and then the discovery process.
Once you’re ready, get in touch.