Bummer! This is just a preview. You need to be signed in with a Pro account to view the entire video.
Start a free Basic trial
to watch this video
Design Decisions Through the Lens of Performance
39:33 with Yesenia Perez-CruzWe design sites for a myriad of devices with varying connection speeds. More and more, we're discovering the importance of fast page speed. Even 100 millisecond delays in load times negatively impact user experience and conversions. The problem is, making a site fast and lightweight is often at odds with other design goals, like creating visually immersive experiences or meeting all of an organization's rich-media ad requirements. While a stripped down site with no images, set entirely in Arial, is certainly going to be light, it's not going to accomplish all of our client's business goals. In this talk, we'll discuss how we can make smarter design decisions, from the beginning of a project, to ensure that our sites perform well. Some topics Yesenia will discuss are optimizing typography and UI, responsive images, and how to get clients on board.
-
0:01
[MUSIC]
-
0:15
>> [APPLAUSE] >> Hi, everyone.
-
0:19
So.
-
0:20
The topic of performance is something's that super interesting to me
-
0:24
as a designer.
-
0:25
In the past couple of years I found that there's a lot of
-
0:28
technical discussions about how to implement performance.
-
0:32
But what I've found that, from my perspective as a designer, there are so
-
0:36
many things that I could do in my process to impact the performance of a website,
-
0:41
so we just gonna share some of that with you today.
-
0:44
So my name is Yesenia Perez-Cruz.
-
0:46
I am a designer based out of Philadelphia, Pennsylvania and
-
0:51
I'm talking to you guys here because I used to be a reckless designer.
-
0:56
You might know what I'm talking about a designer that only cares about whether or
-
1:01
not her design looks pretty and adding kind of features and
-
1:05
embellishments without considering the consequences.
-
1:09
So a couple years ago I was working on a website for
-
1:14
a music festival and online voting show, and it was all about
-
1:20
creating this community for superfans and capturing the spirit of the south.
-
1:26
So the art direction for the site was hand done, full of weathered textures,
-
1:31
and layered textures and a lot of kind of little elements.
-
1:36
This site also has to encourage voting and social sharing.
-
1:41
So there are lot of social plugins and fan feeds and the type of element and
-
1:46
then there were a lot of required scripts.
-
1:49
So ads and the video stream and social plugins and
-
1:54
the design process kinda went like this.
-
1:58
Where I would present a design and the client would come back and
-
2:02
say this is great but it could use even more texture.
-
2:05
And I would be like okay that sounds great.
-
2:08
And they would say we could really
-
2:11
use a parallax background here to really make it pop.
-
2:15
And I would be like cool that sounds great,
-
2:17
let's add a little movement to the background here.
-
2:19
And once the site launched, we felt like we had created something successful,
-
2:25
there was a lot of fan activity and voting and it was nominated for a webby.
-
2:30
We thought that we had done a great job with this site.
-
2:35
And I didn't even know that I had done anything wrong until a couple
-
2:40
months later when another designer referenced the site in his talk.
-
2:45
And he referenced the heavy slow design.
-
2:49
This was a responsive website and
-
2:52
it takes two minutes to load on my tablet and 5.9MB.
-
2:57
So I wasn't trying to be a jerk.
-
3:02
I didn't set out and say, I'm gonna create something that's gonna be huge.
-
3:07
I wanted to create something that was beautiful and engaging and
-
3:10
I did that, but the other
-
3:12
side of that was that I also created something that was really slow and heavy.
-
3:18
So, you maybe thinking, what are you doing here talking to us about performance.
-
3:23
You just taught us that you design this super heavy slow site.
-
3:29
And fair enough.
-
3:31
The reason I'm here because I'm a designer and
-
3:34
designers tend to get a bad rough when it comes to designing for performance.
-
3:39
You may here these things like, the designer added five carousels again and
-
3:45
even worse I didn't get to see it before the clients are and they loved it and
-
3:52
now we've to figure out how to make this bloated design load quickly.
-
3:57
And but here's the thing I never set out and
-
4:00
said, I'm gonna design a super slow site that's gonna be a pain to code, and
-
4:04
no one will wanna use, and I don't think anybody does that.
-
4:08
What I've found is that slow, heavy sites are a result of poor planning,
-
4:14
poor communication and poor awareness.
-
4:17
Not knowing the consequences of what you're adding to a design.
-
4:24
In the case of the site that I was just talking about, we had a launch date.
-
4:29
There was a date for the show when the site had to go live, and
-
4:33
as timelines and waterfall timelines go, contract negotiations ran long,
-
4:38
which made research and design ran long.
-
4:40
So there wasn't time at the end to optimize for development.
-
4:49
The challenge of design is it's this balancing act.
-
4:53
I'm designing these experiences for my clients, and I have to take
-
4:57
everything that I hear from user interviews and stakeholder interviews and
-
5:00
create Something that's beautiful and functional but sometimes,
-
5:05
fast, functional and light-weight can be kind of contradictory
-
5:10
to creating something that's beautiful, memorable and on-brand.
-
5:14
Especially when client is coming to me and saying,
-
5:17
you know, our new branding has 6 typefaces.
-
5:20
Or we really need a carousel to make the design pop.
-
5:24
So what I've found is that it's really important for
-
5:28
designers to reframe the conversation just as we would when we're considering
-
5:33
good user interface design, good pathways for a user.
-
5:38
And if they ask for a carousel I’ll go to my developers and
-
5:43
ask how many requests is this carousel gonna add?
-
5:46
Or how will perceived performance be impacted if we add a new font?
-
5:50
And what all this does is we’re considering the overall user experience,
-
5:55
not just the visuals.
-
5:59
And sometimes we're gonna have to compromise a little bit of that nuance,
-
6:03
if it means that it's gonna create an overall better user experience.
-
6:07
So if I had to go back in time to this design,
-
6:11
I would think can we remove the parallax background, or simplify some type styles?
-
6:16
If that means that more people are gonna be able to engage with the site.
-
6:22
And also we talked about this waterfall process and
-
6:25
it doesn't really work if we have a set data the site has to launch and
-
6:30
we've run out of time to optimize something for performance.
-
6:33
So we need more nimble cross-disciplinary teams that are working concurrently so
-
6:39
we can get ahead of possible performance issues.
-
6:43
Because good performance is good design, and it's really important for
-
6:48
designers to be championing performance in their work.
-
6:53
So performance, from a technical perspective it's
-
6:58
how quickly your websites load on your user's screens.
-
7:01
But it's also how quickly you can deliver your sites and
-
7:05
your services to your audience.
-
7:07
And that's crucial because your audience wants that content fast.
-
7:13
There's been a lot of studies and key studies about expectations of a user.
-
7:19
We hear things like, online shoppers expected pages to load on two seconds or
-
7:24
fewer and then at three seconds, the large share abandon the site.
-
7:28
Even worse, they will go and
-
7:30
visit a competitor if its faster by 250 milliseconds.
-
7:34
That's not that much time.
-
7:37
And if we don't respect our users' time and bandwidth,
-
7:41
we're gonna lose them, and this is really crucial because we're
-
7:45
thinking about expanding our services and our content to global markets,
-
7:50
and global network speeds vary greatly so we really need to consider
-
7:55
a performance as something that would really considering for our users.
-
8:02
So from my perspective,
-
8:05
performance is impacted by a lot of things that I have decisions on.
-
8:11
Things like images, or custom web fonts, interactions, stylesheets.
-
8:15
Some things that are a little bit out of my control like
-
8:18
third-party scripts that end up being kind of requirements for the site.
-
8:24
So I'm just gonna get into how I design for performance and
-
8:28
how I've done it for a couple of clients in the past year.
-
8:33
So really I'm gonna keep saying this but
-
8:37
thinking about performance from the very beginning of a project is crucial, and
-
8:43
that means that you're talking about it throughout the entire project.
-
8:48
But, you can't just be thinking about it, you need to actually set a game plan and
-
8:51
be able to stick to it.
-
8:53
So, establishing a performance budget help you stick to
-
8:56
the goal that you have in mind.
-
8:58
And then also communicate and document.
-
9:01
So this means that I am constantly talking to the developers on my team.
-
9:06
I'm constantly talking to my clients about a request that's come in and
-
9:11
how that's gonna slow down a site.
-
9:15
So the first step is making performance a project goal.
-
9:20
So if we go back to this kind of generic
-
9:25
process where we have a bunch of steps that are following each other and
-
9:30
we don't think about optimizing development until we get to development,
-
9:35
then we're going to get our sad angry developer that's going to be
-
9:40
handed a design and think, how am I going to optimize this huge design?
-
9:45
I think Tim Cadlek said this really well.
-
9:49
We can't set a budget or performance goal if we already have a mock-up that
-
9:53
contains three carousels and a full-screen high resolution background image.
-
9:59
That's no good at that point.
-
10:02
And we really need to consider that performance is a design feature, not just
-
10:06
a technical concern, and we need to structure our projects with that in mind.
-
10:12
So what that means is that we are thinking about performance from the very beginning.
-
10:18
We're including performance in our project documents, so
-
10:21
statements of work communication briefs and throughout the entire process.
-
10:28
But something that I've found a bit challenging
-
10:31
is convincing a client on why they should care about performance.
-
10:36
So, something that's been really helpful is sharing case studies.
-
10:42
It's really exciting that a lot of companies have been talking openly about
-
10:47
their experiments with performance and how that's impacted their business.
-
10:51
And I think that's huge because usually a client is
-
10:55
redesigning because they have a goal in mind.
-
10:58
They have a business goal in mind.
-
10:59
They may want to make more money.
-
11:01
They may want to get more users on board and speed and
-
11:04
having a fast site is gonna help them do that.
-
11:08
So there's a lot of great case studies out there.
-
11:13
Amazon, they observed a 1% decrease in revenue for
-
11:18
ever 100ms that were added to page load.
-
11:21
For someone like Amazon, that's a ton of money lost by slowing down their
-
11:26
site's slightly, and then on the flip side, for every one second of page
-
11:31
load times that Walmart decreased, there's a 2% increase in conversions.
-
11:37
So these kind of statistics are great to share if
-
11:42
you're trying to get people on board with performance.
-
11:44
Kyle Rush, who is a developer who worked on the Obama campaign,
-
11:50
he talked about how improving performance improved donations to the site.
-
11:56
So we made the new platform 60% faster and
-
12:00
that resulted in a 14% increase in donation conversions.
-
12:04
So these kind of metrics are huge and they're really compelling,
-
12:09
I think, when you're trying to convince clients to care about performance.
-
12:15
Something that I do with my company is to create a UX assessment,
-
12:19
User Experience Assessment.
-
12:21
And what that does is identifies the strengths and
-
12:25
weaknesses of the current User Experience.
-
12:28
It'll look at things like, disability, the navigation, information architecture,
-
12:33
what's the work flow like, can users complete their tasks?
-
12:36
In a kinda queer way, is the brands coming across.
-
12:41
And we've included performance in this UX assessment, and I think that's subtle,
-
12:46
but it's really important because it's important to not think about performance
-
12:50
as something additional, or something that's separate from the user experience.
-
12:55
It's really part of the entire user experience and
-
12:58
if you are analyzing and talking about the user experience from a cohesive manner and
-
13:03
include performance there, I think it helps drive the point home that this is
-
13:08
all about one user experience.
-
13:13
So, great.
-
13:14
You've established performance as your goal but
-
13:17
then you have to figure out how to stick to it, and a performance budget
-
13:21
is something that I initially heard about from Clear Left in the UK, and
-
13:26
it's a really great, tangible way to start talking about performance.
-
13:33
When I mentioned in the beginning that I was just adding elements and images and
-
13:38
textures to my design and fonts without really knowing the consequences.
-
13:44
This is what a performance budget can help you avoid.
-
13:47
You know, you have a predefined budget and
-
13:49
it's a tangible way to talk about what can and can't be included in a site.
-
13:54
And early on in the project.
-
13:57
So again you're looking at everything as if it has consequence.
-
14:02
If I want to add an additional typeface I may need to remove an element.
-
14:06
If I wanted to add that parallax background what would be my
-
14:10
trade off in order to still have a speedy site?
-
14:14
It's really not that different from budgeting money.
-
14:17
So, if you have means or another way to budget your money
-
14:22
that you have a target metric that you don't want to go over for that month.
-
14:26
And then you have a bunch of others smaller metrics and
-
14:31
you're trying to find the balance.
-
14:32
So, if I spend too much on my groceries for
-
14:36
a month I maybe back to my old routine In order to stay within my budget.
-
14:42
So similarly if I have my overall performance budget and I have CSS and
-
14:47
images and JavaScript, right and I get a request to add a huge carousel or
-
14:53
big images and that drives my budget over then I have to think about,
-
14:57
okay, what can I either optimize or move to get me back on track.
-
15:02
And that might be simplifying styles or optimizing the images more or
-
15:07
removing a type face in order to stick within the budget.
-
15:10
So there's a couple different ways that you can define a performance budget.
-
15:17
If you have an existing site,
-
15:20
looking at your current pages is a really good place to start.
-
15:24
So, what's preventing my site from loading faster on slower networks?
-
15:30
And using that as a baseline indicator is a really good way to know,
-
15:34
what can I work on to make my site faster.
-
15:37
So webpagetest.org
-
15:43
is the best way to start analyzing your site metrics.
-
15:49
There is been a lot of time on it.
-
15:51
Usually when I'm at the beginning of the project and
-
15:53
I'm trying to you know give clients a view into how they're doing.
-
15:57
So it'll tell you things like the speed index and how long it took for
-
16:02
the first byte to load and how heavy it is.
-
16:07
Google PageSpeed Insights gives you more kind of tangible
-
16:11
things that you could do to optimize your site.
-
16:13
So if you're just trying to optimize something that you currently
-
16:16
have that's a good place to look.
-
16:20
And then you can look to competitors.
-
16:22
If you're working with a client that has competitors in their space,
-
16:29
performance is a great advantage and it can give them an edge.
-
16:33
So taking a look at how they're doing compared to their competitors
-
16:37
is a really good way to start figuring out where to start.
-
16:41
So again web page test has this visual comparison and
-
16:46
you can export it as a filmstrip in a video and it's fantastic.
-
16:50
I mean you can see your competitor's site and your site and
-
16:53
you can see how you stack up.
-
16:56
I think that these kind of visuals can be very powerful when you're trying to
-
17:01
start conversations about performance.
-
17:03
You can export that visual comparison tool as a video as well, so
-
17:08
you can actually see how this is loading for someone.
-
17:12
And then there's a bunch of different kinda charts that track other
-
17:17
metrics which are interesting,
-
17:20
but the film strip in the video view are really If interesting for
-
17:24
someone that may not be a developer or may not have that super technical background.
-
17:30
And then, look to your users.
-
17:33
The reason that we're creating these sites and the reason that we care about
-
17:37
performance is because we want our users to get to our content quickly.
-
17:40
So, how are they gonna be using the site, what’s necessary for their experience?
-
17:46
Do they have certain
-
17:48
users that primarily work in environments that have slower bandwidth?
-
17:53
So you can look to Google Analytics to reveal some of that.
-
17:57
If you know that your audience is primarily in another country,
-
18:01
OpenSignal has some helpful charts to take a look at what the network
-
18:06
speeds are there.
-
18:10
So there's a couple different ways that you can structure a performance budget.
-
18:15
There is one that's user experience based.
-
18:19
So our pages should take no more than ten seconds to load over a sub 3G connection.
-
18:25
And again, this is all about our users.
-
18:29
And then there's a browser experience, so our pages should weigh no more than 400
-
18:33
kilobytes and make no more than 15 requests.
-
18:37
I think initially when people were talking about performance budgets they primarily
-
18:41
were talking about wait list budgets and then there been a shift to discussing
-
18:45
more about perceived performance about how users going to be using our site.
-
18:51
But you can use both.
-
18:53
And I think the combination is helpful for a designer.
-
18:57
So, Dean Mole wrote an article about he uses his performance budget and
-
19:03
he had some really interesting math about how he took a user experience budget and
-
19:10
translated it into a kind of weight based budget.
-
19:15
So he had this rough equation,
-
19:17
and basically what he was saying is if I want my start render to start in
-
19:23
roughly two seconds Have a kilobyte wait that I need to hit.
-
19:29
And then use that to make some rough calculations so you can start dividing
-
19:35
up the different pieces of your design into kind of little waits.
-
19:42
The reason that It's helpful as a designer to think about things about weights
-
19:47
because we work with things that have a weight to them.
-
19:51
Web fonts, they have a weight.
-
19:52
Images have a changeable weight.
-
19:54
So for me, I found that it's a little bit more tangible and
-
19:58
easy to Kind of think about way early on in my design process and
-
20:03
then developers can take over and start thinking more about like,
-
20:07
okay, how can I get this to load in two seconds and afterwards.
-
20:13
So then the other key that I was saying,
-
20:16
you have established performance as a goal.
-
20:18
You set your performance budget, but it's really key to communicate and
-
20:22
document throughout the entire process.
-
20:25
And, from, it goes in kind of two perspectives.
-
20:28
So I am communicating with my developers to make sure that nothing that
-
20:32
I add to the site is gonna make it super slow.
-
20:35
And then I'm also communicating with my clients and making sure that
-
20:39
they know that we're sticking to this goal of having a fast site.
-
20:43
And some of the requests that they're asking for may not work.
-
20:47
So it's really kind of a key and essential to making sure that you have a fast site.
-
20:54
So I'm gonna get into two examples of how I tried to work
-
20:59
performance into the design process for some clients.
-
21:05
The first was for this fast food pizza industry site.
-
21:10
The funny thing about pizza sites is their biggest selling point for
-
21:16
ordering a pizza online is speed and convenience so
-
21:20
you would think that their sites would be lightning fast and super easy to use.
-
21:24
And that's not always the reality.
-
21:28
So for the client that I was working with,
-
21:31
they had some very specific goals that they wanted to reach with the redesign.
-
21:34
They wanted to increase online sales, they wanted to increase the online
-
21:39
customer ticket, but I also knew that I was gonna have some challenges ahead.
-
21:44
I knew that at some point in the process, they were gonna have new branding,and
-
21:48
the site was gonna be very image and interaction heavy.
-
21:52
So, I approach this by establishing performance as a priority
-
21:57
from the very beginning that a client picked off a meeting.
-
22:01
And there was a cool ways how I framed to that discussion so,
-
22:06
at the very beginning of the project we talked about, what are your
-
22:11
customer goals and what you want to provide to your customers with the site.
-
22:17
And they told us, we want to give or
-
22:20
we need to give our customers a quality experience, and quality,
-
22:25
in this case, its stability, its performance and its reliability.
-
22:30
So, from the very beginning, we were saying, you can accomplish and
-
22:36
give your clients exactly what you need to like having a fast site.
-
22:42
And then they, from a business prospective,
-
22:44
they had several goals that they wanted to meet as well.
-
22:47
Again, they wanted to increase online ordering and
-
22:50
decrease call center volume with complaints about the site.
-
22:54
And again, having a site that works well, that's consistent and dependable and
-
22:59
works if you are ordering from the subway stop on the way home is gonna help.
-
23:08
So, you know, we set a performance mission in the communication brief for
-
23:13
the site and said, the goal of this project is to create a beautiful,
-
23:17
flexible, lightning-fast experience.
-
23:20
And they were pretty on board with that.
-
23:23
But they didn't see performance as a marketable feature,
-
23:27
which was interesting because their competitor had just released
-
23:32
this commercial starring country music superstar Blake Shelton,
-
23:37
who is using the site and he kind of is lifting up his phone and
-
23:41
he's like, this is going to be fast like a cheetah.
-
23:45
But, funny enough, when we looked at their sites in visual comparison and
-
23:49
web page tests, they were slower.
-
23:52
So I thought that was interesting that their competitor was actually marketing
-
23:55
performance.
-
23:57
When they still had some work to do.
-
24:01
So in the kick-off meeting I did some a couple of kinda
-
24:05
exercises to walk them through how they were doing compared to their clients.
-
24:10
Some of the home page that weight on an initial load is kinda crazy for
-
24:14
some of these sites and again there still has to be convenient but
-
24:18
they're actually not that fast.
-
24:22
And then, again thinking about the user experience.
-
24:25
Someone is here to order a pizza.
-
24:27
If I'm ordering a medium two topping pizza across you and your competitors,
-
24:33
how much data have I transferred and how many requests have been made?
-
24:36
It could end up being a very expensive pizza with all the data that you
-
24:41
have to transfer to get it and
-
24:46
all of these kind of conversations and test were to say that performance is
-
24:51
something that you can market and can provide value to your customers.
-
24:57
So we set, I feel like we found some consensus.
-
25:02
We set a performance budget roughly, we were feeling good.
-
25:09
The thing is there's always challenges in these projects and
-
25:13
you may have the expectation that you're gonna create something really fast.
-
25:16
And then you're gonna come across some challenges so
-
25:20
in this case we're really excited to create something super fast but we knew we
-
25:25
had this branding that was gonna arrive kind of half way through the project and
-
25:30
then we'd have to work into the new design so when we
-
25:35
got the branding it featured this really high quality photography which is great,
-
25:41
but it also had some very un-webfriendly type.
-
25:45
I don't know if you can tell but every other letter is a different font in their
-
25:51
print pieces which obviously we can't do online, but also having that many.
-
25:57
Typefaces to achieve that effect was gonna really blow our budget.
-
26:03
So, the thing is, I can't go back and say no, no, no,
-
26:07
you need to have a fast site, so you're gonna have Arial for everything.
-
26:10
You need to find a balance here.
-
26:13
So I talked to my developers, and I was like, so
-
26:17
roughly how much should I be spending on fonts for the site?
-
26:23
And they told me okay like 100 KB is your font budget.
-
26:27
So I went back to my client and said we set performance as a goal.
-
26:33
You have this much to spend on web fonts.
-
26:36
Here are some options.
-
26:37
You could have three weights of Whitney for
-
26:39
body copy plus one weight of Knockout for headings, and that would be one look.
-
26:44
Option B is 3 weights of Knockout.
-
26:46
That would give us some more of that variation with the headings.
-
26:49
But we can use system fonts for the body copy.
-
26:52
We could use something like CSS Mask-Image for just the headings.
-
26:57
If we want to, again, achieve a similar look to what you have in print
-
27:03
and then we ask them, which is a better translation of your brand?
-
27:06
And I think framing conversations in this way is really key
-
27:10
because even though we want to have a fast site I can't just say,
-
27:14
you can't have this, because if we go back to the beginning,
-
27:18
we're trying to create things that are engaging and are beautiful, but also fast.
-
27:24
So, another talent that came across were
-
27:28
unplanned client or maybe unplanned client requests.
-
27:33
So, when I was just designing the home page,
-
27:37
I knew that if we had a super high quality big carousel at the very top.
-
27:43
That was going to be a big hit to our budget,
-
27:46
but I also knew that they had these specials,
-
27:51
weekly specials, 6 to 10, so there needed to be a carousel of some sort.
-
27:56
I just didn't want it to be one with super large images.
-
28:00
So, I had a static pizza glamor shot at the top, and then a smaller carousel with
-
28:06
the specials, and it was still roughly within the budget.
-
28:11
But the problem is, they came back with feedback, and it was no, no, no,
-
28:16
we need that carousel at the top.
-
28:21
And when I had a conversation with the developers, they were like,
-
28:24
okay that would, with the job description and the images completely blow our budget.
-
28:32
So this happens.
-
28:33
It happens a lot.
-
28:34
I think if you want to stick to a goal you need to just remind them of the goal.
-
28:40
Again educate about what that means, and then find a middle ground.
-
28:45
Find a balance.
-
28:46
So, say something like, hey, remember how, the goal of this project
-
28:51
is to create a beautiful, flexible, lightning-fast experience?
-
28:55
Well, this carries a loan is gonna cost this much in images and JavaScript, so
-
29:02
what can we do to achieve what you want, but also stick within our goal?
-
29:08
So, some options could be don't add the carousel,
-
29:12
lazy-load the images that aren't in the viewport on page load.
-
29:16
There was a video lower down the page,
-
29:19
we could load on click instead of on page load, there's lots of options here.
-
29:23
My point here is that we're having conversations and
-
29:27
I didn't come up with these recommendations on my own.
-
29:29
I talked to the developers on my team to figure out, you know,
-
29:32
what's the best strategy here.
-
29:34
How can we come up with several strategies.
-
29:37
So we're all discussing.
-
29:39
And the key here is that this conversation was happening within the design process,
-
29:44
like at the very beginning of the design process.
-
29:47
So we weren't getting to the end with a super big carousel, and
-
29:51
I wasn't handing it to a developer and then saying, build this huge thing.
-
29:57
And then, the other thing that's inevitable are,
-
30:02
images are A ginormous asset on websites,
-
30:06
you can see they take out a lot of the weight of websites today, it's inevitable.
-
30:14
And if you're designing for a site that's gonna have super large images,
-
30:18
I think education is super important.
-
30:21
So recommending something like image opt-in or
-
30:24
creating a little guide to give to your clients about how they can optimize their
-
30:29
images after the site has been handed off is a really good way to ensure that you
-
30:33
haven't designed something that's fast and flexible.
-
30:37
And then they add a bunch of clunky images and then have a super slow site anyway.
-
30:43
So, on the other side of that,
-
30:46
I recently designed a news site for a newspaper in Costa Rica.
-
30:53
And news sites are interesting because
-
30:56
they are trying to get content to a user very quickly.
-
31:01
But they also are very dense.
-
31:03
They're full of images and ads and different content types and strips.
-
31:12
We've seen what happened with Facebook recently and their instant articles where
-
31:16
you know, they're coming out with this mission that new sites should use Facebook
-
31:21
instant articles because they'll load ten times faster than the standard mobile web.
-
31:26
So there's a problem with news sites and
-
31:29
the way that they can load content and give content to users.
-
31:34
So the goal of this design was to deliver the news quickly,
-
31:40
especially to mobile audiences.
-
31:42
When we started the project the client had a desktop site and
-
31:47
a mobile site, and different teams pushing content to each of the sites.
-
31:53
So there would be a seven-minute lag between
-
31:55
when a mobile user could see an emergency news story.
-
31:59
But again an emergency news story you need to see that instantly.
-
32:02
So it was a responsive site and then we really needed to focus on
-
32:06
these mobile users and getting them the news quickly.
-
32:10
But again, challenges of new sites, especially if they are using outdated ads.
-
32:16
They have required ads that are very heavy, they're image heavy.
-
32:20
We were working again with an audience that was primarily Puerto Rico with their
-
32:24
slower bandwidths speeds.
-
32:26
So, we had to be really kind of conservative with the way that we were
-
32:30
designing this.
-
32:33
Again, so with all the Required Ads
-
32:37
if the sales team sold all the ads that they wanted to in mobile.
-
32:41
Ads alone could be 160 kilobytes on a home page which is huge.
-
32:47
So the first thing that was key was being really restricted,
-
32:53
not restricted but having a lot of restraint when I was designing.
-
32:58
And what I mean by that is not adding a style if I didn't really need it.
-
33:04
So I created a pretty limited but well spaced type system that
-
33:11
used web fonts kinda big headlines and to make an impact.
-
33:17
But then relied more on system fonts with generous white space to
-
33:22
kind of stick with the goals.
-
33:27
And then the other key was designing modularly.
-
33:31
So again,
-
33:32
like I said, this means not, don't add a style if you don't really need it.
-
33:37
And it is being very careful about the size that you're adding.
-
33:42
So this is an example of three types of content blocks,
-
33:46
one is just the news block listing regular and then one has,
-
33:51
is live so it has an indicator that it's live and
-
33:54
then the other has a piece of sponsored content.
-
33:58
And I think if I were designing this without thinking about
-
34:03
performance I may have made the live story vastly different,
-
34:08
made more edits to the sponsored story.
-
34:12
But in this case, it was about finding what is our key module here?
-
34:17
What does that look like?
-
34:19
And then how can I very carefully add or remove things to feature
-
34:24
different content types so that I'm not adding a bunch of different styles here.
-
34:29
And the important thing was to
-
34:33
kind of document all these modules as I was designing.
-
34:36
And again, talking to the client about why we're designing in this way?
-
34:42
Something that was key for this site was that, the client was gonna be
-
34:46
taking what we gave them, and continuing working with that in the future.
-
34:50
That's our designing the news template.
-
34:52
So, gonna talking the way the we have this
-
34:55
modular system throughout the entire process, is really important.
-
34:59
And then the other thing that this allowed us to do,
-
35:02
is get designs into code earlier.
-
35:06
So this article from Scott Jehl at Filament Group recently,
-
35:12
he said, more weight doesn't mean more wait, and he's talking about how
-
35:17
you can have a site that's large and asset-heavy as a whole, but we
-
35:24
can still deliver a usable representation of the webpage's content very quickly.
-
35:29
And that's fantastic, but unless you're moving into development pretty
-
35:35
early that's gonna be really challenging to do this in the very beginning.
-
35:40
So, by designing module, modulerly, I was able to work to developers on my team,
-
35:46
talk about how individual kind of meet modules of the site we're gonna behave.
-
35:52
So, we would take key modules like this one that has a tab set and
-
35:57
he would,kind of, build it while I was still in the design process and
-
36:02
we'd talk about, you know, how should this behave, for smaller screens and
-
36:07
how can we optimize this for performance.
-
36:09
We're gonna have conversations about how to load the navigation on small screens.
-
36:16
And the important thing was that we were
-
36:19
making these updates throughout the design process.
-
36:23
So, I wasn't we won't waiting until the very end.
-
36:28
And what happened was that there was some time in the process where we would have to
-
36:33
make small changes to the design in order to make it better for performance.
-
36:38
And it was fine because we were still kind of iterating on the design.
-
36:43
So I could go back to the client and say we saw this tab set that
-
36:47
behaved this way and looked this way, but we've made this small change.
-
36:51
And it was still fine, there was still time to work on this.
-
36:57
And then, another thing that was helpful were my friend developers
-
37:02
were using automated performance testing with something called
-
37:06
Grunt Perfbudget while they were building the site.
-
37:11
And what’s really interesting about this grunt task is it uses the webpage
-
37:16
test API to measure the site against a ton of different metrics like page weight and
-
37:21
image sizes and script weight and rendering time and
-
37:24
it actually, if you’re trying to push something to GitHub it will actually give
-
37:28
you an error back if you’re not meeting your performance budget.
-
37:32
So again it lets us go back and make changes if we need to.
-
37:38
And then the other key here was because we had moved into development
-
37:43
while we were still designing it allowed us to test on real devices.
-
37:46
So you're not gonna be able to know how something is really gonna behave if you're
-
37:51
looking at it through a shrunken view port or an emulator.
-
37:54
So the faster that you can get a real
-
37:57
indicator of what something is gonna load on on different bandwidths and
-
38:00
on different devices, the faster that you can go ahead and make some changes.
-
38:06
And then the great thing about designing modularly is that then you can have
-
38:12
a style guide and again I think really key to performance is this education factor.
-
38:18
And at the end of that project I had a bunch of different components and
-
38:21
modules the developer had optimized for performance.
-
38:25
And we could hand that off to the client, but
-
38:27
when they were building a site, they weren't building new pages to the site.
-
38:32
They weren't going to add modules that hadn't been optimized.
-
38:35
So they could use that as a reference.
-
38:37
And there's a lot of really good style guides and examples of that.
-
38:42
The Yelp style guide is really good.
-
38:45
So don't be reckless [LAUGH] like I was.
-
38:50
Include performance in your project documents,
-
38:53
talk about it from the very beginning and set us a goal.
-
38:57
Get your designs into the browser as soon as possible.
-
39:01
Test on real devices cuz you're not gonna know what that's really like,
-
39:05
unless you’re working on a real device.
-
39:08
Collaborate.
-
39:10
Again, you need to have these conversations early, often, consistently.
-
39:14
And then educate and document, so
-
39:16
that you’re creating something that’s going to be maintainable in the future.
-
39:21
[MUSIC]
-
39:23
>> [APPLAUSE]
-
39:25
[MUSIC]
You need to sign up for Treehouse in order to download course files.
Sign up