How we make websites Michael Smethurst Information Architect BBC Audio and Music.

Slides:



Advertisements
Similar presentations
Planning Your web content
Advertisements

The Internet.
Accessing electronic journals from off- campus This causes lots of headaches, but dont despair, heres how to do it! (Please note – this presentation is.
E-books and E-journals Off-campus This presentation will show you how to log in and access Oxford Brookes Library e-books and e-journals when youre off.
Getting Your Web Site Found. Meta Tags Description Tag This allows you to influence the description of your page with the web crawlers.
USING WORDPRESS. WEEK 1 1.Why WP? 2.Setting Up WP 3.Exploring the Admin screen 4.Page Organization 5.Posting 6.Polls.
KompoZer. This is what KompoZer will look like with a blank document open. As you can see, there are a lot of icons for beginning users. But don't be.
Unit 3 Day 4 FOCS – Web Design. No Journal Entry.
UNIT 12 LO4 BE ABLE TO CREATE WEBSITES Cambridge Technicals.
Developed with material from W3C Web Accessibility Initiative (WAI) IMPORTANT: Instructions Please read carefully the Instructions for.
APC Content Syndication APC SharedVue Showcase powered by The Channel Company.
XHTML & CSS 2 By Trevor Adams. Last week XHTML eXtensible HyperText Mark-up Language The beginning – HTML Web Standards Concept and syntax Elements (tags)
Visual Organization and Website Design Unit 5 (no CSS) September 19.
Chapter 4 Planning Site Navigation Principles of Web Design, 4 th Edition.
Opening a bank account.
Glencoe Digital Communication Tools Create a Web Page with HTML Chapter Contents Lesson 4.1Lesson 4.1 Get Started with HTML (85) Lesson 4.2Lesson 4.2 Format.
Where Do I Start REFERENCE: LEARNING WEB DESIGN (4 TH EDITION) BY ROBBINS 2012 – CHAPTER 1 (PP. 3 – 14)
Search Engine Optimization March 23, 2011 Google Search Engine Optimization Starter Guide.
Promoting Your Business Online Chris Wellings
The Internet & The World Wide Web Notes
How we make websites BBC Audio and Music. Matthew Wood Head of Architecture Michael Smethurst Information Architect.
Place The Title of Your Ebook Here Add your eBook cover image here.
 Internet vs WWW  Pages vs Sites  How the Internet Works  Getting a Web Presence.
Different ways to implement CSS. There are four different ways to use CSS in your web pages: – Inline CSS – Embedded CSS/Internal CSS – Linked CSS/External.
Information guide.
Server-side Scripting Powering the webs favourite services.
Lesson 4: Using HTML5 Markup.  The distinguishing characteristics of HTML5 syntax  The new HTML5 sectioning elements  Adding support for HTML5 elements.
.  Entertain  Inform  Educate  Blogs  Sell  Date  Gamble  Religion.
1 Essential HTML coding By Fadi Safieddine (Week 2)
IDs versus Classes Naming Your Tags for Maximum Functionality.
Programming in HTML.  Programming Language  Used to design/create web pages  Hyper Text Markup Language  Markup Language  Series of Markup tags 
General Information: This document was created for use in the "Bridges to Computing" project of Brooklyn College. This work is licensed under the Creative.
Chapter 6: NavigationCopyright © 2004 by Prentice Hall 6. Navigation Design Site-level navigation: making it easy for the user to get around the site Page-level.
Prepared for Search Engine Strategies - Chicago Copyright 2006 Critical Mass, Inc. All Rights Reserved Page 1 Search Engine Strategies Chicago ‘06 AJAX.
Designing & Testing Information Systems Notes Information Systems Design & Development: Purpose, features functionality, users & Testing.
Building Rich Web Applications with Ajax Linda Dailey Paulson IEEE – Computer, October 05 (Vol.38, No.10) Presented by Jingming Zhang.
 Understand the problem  Brainstorm solutions  Introduce the constraints  Choose the solution  Paper design  Actual design  Evaluate  Revise.
Week 4 Planning Site Navigation. 2 Creating Usable Navigation Provide enough location information to let the user answer the following navigation questions:
Review of last Session Learning Objectives 1. Create an on-line account with weebly.com along with a blank website 2. What a domain names are & how to.
| imodules.com HTML Best Practices: The Key to a Successful Starts with the Template Presented by Chris Smith, Manager of Design.
AJAX 10 Most Common Mistakes. 1. Not giving immediate visual cues for clicking widgets. If something I'm clicking on is triggering Ajax actions, you have.
SEO Friendly Website Building a visually stunning website is not enough to ensure any success for your online presence.
Build Your Own Website Review of week 6 You should now have your website pretty complete You should now have your website pretty complete Are there any.
The desktop (overview) Working with desktop icons The desktop is the main screen area that you see after you turn on your computer and log on to Windows.
IS2803 Developing Multimedia Applications for Business (Part 2) Lecture 1: Introduction to IS2803 Rob Gleasure
 Choose a theme that is clean, simple and appropriate to what you write about.  Think about what you need your site to do for you when choosing a theme.
Web Site Development - Process of planning and creating a website.
The Internet. Important Terms Network Network Internet Internet WWW (World Wide Web) WWW (World Wide Web) Web page Web page Web site Web site Browser.
Learning Aim C.  Once the website is complete, you should test it using the test plan you created at the design stage.
Learning Aim B.  It is a good idea to think carefully about the design of a website before you try to implement it.
AVIOS new flight selection page. Process to follow Step 4 Test and Refine Step 3 Prototype Step 2 Rough Wireframe Step 1 Card Sort Card Sort Balsamiq.
Essential Elements to Keep in Mind While Designing a Website.
Developed with material from W3C Web Accessibility Initiative (WAI) IMPORTANT: Instructions Please read carefully the Instructions for.
1 RESEARCHING USING ONLINE SOURCES _____________________________ A Guide to Searching for and Evaluating Web Pages on the Internet.
SEO FOR REDESIGN Eric Werner. DON’T WAIT “ We are going to wait until the redesign is complete to work on SEO” No problem unless any of the following.
Testing and delivery Web design principles. Web development is software development.
Getting Started with HTML
Search Engine Optimization
The Future of Drupal and Content Delivery
Web Programming Language
Research and Education Space
CS 321: Human-Computer Interaction Design
Creating a Baseline Grid
Year 7 E-Me Web design.
Best SEO Tips to Make Your Website Stand Out. SEARCH ENGINE OPTIMIZATION It is essential that you implement Search Engine Optimization strategies to make.
Planning and Storyboarding a Web Site
UI, UX: Who Does What? A Designers guide to the tech industry.
10 Most Important WordPress Plugins You Must Have Website Promoters L.L.C.
WEB DESIGN Cross 11, Tapovan Enclave Nala pani Road, Dehradun : ,
Presentation transcript:

How we make websites Michael Smethurst Information Architect BBC Audio and Music

Designing and building data driven dynamic web applications… …the one web, domain driven, RESTful, open, linked data way

Explore the domain This should be clear from the business requirements. It might be food or music or gardening… Employ a domain expert Get them to sketch their world Sketch back at them Model real (physical and metaphysical) things not web pages - try to blank from your mind all thoughts of the resulting web site Do this through the lifetime of the project as you refine your understanding

Identify your domain objects As you chat and sketch with your domain expert you should build up a picture of the types of things theyre concerned with Make a list of these objects

Identify the relationships between your domain objects As your knowledge of the domain increases youll build up a picture of how your objects interlink Sketch basic entity relationship diagrams with your domain expert Keep sketching until the picture clears The resulting domain model will inform the rest of your project and should be one of the few artifacts your project ever creates

Check your domain model with users Run focus groups Speak to users - get them to sketch their understanding of the domain Sketch back at them Synthesise the expert model and the user model User-centric design starts here - if you choose to model things and relationships between those things that users can't easily comprehend no amount of wireframes or personaes or storyboards will help you out

Check to see if your website already deals with some of your domain objects If it does then reuse this functionality by linking to these pages You dont want to mint new URIs for existing objects Having more than one page per object confuses users and confuses Google Think of your website as a coherent whole; not as a collection of individual products As ever, dont expose your internal organisational structures through your website. Users dont care about departments or reporting lines

Design your database Translate your domain model into a physical database schema

Source your data Check if there are business systems in your organisation able to populate your schema Check if there are existing websites outside your organisation you can use to populate your schema Give preferential treatment to any websites that offer their data under a liberal licencing agreement - you can buy in data to help you slice and dice your own data but if you do this you might not be able to provide an open data API without giving away the 3rd partys business model If your organisation AND an open data website can provide the data you need consider the danger in minting new identifiers for your own data - can you easily link out / can you easily get links in?

Pipe in your data Whether you choose to use your business data or buy data or use open data youll need a way of piping it into your database schema Youll probably have to reshape it to make it suitable for publishing

Make your models In an MVC framework your models should contain all your business logic This mean they should capture all the constraints of your database schema plus all the extra constraints of your domain model

Design your URI schema This should follow naturally from your domain model This isnt just about designing URIs for resources you link to - sometimes your pages will be made up of other transcluded resources - all of these subsidiary resources should be addressable too By making every nugget of content addressable you allow other sites to link to it, improve your bookmarkability and increase your SEO - cf. an individual tweet Bear in mind that some representations (specifically mobile) will need smaller, more fragmented representations with lower page weight - designing your subsidiary resources to be addressable allows you to easily deal with this requirement - transclude the content on a desktop machine, link to it on a mobile

The usual rant about persistence Its nice if URIs are human readable Its also nice if theyre hackable Its an absolute prerequisite that theyre persistent Dont sacrifice persistence for the sake of prettiness or misguided SEO URIs are your promise to the web and your users - if you change them or change their meaning you break that promise - links break, bookmarks break, citations break and your search engine juice is lost * Cool URIs dont change *

Make hello world pages for your primary domain objects For now all they need is an h1 with the title of the object

Make hello world pages for your primary aggregations For now all they need is an h1 with the title of the aggregation and a linked list of things aggregated

Define the data you need to build each of your pages For each URI define the data you need to build all representations of the object This should cover all the representations you intend to make- just because the HTML representation doesnt need to show the updated date doesnt mean the RSS or Atom or RDF dont need it Some resources will transclude others. You dont need to define the data required for these - just reference the transcluded resource

Build up your HTML pages and other representations Now you know what data you need you can begin to surface this in your representations If youre working in HTML make sure you design your document to be semantically correct and accessible Try not to think about page layout - thats the job of CSS not HTML In general your page should be structured into title, content, navigation - screen readers dont want to fight through calendar tables etc to get to the content

Add caching and search sitemaps Knowing what can be cached and for how long is a vital part of designing your user experience Cache for too long and pages go stale Dont cache for long enough and you send unnecessary traffic across the wires and place extra strain on your application Cached pages will also be faster and smoother to render in a browser And if your users are paying for data on a mobile every extra connection means bigger bills An example: if youre creating a schedule page for todays TV you want to cache for performance reasons but you dont want to cache it for too long since schedules are subject to change. But you can cache yesterdays schedule more aggressively and last weeks schedule more aggressively still Creating XML search sitemaps helps search engines know which bits of your site have been updated. Which helps them to know which bits to re-index

Apply layout CSS Add layout CSS to your HTML pages Experiment with different layouts for your markup by moving elements around the page

Test and iterate You should be testing with real users at every stage of development but its particularly important to conduct usability AND accessibility tests now Its like testing traditional wireframes but youre testing on the real application with real application behaviours and real data (no lorum ipsum) Sometimes the results of your testing will require changes to layout CSS, sometimes to markup, sometimes to the data you need to surface and sometimes to the underlying domain / data model Bear in mind if youre using data from existing business systems there may need to be heavy investment to make changes to that data model and employ the staff to admin those changes Occasionally it might even mean renegotiating contracts with outside data providers - all design and usability issues are fixable - some just need more lawyers than others : )

Apply décor CSS Over the top of your wireframe application you can now start to add visual design and branding This is exactly the same process as taking a paper wireframe and applying design treatments over the top except youre mainly working in CSS Experiment with different treatments - see how far you can stretch the design with the markup given Sometimes youll need to add additional markup to hook your CSS off Nows the time to add background imagery for headers, dividers, buttons, list items etc so best to open Photoshop / Illustrator to make your design assets

And test and iterate Never stop testing Remember that personas are just abstractions of people - its always better to use real people Ideally you should be able to adjust your code / markup / CSS to respond to user requests If you can afford the recruitment / developer time theres no better way to test than with a user sitting alongside a developer - the developer can react to user requests, tweak the application and gain instant feedback without the ambiguity that sometimes comes from test reports Again you should accessibility test - some of the design / décor changes may affect font sizes etc - make sure your users can still read the page

Add any JavaScript / AJAX By designing your browsable site first and adding in Javascript / AJAX over the top you stand a better chance of making an accessible web site - one that degrades gracefully As ever Google et al are your least able users - search bots dont like forms or JavaScript - sites that degrade well for accessibility also degrade well for search engines Making every subsidiary resource addressable and providing these resources serialised as XML or JSON makes adding AJAX relatively trivial Youll probably need to tweak your CSS to adjust to life with JavaScript / AJAX

And test and iterate Again test your site for accessibility and usability with JavaScript turned on and off

Continue Follow the same steps for each development cycle Some development cycles will just be about surfacing new views of the existing domain model; some will require expanding your domain model Now you know your domain model and have made each domain object addressable layering over new views and more subtle user journeys should be trivial And keep testing!