I’ve always thought there was a hint of mystery about how a digital agency operates and what it’s like to work at one. More importantly, what it really takes to become a top agency grade developer or designer. Having left my agency job in UAE after 5 years and joining the Pixel Kicks team has given me a unique perspective into the agency culture in an entirely different country. Some of them new, some not.
Getting the job has been roughly the same as getting any other job really. However, what matters is who you get interviewed by, and whether they can relate to the expertise required to do the job. I was lucky in that regard because Chris, founder and MD of Pixel Kicks had been running this company from day one. You want to be interviewed by people who actually know what they’re talking about. I was a little nervous nevertheless.
The nervousness, particularly comes from the fact that technology is moving at such a fast pace that it’s really hard to decipher what an agency is asking of you from the job spec. On the other hand, it’s not really possible to list all the specific skills and knowledge an agency job requires either. And there’s a reason for that, the whole point of a digital agency is to deliver products that are too expensive for companies in the way that they would have to hire a set of people only to get this particular project done, or too new or unknown to be explored on company time without guaranteed results.
This is where the agency comes in. When they say in a job ad that no week is the same and that everyday is more exciting than the previous, what they mean is that you have to deal with things you didn’t know the last week and learn how to do something today to be able to apply it tomorrow. Every project you take on is probably going to be somehow different than the last one. As long as you know the basics, and preferably have got some experience, you’re a “good” candidate. What makes a good candidate “great” though, is their ability to use their accumulated knowledge to quickly grasp new concepts and make sense of new platforms and frameworks. That’s what’s new and exciting about the job, and that’s the challenge.
Here are the a few things I’ve picked up since I’ve joined Pixel Kicks which, in my humble opinion, transcend countries and applies to any digital agency jobs regardless of the location.
1. Agile Development:
There’s a lot of buzz word surrounding the phrase Agile development. The problem is this – we’ve got “Agile” which is a methodology in the context of software development. Then there’s “agile” development, using the word “agile” in a literal sense. Here’s the thing, Agile methodology doesn’t sit well with design agencies, mainly because of the size they usually come in and because they have to work with fixed budgets and on not very well defined projects. Maybe I’m wrong, but that’s another story. I’ll list a few links below if you want to read up on Agile development.
When I use the word agile, it simply means being agile, being able to quickly adapt to the needs and challenges to complete the project. Being able to set up a non-linear workflow which can go back and forth and side to side to accommodate new changes and challenges. That’s what it really is, not a method but a mindset of managing and developing a project that can deal with the unforeseeable. Requirements change, the platforms we use gets updated, ideas develop as the project progress; there is no works-for-all solution.
There’s no we”ll start with this template based on this platform and we’ll use such and such language to develop particular functions and interactions. You may have started with the idea that you’ll use WordPress and jQuery but halfway through the project you might be forced to use Angular to put it all together, it’s just how it works. It’s a fast paced world. It doesn’t happen all the time mind you, but the point is you have to be prepared for when it does.
Here at Pixel Kicks, when we start working on a project, more often than not, the features may not be well defined and we’ll have to come up with new ones, suggest them to clients, work on discovery and concept designs all at the same time. This can be good at times because it allows us to experiment with features and options, and get creative. However, it does require being able to face rejection and sometimes, failure and going back to the drawing board. We make sure that a tremendous amount of focus goes into understanding the vision and goals a client is aiming for. It’s what reduces conflict of interest and bias down the line.
Sometimes there’s no set theme unless it’s an established brand, so the process of branding, concept design, user experience must be kept in line with the features and functionalities we’re hoping to implement. We usually don’t separate design from development anymore, both are so intertwined, especially because of our WordPress expertise, that design and development happen in parallel, not one after another.
Personally, to be honest, unless the project is medium or large, I’m not partial to doing design/wireframe iterations and then moving on to the development phase. In a lot of cases, once the concept designs have been approved, I personally like to work with a design language or theme when I develop rather than a complete set of designs. It enables me to create a more modular design that can be scaled up and down, making it future-proof. I know it’s probably not the best solution but which one is really.
Note: I’m consciously avoiding “Agile” terminologies such as Sprints and Scrums and so on because it’s a mess really when you try to go into explaining how it relates to web projects. However the goal remains the same, delivering a working product as efficiently and as quickly as possible. Fact of the matter is, a single project development methodology simply isn’t going to work for projects of vastly varied complexity.
Something interesting to look into is Spotify Engineering Culture which is sort of a mixture of Agile and Spotify’s own thing. It’s not just Spotify who uses it anymore, last I heard Sky Digital is using the same methodology to manage their products and teams.
2. Problem solving:
This is very obvious but just as important. Problem solving is a life skill that comes in handy regardless of what industry you work in; especially so in a digital agency environment. When you’re beta testing a website before launch, a single problem or bug might turn out to be a whole series of problems. It’s very important to be able to sift through your own code. find the culprit and fix it.
Sometimes it might seem like a huge task because you’re days away from launch and time’s running out – but that’s ok, as long as you know how to break the problem into smaller pieces and fix them one by one, it’s not really a huge task at all. Trying to tackle a massive problem in one go is inefficient, it wears people out and makes them take unnecessary breaks. Always try to find the simplest solution, define the problem first, check if it actually exists or it’s simply an unrelated problem. Until you actually define a problem, you might be treating only symptoms rather than the disease itself.
At Pixel Kicks for example, if we receive client feedback stating something isn’t working when they go to a website on their iPhone. The first thing we do is try to recreate the problem on a couple of our own devices before looking into the coding. That eliminates chasing a problem that might have been caused by an unrelated issue on a single iPhone. That’s just a simple example, but it applies to major problems as well. The bigger the problem, the complex the solution. The quicker we find the root cause of the problem, the sooner we fix it.
3. Common template:
Different agencies have different workflow but you must have your own as well and align it with the agency you work for. As soon as a contract is signed and you’re put on the job, there needs to be a set process as to how you approach the project. It gives you a sense of control and grasp on the situation because otherwise it might seem too alien or too complicated sometimes. This boosts confidence and calms you down. Let”s take the web development projects I work on for example, as soon as I’m on the job, I start off by setting up the workflow that I use for all other web development projects – you set up the folders, you set up the version control, set up your task runner and go from there because fundamentally, these steps are going to be roughly the same regardless of the size or scope of the project.
Get started, there’s no point worrying and moaning about it, it’s your job.
At Pixel Kicks, we use Grunt to do the usual task running for us, things like compiling SASS, combining and compressing files and whole host of other small things that adds up to save quite a bit of time. We develop our websites on a local server but we’re using Git, BitBucket and SourceTree to keep the files on cloud and preserve version control in the process. Which ultimately helps us with staging and deploying as well. It’s just a common template here, we get a project, we set everything up, Git, Grunt and the rest of it. I like that.
4. Collective knowledge:
Here’s another reason why hiring an agency rather than an individual pays off in the long term – a digital agency can make use of the collective knowledge of more than one person. There are people in the company who are dedicated to digital marketing, SEO, ecommerce or marketplaces even. It’s easier and more efficient to simply ask for an expert’s opinion instead of scouring the internet and taking a blind shot only to regret in the long run. If you’re working on a project, whatever it maybe, having an office-wide discussion can lead to really unique ideas. Your knowledge on something could be biased, incomplete or simply outdated. A simple meeting could lead to a lot of money saved in time and in resources. I’m no sales expert but I suspect this is what perspective clients count on too.
It’s also very important to be very upfront about what aspect of the project you think is going to get tricky for you. If you think implementing a feature is going to be difficult or if you don’t know anything about certain aspect of a platform or a programming language, you discuss it with the team instead of simply going along and hoping for the best. A digital agency usually doesn’t hire someone because they know every single platform, scripts and languages out there, they hire someone because of their problem solving skills and to some degree, character. If you’re upfront, the team might come up with an alternative and easier way of achieving the same goals. If you don’t apply it in practice, you’d still be an individual working by yourself and missing out a whole host of knowledge available to you.
At Pixel Kicks, we’re quite confident about each other’s abilities which usually puts us into autopilot when it comes to distributing workload. However that doesn’t mean we don’t get stuck and whenever we are, being upfront about it gives us the ability to have at least another mind working on the same problem or at the very least, have someone suggest an alternative solution or point to a site or forum thread that might help. Having SEO experts and ecommerce experts under the same roof means that an answer might be just a single Slack message away.
This is probably the most overlooked aspect of a project when you’re on a deadline. However, this may well be what sets an agency apart from the rest. If a successful launch is not ranking well on Google, it might not be so successful after all. This could happen either because of optimisation issues or SEO. Although the latter is a whole other service but the former is the sole responsibility of the design and dev team. Simply put, all other factors being equal, if a website doesn’t load fast enough, Google will list faster websites first. Of course there’s the keyword business amongst many other factors, but Google will rank the faster loading site above the slow loading one, especially when it comes to mobile web. Google rewards user experience.
There are a few ways we at Pixel Kicks, make sure that sites are well optimised and score well on Google Pagespeed Insights or GTMetrix.
Pagespeed Insights itself will give you tips and clues about improving the score, whilst GTMetrix provides more detailed analysis and might come in even more handy if Pagespeed is confusing you. There’s a fine line between optimised and bad user experience though. We try our best to make sure it’s a compromise between user experience and pagespeed score. Whatever the score may be, at the end of the day our focus is to deliver a product that is fast and usable by base consumers. I recently made a post about optimising WordPress websites, which might come in handy if anyone’s trying to improve their pagespeed score.
Here’s a few useful resources:
- Above the fold content: https://css-tricks.com/authoring-critical-fold-css/
- Pagespeed Insights: https://developers.google.com/speed/pagespeed/insights/
- GTMetrix: www.gtmetrix.com
- Web Page Test: http://www.webpagetest.org/
- How to speed up a wordpress site: https://www.pixelkicks.co.uk/blog/speeding-wordpress-website-like-champ/
Thanks for reading.