What is agile?A traditional approach to website development with an agency/client partnership typically looks like this:
The client scopes out their requirements, usually in conjunction with the project lead and development team at the agency. This is followed by the designs and UI/UX for all of the pages, sections and templates being prepared and created by the design team, before being signed off by the client and passed to the development team to code and bring the designs to life. There is then a final stage during which the client tests, approves and signs off the the project before it is launched.
However, there are a number of problems with this ‘waterfall’ approach:
It is incredibly rigid and inflexible – because the scope of the brief and the designs are signed off and approved at the beginning of the project, it is virtually impossible to make changes or adjustments during the project, without big impacts on cost and time.
Real projects rarely follow the sequential flow that the model proposes – at the beginning of most projects there is often a level of uncertainty about requirements and goals, and it is therefore difficult for clients to identify these criteria on a detailed level.
Developing a system using the waterfall model can be a long, painstaking process that does not yield a working version of the system until late in the process.
Feedback and testing are deferred until very late into the project. So if there is a problem, it is very difficult to respond to it, requiring a substantial amount of time, effort, and sometimes money.
In comparison, the agile development methodology serves to improve and solve some of the issues outlined above. A typical agile methodology looks like this:
The Fundamental Principles of Agile
Agile development began in 2001 when a small team of software developers got together to find a better way to approach the management of their projects. The result of this was the ‘agile manifesto’, which are still the defining principles of agile development 15 years on:
1. The highest priority is to satisfy the customer through early and continuous delivery of valuable websites or software.Traditionally, clients working with an agency will not see a live working website until several weeks, or sometimes months, after the project has begun. By shipping quick, incremental releases as the project begins to take shape, the client is able to become much more closely involved and aligned with the development team.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. In most client/agency relationships, requesting changes during the build is discouraged, as it can add additional delays and impact on the agreed schedule. In agile development, adjustments or new requirements are welcomed at any point, as due to the incremental sprint-based nature of the project, it is easy to include these.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. A key element of agile is the short ‘sprints’ that mark a particular phase of development or a project. At Yellowball, we typically run 2-week sprints during agile projects.
4. Business people and developers must work together daily throughout the project. Often, clients can struggle to relate or connect with highly technical engineers and web developers. Agile promotes the effective partnership of the two, via ongoing transparent feedback, better alignment to the shared goal and more communication.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. This is another area which is typically neglected in other development styles. Regular sprint debriefs and sprint planning sessions allow for communication to be open and fluid. A cutting-edge cloud based project management tool also plugs in to assist here too. We use Jira, but more basic tools such as Trello can do the job.
7. Working software is the primary measure of progress. Success should be measured by the outcome of a website or piece of software working and delivering value to the end user.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity — the art of maximising the amount of work not done — is essential.
11. The best architectures, requirements, and designs emerge from self-organising teams. This is about giving the development, design and client teams the freedom to self-organize, as opposed to being instructed and driven by a sole project manager or leader.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
Agile does have its disadvantages
Agile is not appropriate for every project, and during the planning stages, it is vital that you carefully consider and discuss with your project lead the most appropriate route to take. Some key considerations are:
– Variable costs and time frames. In the case of some software deliverables, especially the large ones, it is difficult to assess the effort required at the beginning of the software development life cycle. This will usually mean that the pricing structure of the web design and development team will be billed on an hourly rate, with time tracking reports used to generate regular invoices. The changing, flexible nature of agile makes it very hard to give fixes costs or times around a project.
– Flexibility can cause distraction. The project can easily get taken off track if the client is not clear what final outcome that they want. In our case it is the responsibility of our team to help the client understand this and scope the project as fully as possible at the beginning.
At Yellowball, before we begin a new project, we will always take time to carefully consider and plan the most appropriate development methodology to adopt with each client. To discover more about these processes, contact us – we’re always here to give free advice and insight during your early planning stages.