Start by roughly sketching out major pages and layouts. Work closely with our content strategist to lay out a low-fidelity prototype referencing actual or virtually similar content. That way, we’re not just making a bunch of grey lines symbolizing ‘content’–we’re actually building around the expected amount, type, and organization of content, without actually getting distracted by it. Another way to reference this type of design is to create a “live” grey box wireframe that shows the depth of functionality and lets us flesh out the major components of the site or app without boxing us into defined visuals. We’re using Travis Gertz’s Live Wires prototyping method which basically allows us to build a live HMTL/CSS frame that we use throughout the project. It allows us to apply our design straight to the code without throwing anything away.
Note
Here are some of the basic differences between wireframes and prototypes:
- Traditional Wireframes allow you to set up your page layouts and hierarchies, but you need to create copies for each page type and links, buttons, etc. are inactive. Basically you’re creating an ‘image of your site or app’. Clients can’t see how the functionality works together or how big the entire site or app really is.
- Low-fidelity prototypes allow you to navigate through the entire app or site to see all the components without seeing a defined look and feel. Makes it easier for clients to focus on the moving parts instead of what they might look like.
- High-fidelity prototypes is like your front-facing interface without a database or CMS hooked in (too detailed to show a client until everyone determines an early prototype direction). Once the look and feel and low-fidelity prototypes are approved, styling and the reveal of actual content in the design turns this into a high-fidelity version which is still flexible but ready for design approval before development.
We let our content, sitemaps, and layouts stay fluid during prototyping to prevent any design decisions from being set in stone. We iterate and stay experimental by alternating between in-browser designing and sketching with good old-fashioned pens. The trick is to stay as low-fidelity as possible, using grey lines in place of actual text to keep the client focused on the overall hierarchy and flow of information rather than the look and feel at this point. We also write our prototype so that we can use the same code throughout the project.
We’re working to standardize our naming conventions in our HTML/CSS code so that it will translate if/when a mobile site needs to evolve (often with a wrapper like Phone Gap or other technology that makes a site into a non-native app). We may be able to save time by having consistencies in the way we refer to elements, preventing the naming conventions for mobile and sites from clashing when translating from CSS to Cocoa.
Present a low-fidelity prototype to the team. Be sure to get the feedback of any UXers, developers and content strategist to make sure everyone is aligned with core components and the scope is the same. Bring another designer in for additional feedback. Give the team enough time to provide feedback internally before showing anything to the client.
Now the designer and the project manager present the prototype to the client in person or over a screen share. Walk clients through the project, explain the purpose of the prototype and feedback we’re looking for so they can share the right information with their organization and feel comfortable navigating the site or app. Refer to the signed agreement regarding how many rounds of design revisions were approved. If additional rounds are requested by the client, have the team provide an estimate and get approval before proceeding. This should also be noted in the Monday client update as “New Requests.”
Note
Cross-reference the documents created in the definition stage with the client while presenting the designs. Things like the sitemap, components list, and content docs will give them a clearer picture of how things fit together. Minimal changes to the site design are fine, but anything that results in changes to the sitemap, page layout, or page hierarchy needs to be noted for estimating and the requests added to the Monday client update as “New Requests.”
Ask clients to provide written feedback in Basecamp based on what’s working for and against the design. Gently guide them away from providing solutions for what’s not working; if they clearly relay the issue, we’ll provide the solution.
Once the team gets written approval, you can start developing the style guide and cementing the look and feel.
The first step in UI design is for us to gather any branding guidelines & visual assets from the client and make an inventory of constraints to guide our design.
Next, we set base typographic decisions in the browser based on client guidelines. Typecast is a fantastic tool for making and comparing typographic decisions in the browser. It’s a good idea to begin with the idea of the perfect paragraph...
- Set the font
- Size
- Line-height
- Maximum line length
- Color
We can use these as the basis for all other typographic and layout decisions. This will make sure we create a tight, typographically sound design where elements are tied to each other re: size and proportion. Here’s a quick reference to basic typography.
Next, we design a grid that will work across all viewport sizes and provide a robust framework for our content. Decide on a modular scale to reference to assist with determining proportional sizes for headlines, grid/gutter units, layout elements, spacing, etc.
Instead of thinking in page templates or sections, instead we begin designing individual components for the app or site in HTML & CSS using an HTML style guide or something like Brad Frost’s PatternLab. We document small things like type styles, form fields, buttons, links, images, then move up to combinations of elements like forms, callouts, tables, and repeating content modules.
A detailed style guide is a great preliminary design deliverable we present to our clients. It lets them see how we want to move forward with the look and feel, and it clarifies how elements work with each other before cementing anything. It also gives clients a tool they can reference in the future when they want to update their site or app. The best thing is that it lets them provide early design feedback so we don’t have to back up when we apply these attributes to the prototype.
Brad Frost’s Atomic Web Design is a great reference for this type of approach.
After the style guide is approved by the client, we apply the CSS written for the style guide to the Live Wires prototype to begin designing in-browser. Most of our design decisions are laid out and we spend the rest of our time fine-tuning our design and fleshing out important details, page by page.
Our content strategist applies the text in basic HTML to the high-fidelity prototype while our designer applies the style guide attributes to the rest of the design. A content first approach means that we’re not ‘selling’ content development. It’s simply part of the design process. When clients provide the content themselves, we work with an experienced copywriter supplied by the client to make sure we’re aligned on our content and design goals. Lorem ipsum is a fairweather friend and will not inform how much content will actually need to go on the pages. Avoid it, except maybe in places where microcopy show us when additional copy needs to be made.
Present a low-fidelity prototype to the team. Be sure to get the feedback of any UXers, developers and content strategist to make sure everyone is aligned with core components and the scope is the same. Give them enough time to provide feedback internally before showing anything to the client.
Note
We usually design out a few core pages with the anticipated look and feel and get ready to show it off internally and then to the client in our first round of design. This prevents us from going too far in a particular design direction and getting feedback that forces us to change direction, eating up our budget. It also gives us a chance to review our available budget early on and re-estimate if necessary.
It’s also a good idea, no, a GREAT one for designers to review their code before any formal QA process. Be sure to cover this time when estimating for the scope.
Round One: It’s easier to do a live walkthrough of the design with clients, then the project manager and designer follow up with screenshots of specific pages at different screen sizes (we usually stick to desktop and mobile for round one) and a written design rationale afterwards. This removes the environmental inconsistencies of the client viewing with different browser types, versions, and seeing bugs since we don’t do browser testing on a moving design target (so many visual elements are apt to change). Make sure to explain the reason for the screenshots, include our Project Manager so he or she can guide the walkthrough and the designer is there to answer more technical or creative questions.
Ask clients to provide feedback based on what is and what’s not working with the design. Gently guide them away from providing solutions for what’s not working; if they’ll clearly relay the issue, we’ll provide the solution. This improves the ability to act on the input and allows the client to respond pragmatically. Record any additional requests by the client so the team can track them and budget for them, if needed. Clients provide written feedback in Basecamp so we can either re-estimate new requests or adjust our design direction and resubmit.
Round Two: Now that we’ve adjusted our designs and made sure we have enough time estimated for round two, we flesh out the rest of the pages and send our final round of designs in screenshot form to the client and get written feedback and approval in Basecamp. Additional revisions can be estimated when the client would like to see more rounds of changes.
We try to work closely with the content strategist, user experience team, and developer to support the content, user flow, and functionality of our designs.
Note
Refer to the signed agreement regarding how many rounds of design revisions were approved. If additional rounds are requested by the client, have the team provide an estimate and receive approval before proceeding. This should also be noted in the Monday client update as “New Requests.”
Once we receive written approval, we tidy up the front-end code, apply any last tweaks, and package up our files for development. We schedule an internal development meeting to discuss database, CMS needs, as well as any other quirks or areas that need extra love and attention. We’re now ready for development.
Social Stuff¶