The era of web development is drastically changing at ground-breaking speeds. It is extremely important to keep up with the current trends, technologies and methodologies.
When it comes to developing custom web applications it is important to understand the project’s high-level requirements and expectations. Once these are established an agile approach should be adopted to ensure that we can get the product to market quickly, while making the necessary changes along the way.
With the development of new websites, web applications and software, there are two types of approaches that can be utilised in terms of how to manage and execute the project. These are namely; agile and waterfall methodologies.
Agile is a much newer methodology that many web development agencies have adopted. This approach is an iterative software development methodology specifically designed to build products faster. Agile uses short pre-defined development sprints (short time cycles, typically two weeks), with each sprint resulting in potentially shippable functionality delivered.
The traditional or “waterfall” approach to project management requires extensive planning of the entire project, start to finish before any code is created. However with the development of bespoke digital products, the client’s requirements often change or evolve as the project develops, and such detailed plans leave little space for changes or new features.
Which approach is best?
This is not to say that one approach is better than the other. This is highly dependent on the type of project and a few other factors:
Is this a new type of product that hasn’t been created before or are there other similar projects that exist and can be referenced?
- How complex or straightforward are the requirements?
- How clear is the scope?
- What is the possibility for new features and functionality?
- How flexible is the client in terms of feature priority and suggestion of new features?
For the sake of this article, we will focus on the agile methodology approach. We’ve found that this adoption works best when the scope is unclear and there are highly custom requirements with a strong probability of new features and functionality being added as the project evolves.
So how does agile work?
We know that agile focuses on delivering working code sooner and offering the client flexibility to change the scope of the project and provide feedback to the development team.
This is a typical lifecycle of a project that makes use of the agile methodology:
1. Understanding the high-level scope of the project and expectations.
The project requirements and supporting information is received from the client. Further engagement sessions are performed to ensure that these are understood and other considerations and impact items are discussed and finalised. The high-level deliverables are identified, prioritised and the internal resources are scheduled.
2. Sprint Planning
A sprint is a time period (typically two weeks) during which the necessary work is completed and delivered for review. The entire project, therefore, consists of multiple sprints each with their own scope of work and deliverables. The sprint planning, therefore, is more accurate for the initial sprints and higher level for the sprints that are further down the line. These sprints will be refined and adjusted as the project progresses and based on the client’s feedback.
3. Designing and developing the product
Now that the sprint planning is done, the design (if applicable) and development of the product take place. Each sprint will consist of smaller bite-sized chunks which are seen as their own mini deliverable. Designers and developers work on each of these deliverables during the sprint and then using project management tools to update the status and progress of the work completed.
4. Testing and review
At the end of each sprint, the client is informed of the work completed, provided access to a testing environment and reviews the deliverables that are ready for testing.
5. Feedback and preparing for the next set of work
Feedback is provided by the client and these are discussed internally and with the client to assess the impact. Adjustments are then made to the next sprints and items can be re-prioritised based on the client’s requirements and input.
6. Finalising the project
The sprints also incorporate final testing and quality assurance once all the development is done.
Launching the project in the live environment is also performed as a sprint until the project is finished. Therefore the entire project from start to finish is treated in an agile manner.
7. Future requirements
When building these projects we’ve often encountered many new requirements and features that are at some point needed within the product. Certain of these items aren’t a high priority and necessary for the phase 1 launch and therefore are documented for future development, IE: Phase 2+. These will also be approached in an agile manner when the client is ready to proceed.
Benefits of using the agile approach
1. Fast Start
Waterfall and other traditional development methodologies require you to define and scope the whole project before you can start. With agile we are able to start much sooner, as we don’t need the full scope but only enough to start the first few sprints. We then formalised the sprints further down the project’s lifetime when the details become clearer.
2. Flexible approach
With complex web builds things are more likely to change, which agile handles very well. This flexibility allows the project to morph as the business and client wishes.
3. Tech partners always providing value
We see ourselves as tech partners and work with you to adjust the project as needed. Through our years of experience, we are able to shift priorities of items and suggest new features which we deem to be valuable to the project and its users. Launching a Minimum Viable Product (MVP) is key to getting to market first.
We use project management software to document the project and keep the progress updated. This is shared with the client and we’re able to collaborate through this central tool, providing the client with insights into the project.
5. Project Roadmap clarity
Working closely with our clients and providing constant updates and input, we’re able to provide the client with a high-level roadmap of the entire project. Project management software means they have access to this anytime they want.
6. Faster product launch
As we are able to reduce the time that is needed to start the project, we speed up the delivery of the product. Agile is geared towards developing a Minimum Viable Product (MVP), which allows the product to reach the market sooner and to get users using it and providing their feedback.
7. Happy clients
Working hand in hand with our clients we are able to demonstrate the evolution of the product on an ongoing basis. Allowing clients to make changes and being flexible is highly satisfying. Clients also love being very involved and through the collaboration of all parties we are able to build a great product, combining the client’s industry expertise and our technical skills and experience.
8. Reduced Risks
Agile methodology eliminates the chances of complete project failure. It is a highly collaborative approach between all parties and issues that may arise are dealt with quickly based on the sprints and constant communication.
Agile is a newer way to approach projects and this may be slightly unfamiliar to clients, who may be used to the traditional project management processes of scoping the entire project upfront and then developing what was scoped. However, with more and more complex, custom software and web apps being developed we feel that agile is a much better approach, providing the flexibility that the client needs and that the project deserves.
There are many benefits as highlighted above and we’ve delivered many successful projects using this methodology, to the delight of our clients.