Last Thursday, we hosted our very first webinar with FullStory’s Josh Teague: “Engaging engineering in design.” Josh shared best practices gleaned from his 10+ years as a product designer, 4 of which were at Google.
Here are a just a few of the many pearls of wisdom he shared. Want the full story? Watch all of “Engaging engineering in design.”
What is design?
First, Josh shared 2 key insights into the nature of design:
- Design is iterative problem solving for human need and desire.
- “Creativity is just connecting things.” –Steve Jobs
— Laura Mikowychok (@lmikowychok) February 19, 2015
Tips for working with engineers
1. Engage sooner
The earlier you involve your engineering group, the quicker you’ll learn where the edge cases occur and what constraints you’ll face. Don’t start with the constraints, but if you familiarize yourself with them, you can save yourself some pain down the road.
Get real as fast as you can. Get your designs into the environment they’ll live in. It’s a sure-fire way to not waste time on a doomed design.
2. Provide the right deliverables
There’s no one right kind of deliverable. You’ll have to figure out what works best for your team. If you haven’t experimented with workflows and deliverables yet, this is a really easy place to start, and it’ll quickly uncover the types of deliverable engineering needs most.
For example, try sharing a single interaction in isolation, and in each of its states, without context. Showing the entire design can often lead to missed details.
3. Commit code regularly
Designers should be committing code. Coding flexes a different muscle in your brain.
Design is all about the long slog of problem solving. Code, on the other hand, is full of quick wins—and equally fast failures—because it either works, or it doesn’t.
When designers handle the CSS and HTML, engineers can stop switching contexts. That way, engineers can focus on the harder arcs of engineering problems while designers get the details right.
4. Get cozy with constraints
Constraints can be a variety of things: lack of time, lack of team members, or lack of budget. The important thing is to know them up front. Have a chat with engineering, and be painfully explicit about all of the weird corner cases for a given interaction to see if your design is possible.
Embracing edge cases can lead to a design breakthrough. The irony is when you code, you check for the edge cases first. When you design, you get to them last.
The best design process includes, informs, and pushes engineering throughout.
Like learning stuff? Then check out our next webinar, “The 7 most common usability issues,” with UserTesting’s Stef Miller.