NEWSLETTERS | JANUARY, 2010 How a Website is Built, Part 1In This Article
![]() How a Website is BuiltI've read plenty of interesting analogies used to explain what building a website is like. I've even written a few myself. From various points of view, a website could be compared to a car, a house, a cellphone, a movie, or all kinds of other things. I've even heard a website compared to a clown (don't ask)! Most of the time, these analogies are striving to find the most effective way of emphasizing the time, cost, complexity or purpose of a website project. Rather than construct yet another metaphor around that point, I'm just going to come right out and say it: Building a website is a complex task that takes a lot of time and costs a lot of money. But that's not the really interesting part, is it? The really interesting part is how it gets done. Think about some of the analogies I listed--a car, a house, or a movie. Each of these is obviously the result of a long, costly, and complex process. But a striking difference is where a car, house, or movie can be made with almost no direct input from the consumer, a good website cannot be built without significant involvement from the client throughout the project. It's this difference that makes it so critical that anyone anticipating a web project be well versed in the process. Over the next two articles, I want to show you what it takes to build a new website. This month, I'll cover the planning, design, development and quality assurance stages of a project, focusing on how it all comes together through the work of developers like us and the people we work with. PlanningIn last month's article, I reviewed ten questions that you should ask if you are planning ahead for a web development project--the kind of questions that are necessary to at least consider, if not answer, before you engage an interactive firm officially. That kind of planning is a bit different from the initial planning phase of a web development project, the type of planning I'll be discussing in this article. The planning phase of an active web development project primarily involves two endeavors: creating personas upon which to base the structure and purpose of the website, and planning the site's information architecture and functionality with an interactive prototype.
Web PersonasSteve Mulder, author of The User is Always Right, defines a web persona as a "realistic personality profile that represents a significant group of your website's users." Though creating consumer personas has been a common marketing practice for decades, applying the same principles to web planning has been often overlooked. Without going through the process of web persona development, we're much more prone to making guesses (at best) or assumptions (at worst) about who our prospects are. In most cases, our guessed or assumed prospects will really look more like us than anyone else. Creating web personas prevents us from mistakenly building websites for ourselves rather than those we want to serve.
We recommend creating 3-5 web personas, focusing on a qualitative assessment--akin to creating a story about your persona--rather than a quantitative one which results in a large and often unnecessarily peripheral data set. From start to finish, a qualitative approach will probably take you 2-4 weeks, whereas a quantitative approach could easily take twice that amount of time without representing a significant value gain to you in this planning process.
The persona documents you create (like the one shown above) should include basic identifiers, like a name, description, and photo of a representative user. Rather than referring to your personas by actual names from your interviewee pool, refer to them based upon their description (i.e. the "analytical influencer"). Your persona profiles should also include a longer description that focuses on what that person values and the way they make decisions as well as some personal information. Precision here is more important than accuracy. In other words, a realistic description is more important to your decision making than whether the description actually applies to the person upon whom you've based your persona. Finally, to test your personas, use and act out decision-making scenarios. A basic testing scenario might start with a search engine query for a description of your service or product (no specific names, though--we're acting as people who don't yet know about your firm) and follow the path from landing on your site's homepage to finding a low level detail page and responding to a call to action. If you construct your site to allow for this kind of procedure, you'll make better choices as to the types of content and calls to action that would be available based upon your personas.
Website PrototypingIn the early days of the web, the standard way of planning website information architecture and page layouts was to create wireframes--symbol-based static illustrations of how a website will look. The problem with this approach is that wireframes attempted to communicate a complex system that responds to user feedback using paper! Everything changes once you actually start interacting with a website, which meant that most of the decisions that were thought to have been resolved during wireframing had to be revisited with the actual site.
Our solution to this, which we put in to practice ten years ago, was to build interactive wireframes. Actually, calling them wireframes at all is a misnomer; we call them Grayscreen Prototypes.
An efficient prototyping process should take roughly one month. Our model establishes a fast-paced routine of several meetings per week with the client, first addressing the larger structural decisions and working toward approval after the resolution of issues of finer detail. This "narrowing-funnel" of decision making is an effective model to follow for the visual design phase, as well. Incidentally, we intentionally keep our prototypes unstyled so that we don't confuse decisions involving information and functionality with those that involve design. Design, which we'll explore next, is very much its own process. DesignDesign for the web involves much more than simply styling what has been prototyped with images, colors and fonts. It is also more than selecting a fashionable template that fits with current visual web trends. Design is a process that continues to build upon decisions made in the prototype, focusing on how the visual presentation reinforces the purpose of the website while also clearly communicating the character of the brand. Beginning with a discovery stage that combines the personas created in planning with other critical information, like existing brand standards and marketing campaigns, positioning documentation, and other feedback we gather, the design phase then proceeds with the creation of mood boards and lastly, the template-specific layouts.
Website Mood Boards
At this stage in the design process, it is more important to make bigger-picture design decisions than to consider how specific pages of the website will look, down to the pixel. In other words, mood boards establish a site's look and feel in the same way that a brand standards document specifies how a brand is represented in various contexts. Rather than including the actual layout of a products list page, it will specify which type styles, sizes and edge treatment of images, and other details, such as buttons and spacing, are used in lists throughout the site. Once the mood boards are approved, the design of site page templates is a much more efficient process since the more personal issues that tend to stall design decision making have already been made.
Because the mood board is not concerned with specific page template layouts, it can be developed concurrently with the prototype. This keeps design-related discussions from interfering with the prototyping process, but also engages the client in design thinking early in the process. Being able to see the look and feel take shape this early is often encouraging and motivating to the client--a good thing since maintaining pace is critical to keeping the design phase on schedule and budget.
The Narrowing Funnel of Decision-MakingLike any other design process, foundational decisions support and enable other, more detail-oriented decisions. Since the mood board has already worked out the valuable thinking that goes into the design, the subsequent articulation of that design can be a much more streamlined process. Beginning with the basic arrangement of elements within the layout, decisions in this phase should become more narrow and focused, ending with less consequential issues, like what particular stock image is used in a promotional area far down the page.
Violating this funnel can be quite costly. If the entire color scheme is called into question several weeks into the design of page layouts, or even after the mood board has been approved, the entire team would have to consider the cost (in time and resources) of going back to the start of the process. Something so foundational will naturally have a broad, sweeping impact upon other design decisions, which, in and of themselves, are less significant.
Before the layout design process is complete, it's important to do one last review to make sure there are no remaining inconsistencies with the prototype, that the correct fonts are embedded, and that any stock imagery used has been accounted for and purchased. Once the design is approved, the designer can pass them (ideally, in layered and labeled Photoshop documents) on to the developer to apply to the site, which should already be in progress. DevelopmentOnce the prototype has been approved, the developers have all they need to begin building the actual website. The development process consists of constructing a database integrated with a content management system (we use our own NewfangledCMS), creating the site's structure and unique page templates, which we call the "whitescreen," and then applying the final visual design to the site.
Programming with PHPOur developers program in PHP, an open-source language created especially for web development. What it basically does is process the raw data that sits in a website's database and matches it with the correct HTML for the page template it belongs on, producing the web page as we know it. As the diagram below indicates, the PHP exists within the CMS, executing scripts that are written to produce specific results. An example of how this works is just one click away. The page you are viewing right now displays only some of the content associated with this article. Our CMS defines this page as only a portion of a type of content called "newsletter" and serves up the rest of the content as you navigate the various parts by clicking the "In this Newsletter" menu at the top of this page. But, if you click on the link that reads, "View on single page," a script will execute to reconfigure the data associated with this content type and spit it back out so that all five sections display on one page. This kind of communication between the CMS and the database happens on every page of a website, which underscores how important the prototype is in describing to the developer how each page is intended to function.
Building the WhitescreenJust as we separate prototyping and design as distinct processes, we isolate the programming of the website from the application of the visual design. This allows the developer to focus on the logic of how a site operates before worrying about how the site actually looks.
The whitescreen homepage at the left is a good example of how retrieval works. At the top of the page, a "test slide" is displaying. In this site's database, a "slide" is particular type of content that, in addition to having a main image, has a title, a description, and links to another page on the site. However, the homepage has been designed to display an interactive slideshow that allows the user to browse through all the slides. This is achieved by the CMS, which runs a script to retrieve each "slide" record in the database and place it in the page. Now, the user can use the arrow buttons to view multiple slides without having to refresh the page. When I said that the whitescreen actually works, I meant that literally. Because the site is so thoroughly integrated with the CMS, we can actually train our clients in how to use their site before the visual design is applied. In fact, that test content you see in the example above was entered by the developer using the CMS in the same way the client would. Giving the client access to the site once the whitescreen is complete can sometimes be a great way to maximize the amount of time they have available for content entry--something we'll discuss in next month's article.
Applying the Design
The design is a critical component of the website's ability to properly communicate its content. It sets the tone and gives voice to a brand speaking to a wide audience across the web. Because the structure and logic of the site has already been worked out during the whitescreen stage, the developer can focus solely on the visual detail and interactive effects that enable the website's voice during design application. The developer refers to the Photoshop document (PSD) created by the designer, which contains every image, color, and typeface used in the design. The designer also provides a stylesheet which specifies the specific colors, sizes, and weights of various text styles that will be used repeatedly throughout the site (i.e. headlines, subheadlines, link styles, etc.). With all this information, the developer can create cascading style sheets (CSS) that the site templates are matched with in order to display according to the design. With one master CSS and others related to unique templates, any future changes to the style of the site only need to be made in one place.
Once the design and development work is complete, it needs to be checked out thoroughly to make sure everything works properly and looks as it was intended to... Quality AssuranceQuality Assurance (QA), according to the online Project Management glossary, is defined as "a planned and systematic pattern of all actions necessary to provide adequate confidence that the item or product conforms to established technical requirements." In other words, QA is a standardized method that ensures that everything works as it was intended to work and looks as it was intended to look. QA for the web should include an initial site-specific test plan, a round of browser testing, and a generous integration phase during which the client can evaluate functionality while entering content.
Quality Assurance Test PlansEvery website built around a content management system (CMS) will have a significant amount of common functionality that will require testing. This kind of general evaluation might include anything from testing the CMS login to exporting website form data, but is not primarily concerned with how things appear visually. Of course, if something is radically out of place visually, it should be noted. However long the testing list, this first step should be to identify any flaws in the standard operation of the site and CMS and can probably be performed once the whitescreen is complete and before design application has occurred. The second step is to evaluate functionality specific to the website. Again, this stage is less concerned with how things appear visually than with how things operate. For example, an e-commerce website's store should be thoroughly tested with every relevant combination of products, accessories, and discount codes to make sure that even the most minor variable isn't overlooked. A site with a large content database that relies heavily upon an advanced search tool should be tested by running a large number of various search queries. A site with complex form options should have many test form submissions sent covering all options and combination of options, and so on. While the test plan should be drawn up by the team--naturally, those most familiar with how the site is intended to function--the person performing the test plan should be someone familiar with the technology, process, and purpose of QA, but new to the particular project being tested. Even if you don't have a dedicated QA role, you should endeavor to have fresh eyes on the site for this stage of QA.
Browser Testing
Browser testing can be done in a variety of ways, including running multiple physical machines, running virtual machines locally, running a centralized virtual machine server, or using a third-party testing service. We've been experimenting with using CrossBrowserTesting.com, which can test browser performance and some interactive functionality for any URL you submit. It can even generate screenshots of any URL in every current browser simultaneously (I ran this test on my blog page, which you can see in the image above). Plans range from as low as $19.95 per month to as high as $199.95 per month, but the value of being able to quickly check against the particularities of multiple browsers is well worth the cost. By the way, despite being nine years old and out of compliance with today’s web standards, Internet Explorer 6 is still being used by a considerable portion of the population. While tools like CrossBrowserTesting.com make it easy to check out how a website looks in IE 6, they don't change the fact that it often requires a lot of extra effort to make a current site look and function correctly in it. At this point, it doesn't make much sense to do more than ensure that websites degrade well to IE 6; guaranteeing perfect performance in it is a losing battle. Even our site isn't perfect in IE 6!
Integration is QAOnce the test plan is complete, the site is probably ready for content entry (we'll cover this a bit more in next month's article). Remember, this often happens before the design has been applied, so it's important that the client is prepared to see and use a work in progress. Though it's not officially considered a QA method, I believe that content entry, or integration, is one of the most effective and important QA efforts for any project.
Typically, integration is the point in a project when a client is able to fully experience the reality of their site for the first time. While they have worked closely with the team on prototyping and design, the process of using the CMS to create and enter content is when all the "dots" are connected and made real, and often the first point at which expectations are clarified. With that in mind, here's some straight talk: No matter how thorough the prototype is, sometimes there are concepts or needs that cannot be communicated until you are immersed in an actual working and producing environment. This is similar to the "blank-slate-shopper" phenomenon: Have you ever seen a review of a book and thought that you'd like to purchase it, only to find that the next time you are actually in a bookstore you have no idea what you want or where to start? This is because we tend towards reactive rather than proactive thinking. We hear about a book and react to it with, "Yes, I'd like to read that," yet when we get to the store and are surrounded by thousands of books, we react to them all by drawing a blank. In web development, things are reversed a bit. Prototyping can be like the store, offering lots of attractive options unrefined by the future reality of how a site will be used. "Yes, I'd like my site to do that!" But integration will always catch the flaws in a site, be they many or few, because users will quickly react when they can't do what they expected to be able to. "Sure, the slideshow is nice, but I need to change the address in the footer!" Finally, QA does not ensure that a project will be 100% bug free. While some bugs are due to sloppiness or haste and can be quickly identified by QA, others are the result of unforeseen functionality conflicts that may not become evident until a site has been used for a while--despite the best intentions and foresight of the team. As with any development project, bugs like these should be expected and encountered with patience. (Need I remind you of how buggy some expensive operating systems are when they launch?) While we hope that the various steps of QA will mitigate the frequency of any bugs occurring, we are definitely not surprised when they show up.
Coming Up in Part 2...It's not done yet! Next month, we'll look at the last two steps of a web project, content entry and going live. Once a site is live, it begins its real life, so we'll also cover content strategy and nurturing for the future of a website. |
Chris, Great post! Nice to see our process so well articulated. Perhaps this will help dispel the myth that we have an extra button on our keyboards that simply says, "Make Website."
Justin, Shhh! Don't let that secret get out. Otherwise, what would I write about every month? ;-)
I watched your webinar on Personas and found it very instructive. Is there an application for this process if you're already way down the road on your web site development?
Great post, and I would love to see the same post with the addition of content strategy - gathering, analyzing, and planning for content today and into the future - at the very beginning during the planning phase. Planning, designing and developing in the absence or "real" content can result in content that simply doesn't "fit" the site, or fails to convey the message - not to mention frustrated customers. :-)
Joanne: Definitely. In fact, I was speaking with one of our project managers just this morning about planning for persona development for a client that has been using their site actively for almost two years now. Specifically, this client does a lot of television advertising but has not yet focused their website on a particular segment. As a result, they don't really have any content strategy at all and are assuming that the same people that respond to a television ad are their web audience too. Our hunch is that assumptions is incorrect. The value of identifying personas is there, really no matter when you do it. It's always going to provide some insight that wasn't available beforehand.
Jeri: That's a good point, which is why the persona stuff is so critical. If you don't identify who you are speaking to with a site, you won't have any significant or accurate model for content. I'll be covering content strategy in the second part, not because it's secondary, but just because I wanted to deal with the fundamental/mechanical stuff first.
Nice post, and when did you guys do the redesign? Looks great! Just curious though on the choice for navigation, use of images and a table? Seems odd, surely that could have been achieved with plain text and css. Just curious if there was a good reason for it.
I see the value of having the project managers create and implement test plans. Being the most familiar with the spec makes them the most qualified to assess whether the project measures up. But what about the code itself? Who does a QA review of the code for security issues, leanness, web standards, etc.? I'm not a big shop like you all, so the biggest problem I've had has been with working with freelancers in the past and not having a way to ensure code quality, so even if a site looks great when it's first launched, it degrades fast. I've learned a ton as a result about how little I really know about code ;-) So now I depend upon other programmers to check the work in addition my own review.
Robert: We went live with our redesign on January 12. You can read all about the process in a blog post I published that morning called How We Redesigned Newfangled.com. As for your question about why the navigation is programmed the way it is, I'm going to let the developer who built it, Dave Mello, answer. From my point of view, the new site is significantly faster than the old one, which makes me happy!
Jason: You raise a good point. I neglected to mention developer code reviews in the QA part of the article. I can only fit so much in, but it is definitely a critical piece of the QA process. Right now, our developers have a code review prior to the site going live with our Lead Software Engineer, who evaluates their work from the perspectives you listed out. We were actually discussing this just the other day, and are going to move to a new model of having developer code reviews every two weeks- on a schedule independent of specific projects- to make it more of a developer department culture thing, rather than just a step in the project process.
Robert: Thanks for the feedback! In rebuilding the new site, we drastically reduced our use of images *and* tables. The result is a must faster load and rendering time. In the case of the main navigation though, I chose to stick with a simple table/image structure for a couple of reasons.
Since the menu system is dynamic, I wanted to utilize a little bit more control of how the columns appeared if the ordering or placement changed at all, particularly in older browsers. As for using graphics, since the menu actually serves as one of the main visual elements, I wanted it to be as consistent and attractive as possible, particularly in cases where no browser/os induced anti-aliasing was taking place. You are correct in that the same structure could have been built using only CSS, but I made the call to take the minor trade-off in performance to ensure consistent design. We are also using ALT tags in the image itself to avoid any SEO issues.
I read something good in another article about website mood boards from WebDesignerDepot - "Words fail miserably when trying to translate design concepts... Visuals communicate things words cannot." It's true. Why try to pitch a visual concept in a written form to get your client to buy into the design you haven't created yet? So mood boards are great at getting to the point faster. But I like how you emphasize that the strategy happens with mood boards and the production happens with the layout iterations after. Most desigers try to do both in layouts and end up redoing their work over and over again. In the WebDesignerDepot article they talk about when clients don't want to pay for mood boards. How do you handle that? Do you breakout the costs and let them choose?
Chuck, That's a good article you linked to- thanks. Our process always includes mood boards. We don't break out the price and allow clients to choose a path. The only time we wouldn't do mood boards is if we decided to not include them in the process for some reason- perhaps to keep the scope narrow and work within a lower budget. But in that case, we would have very specific contractual language to keep the scope of the design phase as limited as necessary.
Wow! I skimmed over many of your articles and plan to read them in depth. Great writing and content. By the time I'm done, I'll have a UI degree (of sorts).
I primarily focus on visual design for smaller businesses. These businesses generally don't have large budgets. However, I believe that best practices should be the rule and I ask lots of questions to help my clients think beyond "We need a cool web site with such and such bells and whistles".
I would appreciate any advice on how to implement and maintain good UI principles when the budget is under 10K (way under 10K).
Great work and much continued success to your firm.
Chris,
Great article. I love seeing the process from a large shop; gives some perspective to what we're doing here; ways to improve and validating what we're getting right. Thanks!
Interesting idea, I like the concept of a more specific way of profiling users instead of just borrowing the traditional marketing plan approach to forming target profiles.