Just about every technology-enabled company is designing, building, and deploying products these days. You already feel the pressure to ship faster, but leading in your industry is no longer just about speed. It’s about impact.
If you’re struggling during the design or development phases — or both — chances are good that your challenges have something to do with bottlenecks. Design-development bottlenecks don’t just prevent you from shipping your best work; they block innovation. The good news is that you can take back control to reduce friction.
What’s behind design-development bottlenecks, and who’s to blame?
Designing and developing products can be very stop-and-go. Designers might be trucking along to the finish line, only to run into a roadblock. Roadblocks might be due to mismanaged files, late-breaking feedback, news that the design isn’t technically feasible, and on and on. Those screeching-stop moments may lead to wasted time, giant left turns, redesigns, strategic overhauls, and delays. Ultimately, bottlenecks reduce the potential impact of the outcome and the process.
For most organizations, bottlenecks are the status quo — maybe you’ve become accustomed to holdups as part of your company culture. For others, slowdowns and momentum blockers are the awkward elephants in the room, and for many more, bottlenecks are cause for constant frustration. These all-too-common traffic jams generally lead to slower progress in the short term and burnout in the long run, especially if you don’t catch the warning signs early. And bottlenecks tend to get worse at scale.
Who’s to blame for your product development woes? I believe pointing fingers leads to even more problems and toxic culture. The only way to overcome bottlenecks is to recognize that they exist, talk about them, and start working on solutions together.
If any of this is hitting close to home, I feel your pain. I understand the complexities and pressures of product development all too well. Our collective frustration and discomfort is one of the reasons we created Abstract. Our mission is to alleviate the chaos of product development, bottlenecks included. Considering the rate at which the world is changing and the way that technology is adapting to the shifts, product development will continue to be challenging.
Reducing bottlenecks between design and development is an actionable way to create a landscape where ideas flow. We realize that removing bottlenecks is easier said than done and can be much more difficult in large organizations. We’ve been there ourselves.
We also believe that everyone has to start somewhere, so let’s dive in to five practical ways to start transforming the product design process.
1. Identify the problem
Articulating problems goes hand in hand with creating solutions. The better you define and align on the problem with your team, the easier it is to fix. Effective designers and developers are not only good at their respective disciplines, they’re also skilled at precisely communicating the problems they intend to solve. They're able to identify the biggest risks and constraints they’re working against within a specific problem set.
Effective designers and developers are not only good at their respective disciplines, they’re also skilled at precisely communicating the problems they plan to solve.
Get clear on your answers to these questions:
- What’s the problem you’re solving?
- Who’s the audience you’re solving it for?
- What constraints, issues, or concerns are you aware of upfront?
- What are the results of solving the problem?
At Abstract, we encourage our product designers and engineers to frame their thoughts on digital paper before they start a new file or touch a line of code. Getting on the same page upfront makes follow-up conversations more efficient because you have a foundation of shared understanding.
2. Define expectations and outcomes
Mystery is fun and all, but unpredictability in product development is a time-waster. If you’ve ever found yourself thinking, “Why is this so difficult?”, unpredictable patterns of work may be to blame. With quick sprints, it’s easy to jump into a project without setting expectations for the work and outcomes, but you might pay the price mid-sprint. Defining clear expectations for outcomes and how you work together can make or break the collaboration.
Avoid confusion by communicating expectations about who’s doing what, when, and how. The DACI method of identifying the Driver, Approver, Contributors, and Informed participants helps provide structure in group decision-making. As for developing a collaborative rhythm, predictable cadences are a good way to engage with uncertainty in software development.
3. Proceed with a purposeful process
Product development is a creative process, and creative processes are often messy. To a point. We’re all for whatever gets your creativity flowing, but creative chaos can only take you so far. If you want to scale design and move big ideas forward, faster, you must develop frameworks and infrastructure that reinforce an intentional process.
In a world in which collaboration is becoming a skill in and of itself, thoughtful design systems are fueling the future. Design systems are a unified way to design, build, and maintain user interfaces. APIs give developers rich access to design data, and prototyping in drawing tools allows a broader range and higher fidelity of design exploration and communication.
Workflows exist as containers that give work structure and allow it to be captured throughout the “messy” process. We developed Branches to function as the primary container for the design process in Abstract and the foundation of capturing many streams of work. Branches enable you to gauge just how deep in the mess you are at any moment, and then proceed confidently to the next step.
4. Invite the right cooks into the kitchen — even if they don’t know how to cook
The complexities we’re dealing with in software and UI are too much for one person to wrangle. You need a team to unpack big problems. Kitchens can get hot and crowded, fast. But what if we told you that your best cooks don’t have to be in the same kitchen at the same time? They can work in their own respective kitchens simultaneously.
You can also invite “taste testers” to provide feedback before it’s too late. One of the things my cofounder Josh remembers most about working for Twitter was receiving feedback from colleagues who weren’t on the product or design teams. Some of the best ideas and most intriguing questions came from people you’d never “traditionally" expect. They asked unbiased, eye-opening questions because they could observe product development without being deep in the day-to-day work.
Non-experts sometimes suggest ideas that flip an initial problem on its head. By increasing the visibility and transparency of how design is practiced and giving them a way to offer their perspectives, you increase the amount of people who can offer new ideas and spot more problems.
5. Eliminate surprise and exasperation
Surprises are fun for birthdays and marriage proposals but not so much for design functionality. A number of aspects of product design are disconnected and require a lot of human effort to maintain. Much of the corresponding surprise factor boils down to ill-timed or missing communication or lack of research and data.
One of the “easiest” ways to eliminate unwanted surprises is to share your work early and often. It goes without saying that the tech industry has to move quickly, but moving quickly without a record of decisions and steps along the way is a recipe for unwanted surprise. Proactively sharing and discussing progress of work throughout the design-development process allows teams to remain agile.
The future (of design) is wide open
These five suggestions will take time to implement but will pay off in the end. Every organization is at a different stage of design maturity, so start where you are. Talk about what works well and what doesn’t. Start documenting your processes, iterate, get collective buy-in, go forth, and ship the impact you envision.
We foresee a future defined by those who bridge the gap between design and development and create robust systems that capture the messiness of the work we do.
Product designers and engineers may work on different teams, but at the end of the day, they share goals and create products together. Both also resonate with a deep level of technical and emotional difficulties on the daily and probably agree that change is welcome. I deeply believe that the world is moving in a more open direction. We foresee a future defined by those who bridge the gap between design and development and create robust systems that capture the messiness of the work we do. This is our open invitation for you to join us.