Responding to change is a key tenant of Agile Software Development. Predicting change is difficult, but software can be developed in a manner that...
Designing and Developing Together
In all areas of the app development world, designers and developers run into the issue of not being able to communicate efficiently. At Big Nerd Ranch, we’ve encountered this problem before, but have improved our communication over the years. Recently, my colleague Kristin Marsicano and I sought to identify what designers and developers at Big Nerd Ranch have done to improve our ability to communicate effectively with one another.
We’ve found that our success is derived from years of improving three key areas: our communication checks and balances, our common documentation, and our ability to be good human beings to each other.
At Big Nerd Ranch, we’ve built our process to include checks and balances between design and development to ensure thorough communication between both groups. Designers at Big Nerd Ranch make sure to get the developer’s approval on a design before sharing it with the client team. On a project, there are few things worse than infeasible designs, and this check helps eliminate this problem from the start. Developers will also demo builds to their designer before seeking client approval also, which similarly helps ensure the build matches the design that both groups agreed on before presenting it. Both of these feedback loops allow our team to come up with solid solutions while minimizing the risk of miscommunication. Since we work in an agile environment, these checks are all centered around a sprint, so this type of communication happens frequently.
While our process helps us communicate a clear and unified message, our shared documentation keeps this message intact throughout the lifespan of a project. At Big Nerd Ranch, the documentation shared between design and development is centered around the idea of maintaining a single source of truth throughout the project. We often use what we call an App Map to, at a high level, name and frame the scope of each screen that will be represented in the application. Because this works as a single source of truth with screen naming, design and development can refer to the common terminology in this document when talking about details of the project. Common naming is also a core tenet when we begin working on styles together. At Big Nerd Ranch, we keep a visual, atomic style guide for each project that contains easy-to-remember names for all colors, type styles, UI components, and templates. While this does contain important design details of each component of the app, it also serves as a glossary and index for these components. We strive for our style guide to closely resemble the build in both design and language, and we know we’ve reached this goal when you can look at the code and (just through naming conventions alone) can identify the corresponding component in the visual style guide.
Kristin and I discovered that all of these process and documentation improvements have come from years of designers and developers just being straightforward with each other. As projects have gone on over the years, we’ve identified and communicated our pain points with each other. While this sounds painful, it’s actually extremely fruitful, but couldn’t have happened without a collective agreement to 1.) empathize with one another, 2.) assume positive intent, and 3.) check our own egos. While these core values have been crucial to improving our communication collectively, we still individually rely on them in our day-to-day communication. With any process there will always be problems, and these problems will require us to be good people to each other in order to solve them.
Ultimately, we found all of these improvements to design and development communication were the result of our company values. At Big Nerd Ranch, we value the success of our projects, and that is an overarching and unifying goal for all teams. Improving our communication is crucial to these core values and is, as we discovered, par for the course of doing excellent app development work.
For more information on design and development working together successfully, please check out the talk that Kristin and I gave on this subject at Droidcon NYC 2016. Although we cover details specific to Android design and development, the core themes still pertain to any designers and any developers willing to learn to work better together.