You could be forgiven for thinking that most development agencies run in the same way. Work in, do the work, work out. On a basic level, that’s absolutely right. But the ‘do the work’ bit varies wildly from business-to-business, and we’re rather fond of our way of doing things. So here it is.
Being a technically-minded team, we really enjoy getting stuck in to the nuts and bolts of project management and process. And as a fairly young business, we’re not tied to any legacy systems or hardware. This means that we can choose the apps and tools that we use, whether they’re firm favourites, industry staples or brave newcomers. But despite all this choice, nothing quite beats building your own. Spoiler alert: we are building our own (more on that in a future blog). But for now, here’s how we do things at AndAnotherDay, and perhaps more importantly, why.
Ticket to ride
Everything starts with a ticket. Any project we work on, large or small, is broken down into smaller tickets. For this we use Jira, and we match each ticket to the relevant branch in Github. Once completed, we make a PR (pull request), which is reviewed by another member of the team before being merged. Whilst we are all confident in our ability, a second pair of eyes can sometimes spot the tiniest of things to improve upon and just add an additional layer of reassurance.
We have five types of tickets:
- Bug: Quite simply, something that needs fixing
- Story: A new feature or a change request
- Maintenance: A routine maintenance task
- Epic: A collection of Stories which make up a larger feature
- Support: Bug reports that originate from Zendesk
The test is yet to come
Testing is HUGELY important. We test absolutely everything that we do, from something as small as a form through to a fully-featured product build. We initially test locally (that means the test is constrained to an actual machine), before moving on to development environment testing. We use a staging environment before the work makes it way through to production – this is where it becomes live.
Sometimes we’ll involve clients in the sign-off process, but not always. Either way, testing is something that we take seriously, and it reassures us (and the client too) that everything is working as expected in all scenarios and across all devices.
Despite our best efforts, we can’t guarantee that your HTML email will render in Lotus Notes 4.
There are some incredibly powerful tools out there, some of which are the backbone to our business. Here are a few of them.
Slack: Essential for communication! Slack has been invaluable throughout the last few months, understandably. Not only has it replaced email for many agencies, internally at least, but it’s also a solid solution for file-sharing, triggers and even just adding a good dose of humour to daily work life.
Zendesk: Our go-to solution for support tasks. Zendesk has been around for sometime now, and we just like the way it works and the iterative way in which they update their product with new features and improvements.
DeployHQ: We use this to push projects up to the server. It compiles scripts and minifies them on the fly before they are packaged. This method of continuous deployment means that changes to the codebase will be automatically deployed, but only if they are correct and stable – great for keeping things moving along and keeping the end product up-to-date. This system allows us to deploy to our clients’ servers in the same way we deploy to our own, giving us the power and consistency of modern workflows even if the end-server is restricted. Which leads us on nicely to…
FTP & SSH: Not tools as such, but essential processes for us to deploy. We deploy to our own servers using SSH, which is both speedy and secure. But if we are deploying to a client’s own server we can do this over FTP if SSH isn’t available.
So why do we do things this way?
Our combined experience in development and our natural gravitation towards strong process means that we’ve all brought something to the AndAnotherDay table. Whether that’s a favoured app or a tried and tested way of doing things. By collaborating and sharing, we’ve been able to hone in on what works best, not only for us, but our clients too. Their best interests are far more important than the newest, coolest application.
It’s also a value thing. Everything we’ve written about above has streamlined our internal process, which not only gives us reassurance that it’s working, but it also helps us get the most out of our clients’ budgets. We save time because (yes, it’s a cliché) time is money. A rock solid infrastructure is something to be proud of, and by maintaining and constantly improving it, we are enabling our agency to grow, attract new clients and keep our current clients well-serviced.
Collaboration is key
The final and perhaps the most important point – collaboration. As we said before, this is a combined effort, and one that promotes working as a team, not as a room of individuals. If someone is off sick, if someone is pulled onto another project, or if a new member of the team is onboarded, it’s easy for them to pick up projects, tickets and PRs.
The tools we use, the processes we put in place, and the people who use them all come together to form who we are as an agency, and what we want to be known for – building best-in-class digital products for clients who want to benefit from technology and push the boundaries of their digital offering.
Join us on our journey. ⚡️