Whatever stage your company is at, managing the communication between designers and developers is crucial.
Managing this process can often be challenging and involve seemingly endless rounds of email, Slack messages, and brief meetings.
Designers and developers are equally crucial in making your digital product come to life. But since they often come from entirely different backgrounds and have very different skill sets, the communication is not always smooth and intuitive.
What Is the Design-Developer Handoff Process?
Put simply, the design handoff process is all the actions that the designer or the design team needs to take following the completion of a design to make it available for the engineering team to start implementation. The purpose of the handoff is to align everyone who is involved and deliver all the information needed for the developers to begin coding, or sometimes to give a realistic estimation of what the implementation tasks would be.
Design-Developer Handoffs and the Scrum Process
This handoff process is not necessarily synced or even connected with the Scrum sprint. A design task can take more than one sprint to complete, or it can be broken down into milestones that fit into sprints until it is completed for implementation. So in a sense, there’s not really any point in delivering all the design information before the design task is completed.
Nevertheless, keep in mind that it is still extremely important that there is continuous communication and collaboration between designers and developers before and during each design task. This is something that we will get back to, but it really cannot be stressed enough.
One way to do things is to go with a dual-track approach, with two separate but connected backlogs — one for the design team and one for the dev team: the discovery backlog and the implementation backlog.
The Discovery Backlog
Designers work in a way quite different from developers. They usually work through requirements that they reframe as assumptions, and then they aim to validate them. There are quite a few benefits to not forcing designers into a sprint model since it allows them to work freely within the context and complexity of the requirements they’re working with. The result is validated requirements that can then be entered into a traditional sprint backlog.
The Implementation Backlog
This is the traditional developer backlog where user stories, acceptance criteria, and the correct level of documentation live. When designers and developers have decided what should be implemented together, at this stage, each requirement has been validated for both design and technical feasibility.
How to Create a Great Handoff Process
I will guide you through how to execute a really good design-to-development handoff.
The handoff from designer to developers is a crucial step in developing your digital product, but it’s also a step that can be a little tricky. There are many potential problems during the handoff phase.
The handoff occurs when the finished UI design is ready to be implemented by the development team. As a UI designer, you’re usually really thrilled at this stage, but often, you will find that the handoff presents some bumps in the road.
Now, why is this? Why is it so challenging to hand your design sketches over to the dev team and for them to simply spin them up the way you envisioned them?
Well, there are several reasons why there are often some hiccups in the handoff, and I'll try to cover them all.
Still, there are some tips and tricks that I will share with you to make the handover and iteration process as smooth as possible.
Let’s have a look at some of the common challenges in the collaboration between designers and developers.
Lack of Communication
While designers tend to focus on the look and feel of the user interface, developers are usually more concerned with the practical aspects of how to actually make things work. To understand each other better, efficient communication is key.
This is one of the most critical aspects of efficient collaboration. Often, developers and designers don’t have a shared language and vocabulary to communicate with. This can lead to misunderstandings and a lot of time-consuming back and forth.
One prevalent mistake is that teams wait too long before they start collaborating. For example, the designers often finish complete designs before handing them off to the dev team. What usually happens then is that there will be multiple issues that the dev team will not be able to resolve. If, on the other hand, the developers had been involved from the start, they could have guided the designers toward more feasible solutions.
Implement these five things that will have a very positive impact on communication:
- Have a dedicated channel on Slack with all the relevant parties invited.
- Establish guidelines and routines for your communication.
- Use the same file-sharing and data storage systems, whether that is Google Drive, Dropbox, or any other similar tool.
- Plan regular meetings with all the team members that are involved in the project.
- Make a habit of getting on a call if something is not clear, rather than creating endless email threads.
Not Enough Information
When the UI designer has created a design in, for example, Figma, it’s tempting to just send the link over to the engineers and assume they’ll take it from there. But the fact is that the developers need a lot more information than the mere design sketch will provide. They need to understand the flow and movement of things, different phases of the user journey, and what to keep in mind for each step.
Implement these five things to make sure the dev team gets the information they need:
- Create processes that ensure all necessary components are well documented.
- Share additional information on things like triggers and different stages in the user journey.
- Ask the developers to create a checklist to make sure you don’t miss essential elements.
- Maintain a logical structure and system in your design tool, and add comments wherever there may be room for different interpretations.
- Use status updates in your design tool to show what parts of the designs are in progress, paused, or done.
No Clear Specs
Sometimes, a lack of clear, detailed, and user-friendly mockups creates a problem for the dev team. This is becoming less and less of a problem, though, because nowadays, a wide variety of software is available to help designers provide all those specs quickly and easily.
By uploading the latest design and mockups to the respective online environment of each software, engineers gain access to all the required specs (palette, typography, padding, etc.) that makes the UI easily accessible and ready to be implemented.
Some of the most commonly known software programs in this category include Zeplin, Marvel, InVision, and Abstract (if you are using it as a versioning tool). Also, almost all UI tools, such as Sketch, Figma, and Adobe XD, have their own features for exporting such specs.
Implement these five things to make sure the dev team gets the specs and documentation they need:
- If you are still using a non-UI tool when designing user interfaces, such as Photoshop or Illustrator, do yourself a favor and switch to proper UI software. It makes all the difference in the world for everyone involved.
- Agree on a platform for mockups that is user-friendly for both designers and developers.
- Use a cloud-based service so that all stakeholders can access all information at all times.
- Make sure the design system is implemented and readily available on the platform of your choice.
- Keep an orderly structure in the tool that everyone understands and adheres to avoid confusion and misunderstanding.
No Design System
When there is no design system in place, meaning no style guidelines for the designers to adhere to, it can lead to many iterations. Designers with no constraint can get too creative, and it becomes difficult to create a visually coherent end product.
The solution here is to agree on really clear guidelines and write them down in a shared document that everyone has access to. This way, everybody knows the rules and can be creative within these shared boundaries. The result will be a visually pleasing and coherent end product.
One tool that is great for design systems is Abstract. Many design teams are using Abstract as a centralized system of record and a single source of truth. Another popular tool is Zeplin, where you can publish finalized designs from Figma, Sketch, Adobe XD and Photoshop.
Implement these five things, and it will have a very positive impact on design:
- Use interactive prototypes to help everybody on the team understand what the common goals are and what direction the product is headed.
- Build a style guide for developers and turn it into a design system.
- Agree on a standard nomenclature. Use consistent and logical naming conventions when naming and sorting files.
- Create a checklist so designers always know what elements they need to create and nothing is missing.
- Only keep the versions and iterations that are updated and relevant to avoid confusion and misunderstandings.
The benefits of building a design system and collaborating on it with developers
A design system helps marketers, designers, engineers, and data analysts collaborate quickly and efficiently while maintaining the consistency your brand needs. Not having this in place quickly results in creative chaos.
At the minimum, a design system is a collection of all reusable design elements, UI components, and also the standards that guide their use.
An good design system should encompass the entire design platform. This includes design tools, brand identity, color, typography, ton of voice, and photography. And also UI and app components, code libraries, content libraries, documentation, and workflows.
A design system enables you to design collaboratively at scale, with maintained consistency.
Knowledge Gaps Between the Teams
There are often situations when the developers simply don't know what the designers are talking about and vice versa.
Creating time and space for regular knowledge sharing is an investment that will pay off, both in terms of a better product and happier co-workers. It’s beneficial for all parties if the designers, for example, understand what types of design features require more complex coding. And also, it’s great if the developers understand why the design team is so adamant about certain aspects. Understanding the “why” behind the answers and actions from the other team reduces friction and frustration and paves the way for better solutions.
Implement these five things to lessen the knowledge gaps between the teams:
- Make time for learning and knowledge sharing. Perhaps a lunch-and-learn every week or a breakout session every month?
- Allow time for brainstorming sessions, where the teams can collaborate without the pressure of instant delivery. This will spur creativity and increase collaboration.
- Create a Slack channel named “learnings” or something similar, and encourage everyone to share exciting reads, videos, and podcasts.
- Invite external experts to hold cross-team workshops for educational as well as inspirational purposes.
- Create processes for feedback and follow-up after projects are finished so that everyone can learn both from what went well and from what could be improved.
Silos and Lack of Team Spirit
A sense of a common goal and the will to solve problems together are crucial components of success. But often, developers and designers work in silos and hardly know each other outside of the emails and Slack messages being sent back and forth. This can, worst case, breed unnecessary friction, frustration, and even rivalry between the teams.
The solution for this is making sure the teams get a chance to socialize and get to know each other outside of work and projects. Investing in team-building activities involving both the designers and developers is money well spent, as a great team spirit will make the overall collaboration so much smoother.
Implement these five things to improve team spirit and help your teams bond:
- Plan regular team-building activities. It doesn’t have to be huge things; it can just be an after-work here and a workshop there.
- Hold regular brainstorming sessions with both teams, and encourage everyone to bring their ideas to the table.
- Invite a facilitator for an entire dynamic session around group dynamics, collaboration, and innovation.
- Make sure to create a solid foundation of psychological safety, where everyone feels that all ideas are welcomed and listened to.
Copy Comes Too Late in the Process
A very common mistake in design processes is that copywriting is treated a bit like an afterthought. This means there will be a lot of iterations and back and forth once the copywriters are invited into the process — since they will, understandably, want to have a say as well.
Implement these five things to make sure copy is not introduced too late:
- Invite copywriters in the process from the very beginning.
- Ask your writers what sections and features will help them get the message across in the best possible way.
- Always bring the copywriters into your project well before it’s time to start building the designs — because rest assured, they will change it.
- Ensure you include the writers in the channels and forums that you have for the design team and the developers.
- Develop a checklist and style guide together with your writers for consistency and coherency all through your project.
Animations Are Not Understood or Done Right
Animations play an essential role in most digital design projects, but conveying how they are supposed to play out and what should trigger them can be a challenge. Like all other design elements, it’s vital never to make any assumptions when it comes to animations. Every little detail needs to be communicated clearly, and nothing should be left to chance.
Implement these five things to empower the dev team to create fantastic animations:
- Create a process and structure for communication around animations.
- Include detailed notes and comments about animations when you do the design handoff.
- When needed, create interactive prototypes to show exactly how you intend for things to flow and move.
- Never hesitate to jump on a call and explain how you want your animation to play out in more detail.
- Also, create a feedback loop so that designers learn what types of requests are more demanding and which ones are easy fixes. This will make it easier to prioritize.
Design handoff in Figma
Figma is a great environment for handing over design to developers. A great approach is to create a file for each larger project, with pages inside containing the of the many iterations and versions. This way you only need to share a single link with the dev team. All comments, prototypes, and iterations will remain visible and accessible via that link.
Inviting team members into your Figma projects is easy: just click the blue Share button in the top right corner. You can set their role to either Editor or Viewer.
As developers get access to the figma files, it's good practice to communicate what parts are ready for implementation and which ones are still in porgress. The thought of inviting developers into design files that are still work in progress can sound intimidating, but involving developers early is usually a great way to speed up and improve the handoff process.
The Team Libraryfeature in Figma is a way for designers to create, organise, and share Components and Styles across all of their designs with the dev team.
Collaboration between developers and designers is always a source of friction, and the difficulties usually come down to communication. Which is all the more reason to make it your mission to build confidence and trust among the different teams and team members, and to establish a better way of working as one united team with a shared goal.
The end product will inevitably result from a linear equation (y=x), and it will reflect how well developers and designers have managed to work together and collaborate.