If you don't want to squander your money and time when working with a WordPress developer, you need to keep track of everything. Budget required, timelines, milestones, release dates, testing phase, who's doing what, etc. Literally, you have to have a clear picture of the project status and advancements.
That's why project management is such a critical aspect business owners should get better at. In recent years, when people or industry outlets talk about project management applied to software development, they often pair it with the concept of Agile and, more specifically, they talk about Agile Project Management, Agile Software Development, and Agile methodology.
It seems like "Agile" is all the rage when it comes to software development work. In fact, it's such a powerful methodology that any business owner can get used to and even master in a reasonable time frame.
So what does it look like working with an outsourced WordPress developer following an Agile approach?
Let's dig in!
Understanding what an Agile methodology is
To take advantage of Agile in your next project, it is important to first understand what the term "agile" means. Agile means flexible. When it comes to project management and software development, the term refers to fluidity in the process. It allows the entire project to be classified and executed in a way that is more efficient by dividing it into recursive cycles, with a keen focus on continuous improvement, called "sprints".
Sprints are usually two- to four-week-long and allow an extremely productive development flow because, for example, instead of discovering problems and suggesting edits at the end of the whole project, you and your developer can become aware of them earlier and adapt right away.
That's where the more traditional approach, often referred to as "Waterfall approach", show its limits.
Take a look at this:
What's the difference between Agile vs Waterfall methodology
There are many differences between an Agile approach and a Waterfall one but, as you can see from the image here, the main one relies on the fact that the Agile approach favors a smaller and incremental delivery of work, while a Waterfall-based approach focuses on delivering the project all at once. On top of that, Agile and more traditional methodologies differ on other key aspects, such as:
- Agile stands for customer collaboration over contract negotiation
- Agile stands for individuals and interaction over process and tools
- Agile stands for responding to change over following a structured plan
- Agile stands for prototyping/working solutions over comprehensive documentation
Having established that an Agile approach is an effective way to handle software development projects, we now dive deeper into understanding the most efficient way in which it can be made to work.
The five pillars of an Agile approach to working with outsourced WordPress developers
There are many ways and methodologies to implement an Agile approach. Still, there are five essential pillars that support such approach to project and softwater development and, at the same time, that cater to different aspects of the entire process.
Pillar #1 of an Agile approach: Problem and requirements need to be investigated and documented before anything else
Every proper problem-solving process begins by investigating either the cause of the problem or the requirements of the feature and document them. This is important because as long as you don't know what you have to fix, what new functionality you're trying to build for your WooCommerce store, how are you going to successfully finish the project?
So, the first important step of Agile is understanding and documenting the implication of your request based on the current state of things. The developer starts investigating every minor detail including the issue, your requirements, your expectations, etc. WordPress developer and Codeable expert Jonathan Bossenger explains:
As the client, you'll come to the developer with a problem. Depending on the size of the problem, the developer you've hired may need to spend some time investigating it, whether is an issue to fix, the requirements of a new requested feature, the root cause of a problem. Once completed, it's the developer's responsibility to group findings, requirements, causes, etc. in a human-readable document.
More often than not, such investigative first step is delivered through what is called a "discovery phase" or a scoping project.
Pillar #2 of an Agile approach: Evaluation of potential solutions
Once the problem has been identified, and the main project requirements have all been documented and shared with you, a starting point has been established. The next phase of the process will see your outsourced developer analyzing possible solutions that will be able to provide you with optimum results. Jonathan explains:
No one problem has one solution. There's always the perfect solution, and given unlimited budget and time, the perfect solution might be your option. But budget might be a concern. Time might be a concern. Technology might be a concern. So, after the discovery has been done, I will then propose to the client two or three solutions based on my findings. Once the chosen solution has been picked, we need to take that solution and break it down into smaller pieces.
Pillar #3 of an Agile approach: Project has to be split into shorter life cycle stages
Planning and its related time and costs estimate is where the Agile approach really shows its difference and its value.
In fact, the third pillar entails breaking your project (aka the solution you've picked thanks to the developer's suggestions) into smaller chunks, at the end of each, deliverable goals are bundled with.
Remember the concept of sprints I talked about earlier? Well, this is just them. Specifically, once a solution has been preferred over the others, your outsourced WordPress developer will split it into smaller yet meaningful sub-projects and link them to the fixed-timed development cycles. On top of that, at the end of each sprint, you're supposed to receive a physical deliverable to test.
It could be something you could see in your browser, something you can click and test on a separate staging environment on your own. Almost anything. The important thing here is, you play a proactive part in the development process by having the change to test early and providing your developer with feedback on every piece of code they're working on.
Wow, uh? See the effectiveness of such approach?
Pillar #4 of an Agile approach: Costs and time estimates don't cover the project as a whole
Given all the core difference Agile brings in, you should also be aware that also costs and time estimates change drastically. Fear not, though. That's a good news for your wallet!
Let me explain.
With other standard approaches, you're used to preparing a project brief with some requirements, criteria, and then ask for an estimate or, if the requirements are too loosely defined or it's a big project, you might request a ballpark estimate.
What happens next, usually? You get a project estimate covering the whole project development costs and also a timeline in which it might be developed. Something like:
This project is going to cost you this much and will take three months.
Sounds familiar? I bet it does!
If you're following an Agile approach instead, you'll be able to get time and costs estimates for the initial part of a project only. Sometimes, a couple more sprints can be estimated too but it's not always the case because it's only after a developer has started to look deeper into a matter that they're able to estimate properly. Jonathan highlights:
Once we agree on a solution, I usually define several milestones to achieve that goal and then share it with the client as 'To have our solution in place, we have to go through these X milestones. First I'm going to do this, then I'm going to do that,' and so on. As for estimates, I'm only delivering estimates of costs and time for the first milestone, sometimes the second as well.
A key aspect of an Agile methodology is to request a continuous flow of project updates from the developer. This doesn't have to be misinterpreted as checking in too many times on the developers. Yet it is the other way around: you should expect your WordPress outsourced developer to share updates with you on a recurring and ongoing basis, based on your preferences and project size.
- Monday, Wednesday, and Friday
- Longer weekly updates
- Short daily updates
- Weekly updates and a monthly call
Communications and updates preferences have to be defined at the earliest possible to keep the workflow as efficient as possible.
Pillar #5 of an Agile approach: Adaptability driven by continuous feedback
Testing is the phase that determines whether or not the project is on track. This is why collecting feedback through testing at end of every sprint from you - the client - is vital. It also has to be extensive so that any issues that might be present arise while they can still be fixed.
It is possible that things don't work out the way you expected. Or, it could be the case that you realize a certain solution isn't solving the issue as you hoped in the first place. Thanks to proper testing you perform regularly, things can easily be altered midway and then steered into a direction that makes productive results possible. Jonathan tells that this is important because:
Another great thing about the Agile approach, is the client gets to test the project early on. And they get to see how it's going, and how it's working. Does it solve the problem that they set out for it to solve? And has anything changed in the course of this development that we need to deal with? With Agile, we can answer all these answers and act accordingly when things change.
When working with an outsourced WordPress developer, efficiency has to be your Northern star.
Embracing an Agile methodology and approach helps you streamline otherwise haphazard operations. You - the client - have the ability to provide feedback during project phases and improve aspects that are not working out as they should. In addition, you get to be directly involved in each stage of the project, right from the earliest ones and get to test solutions regularly, rather than waiting for the whole project to complete.
Project management is an important business skill set on its own. It's crucial. But it's combining it with an Agile methodology that will allow an even higher level of seamless planning, execution, and delivery of project goals.
This blog post features Jonathan Bossenger, a freelance web consultant, developer, writer and podcaster. He is a big supporter of open source software due to its ability to change the world around it. For the past 13 years, he has gathered expertise in all facets of the software development lifecycle, from devops to project management, and everything in between.