At Skyward we specialise in creating outstanding user interfaces and experiences for teams.
We love creating great experiences for users, but it’s an incredibly challenging task. Getting a deep understanding of users, creating outstanding designs that are easy to use and solve the problems, and then implementing those designs in an easily maintainable way is hard work.
So when it comes to maintaining backend systems, that can be a challenge.
Here’s how we approach that problem.
When do we need to work with backend systems?
Pretty much every website and application has a backend of some kind. Backends are essential for maintaining your data, whether that be content, user data, or something else.
That makes interacting with backends essential, so how do we do it?
Working with headless platforms
For solutions like content management, that have fairly wide-scale solutions, we’ll use a headless platform to create the backend for users to interact with.
This simplifies backend development by allowing us to build a unique and simple user interface without needing to write backend code, which we can then implement in the frontend by consuming the provided API.
Working with clients backend teams
When working on more unique and complex solutions for our clients, we work with backend teams. We’ll be responsible for creating the frontend code, while the backend team will handle writing backend code.
We like working this way because it helps reduce overlap between backend development and frontend development, allowing us both to do our best work while simplifying the codebase, keeping it focused on.
It’s important to note that regardless of how we work with backends, the interaction method is always the same. We work with APIs to read and sometimes make changes to data from the frontend.
This is a standardised approach by Jamstack (aka headless) web development. By using APIs, we can read data in JSON and send back updated versions in that same format, regardless of the backend language or platform being used.
Compared to traditional platforms, that have a wide variety of different approaches on how to interact with backend systems, this makes frontend and backend development significantly easier by reducing their overlap.
How we work with backend teams
Design & Planning
While backend developers often do not need much engagement with the design phase of the project, we’ll always try and involve them in our user journey planning. This stage helps us understand the goals of users, which is often decisions your backend developers may have already made. By sharing our thoughts, this allows us to get on the same page and if additional backend work is required to implement it’s understood at an early stage.
When developing the frontend code and implementing the designs, it’s rare that we need much interaction with the backend team. We work with headless solutions because they create separation between frontend and backend, allowing each team to focus on their area of expertise.
Of course, there has to be some overlap, which is on the API layer and this area is where almost all of the collaboration between these teams will happen.
If your team has an API in place already for interacting with data, we’ll happily utilize that in our frontend solution. We’ll feed back any potential improvements or limitations as we go so that your team can implement essential features in the API that we need to deliver our solution.
If your team does not have an API in place, we’ll guide on what we believe this should look like and have a discussion with them on how best to go about implementing an API that is both flexible and futureproof.
We’ll also assist in documenting this API to make sure that any assumptions made by the backend team in its creation are clear and it’s easy to use by any team.
Ensuring communication works well between teams is essential for building a great final product, and this is no different within coding teams.
When we work with backend teams, we work asynchronously. This means that most of our communication will be through platforms that don’t require immediate responses, like slack, email or loom. These tools help us discuss potential solutions and maintain effective communication without wasting time that could be spent building in unnecessary meetings.
Because we work in a headless approach, the volume of communication teams need is significantly minimised. As the frontend and backend teams aren’t regularly overlapping, we reduce bottlenecks and prevent teams being required to write code outside their areas of expertise.
We’ll always give plenty of notice when we know a feature will be needed but doesn’t yet exist so that the backend have chance to develop it before it becomes essential for the frontend.
Working across teams is hard, especially when doing it across different organisations.
We make it easy by simplifying communication between teams, providing clear asynchronous communication channels for easy contact and ensuring that our work with external backend teams only overlaps in a single place, allowing us to focus our communication efforts in a single area and deliver the best solution we can.
Ready to work with Skyward to simplify your application? Get in touch