SlideShare une entreprise Scribd logo
1  sur  25
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 they’re concerned with Make a list of these objects
Identify the relationships between your domain objects As your knowledge of the domain increases you’ll 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 don’t 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, don’t expose your internal organisational structures through your website. Users don’t 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 party’s 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 you’ll need a way of piping it into your database schema You’ll 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 isn’t 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 It’s nice if URIs are human readable It’s also nice if they’re hackable It’s an absolute prerequisite that they’re persistent Don’t 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 don’t 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 doesn’t need to show the updated date doesn’t mean the RSS or Atom or RDF don’t need it Some resources will transclude others. You don’t 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 you’re working in HTML make sure you design your document to be semantically correct and accessible Try not to think about page layout - that’s the job of CSS not HTML In general your page should be structured into title, content, navigation - screen readers don’t 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 Don’t 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 you’re creating a schedule page for today’s TV you want to cache for performance reasons but you don’t want to cache it for too long since schedules are subject to change. But you can cache yesterday’s schedule more aggressively and last week’s 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 it’s particularly important to conduct usability AND accessibility tests now It’s like testing traditional wireframes but you’re 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 you’re 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 you’re mainly working in CSS Experiment with different treatments - see how far you can stretch the design with the markup given Sometimes you’ll need to add additional markup to hook your CSS off Now’s 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 - it’s 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 there’s 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 don’t 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 You’ll 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!

Contenu connexe

Tendances

Competitive On Site Optimization
Competitive On Site OptimizationCompetitive On Site Optimization
Competitive On Site OptimizationSean Si
 
Complete Guide to Seo Footprints
Complete Guide to Seo FootprintsComplete Guide to Seo Footprints
Complete Guide to Seo FootprintsPritesh Das
 
TFM - Using Google Tag Manager for ecom
TFM - Using Google Tag Manager for ecom TFM - Using Google Tag Manager for ecom
TFM - Using Google Tag Manager for ecom Gerry White
 
The duck soup link building guide
The duck soup link building guideThe duck soup link building guide
The duck soup link building guideTabish Javed
 
Designyourownblog.com External Links Audit
Designyourownblog.com External Links AuditDesignyourownblog.com External Links Audit
Designyourownblog.com External Links AuditJames Allen
 
The must have guide to finding backlinks the mammoth approach
The must have guide to finding backlinks the mammoth approachThe must have guide to finding backlinks the mammoth approach
The must have guide to finding backlinks the mammoth approachjakeyfriendship11
 
EDU and GOV Dofollow Backlinks 2017
EDU and GOV Dofollow Backlinks 2017EDU and GOV Dofollow Backlinks 2017
EDU and GOV Dofollow Backlinks 2017besttopinfo
 
External Backlink Analysis
External Backlink AnalysisExternal Backlink Analysis
External Backlink AnalysisJames Allen
 
Promoting your website_through_search_engine
Promoting your website_through_search_enginePromoting your website_through_search_engine
Promoting your website_through_search_engineKhirulnizam Abd Rahman
 
Technical SEO - Gone is Never Gone - Fixing Generational Cruft and Technical ...
Technical SEO - Gone is Never Gone - Fixing Generational Cruft and Technical ...Technical SEO - Gone is Never Gone - Fixing Generational Cruft and Technical ...
Technical SEO - Gone is Never Gone - Fixing Generational Cruft and Technical ...Dawn Anderson MSc DigM
 
Understanding SEO
Understanding SEOUnderstanding SEO
Understanding SEOTim Huegdon
 
11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSS11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSSOliver Brett
 
Duplicate Content Myths Types and Ways To Make It Work For You
Duplicate Content Myths Types and Ways To Make It Work For YouDuplicate Content Myths Types and Ways To Make It Work For You
Duplicate Content Myths Types and Ways To Make It Work For YouDawn Anderson MSc DigM
 
SEO - Stop Eating Your Words - Avoid Cannibalisation Of Your Sites
SEO - Stop Eating Your Words - Avoid Cannibalisation Of Your SitesSEO - Stop Eating Your Words - Avoid Cannibalisation Of Your Sites
SEO - Stop Eating Your Words - Avoid Cannibalisation Of Your SitesDawn Anderson MSc DigM
 
Online Visibility Worksheet for Social Profiles
Online Visibility Worksheet for Social ProfilesOnline Visibility Worksheet for Social Profiles
Online Visibility Worksheet for Social ProfilesYo! Yo! SEO
 
Designyourownblog.com On-Site SEO Auidt
Designyourownblog.com On-Site SEO AuidtDesignyourownblog.com On-Site SEO Auidt
Designyourownblog.com On-Site SEO AuidtJames Allen
 

Tendances (20)

Competitive On Site Optimization
Competitive On Site OptimizationCompetitive On Site Optimization
Competitive On Site Optimization
 
Complete Guide to Seo Footprints
Complete Guide to Seo FootprintsComplete Guide to Seo Footprints
Complete Guide to Seo Footprints
 
seo savage 2012
seo savage 2012seo savage 2012
seo savage 2012
 
SEO Tips Even Mom Would Love
SEO Tips Even Mom Would LoveSEO Tips Even Mom Would Love
SEO Tips Even Mom Would Love
 
TFM - Using Google Tag Manager for ecom
TFM - Using Google Tag Manager for ecom TFM - Using Google Tag Manager for ecom
TFM - Using Google Tag Manager for ecom
 
The duck soup link building guide
The duck soup link building guideThe duck soup link building guide
The duck soup link building guide
 
Designyourownblog.com External Links Audit
Designyourownblog.com External Links AuditDesignyourownblog.com External Links Audit
Designyourownblog.com External Links Audit
 
The must have guide to finding backlinks the mammoth approach
The must have guide to finding backlinks the mammoth approachThe must have guide to finding backlinks the mammoth approach
The must have guide to finding backlinks the mammoth approach
 
EDU and GOV Dofollow Backlinks 2017
EDU and GOV Dofollow Backlinks 2017EDU and GOV Dofollow Backlinks 2017
EDU and GOV Dofollow Backlinks 2017
 
External Backlink Analysis
External Backlink AnalysisExternal Backlink Analysis
External Backlink Analysis
 
SEO Benchmark
SEO BenchmarkSEO Benchmark
SEO Benchmark
 
Seo Book
Seo BookSeo Book
Seo Book
 
Promoting your website_through_search_engine
Promoting your website_through_search_enginePromoting your website_through_search_engine
Promoting your website_through_search_engine
 
Technical SEO - Gone is Never Gone - Fixing Generational Cruft and Technical ...
Technical SEO - Gone is Never Gone - Fixing Generational Cruft and Technical ...Technical SEO - Gone is Never Gone - Fixing Generational Cruft and Technical ...
Technical SEO - Gone is Never Gone - Fixing Generational Cruft and Technical ...
 
Understanding SEO
Understanding SEOUnderstanding SEO
Understanding SEO
 
11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSS11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSS
 
Duplicate Content Myths Types and Ways To Make It Work For You
Duplicate Content Myths Types and Ways To Make It Work For YouDuplicate Content Myths Types and Ways To Make It Work For You
Duplicate Content Myths Types and Ways To Make It Work For You
 
SEO - Stop Eating Your Words - Avoid Cannibalisation Of Your Sites
SEO - Stop Eating Your Words - Avoid Cannibalisation Of Your SitesSEO - Stop Eating Your Words - Avoid Cannibalisation Of Your Sites
SEO - Stop Eating Your Words - Avoid Cannibalisation Of Your Sites
 
Online Visibility Worksheet for Social Profiles
Online Visibility Worksheet for Social ProfilesOnline Visibility Worksheet for Social Profiles
Online Visibility Worksheet for Social Profiles
 
Designyourownblog.com On-Site SEO Auidt
Designyourownblog.com On-Site SEO AuidtDesignyourownblog.com On-Site SEO Auidt
Designyourownblog.com On-Site SEO Auidt
 

Similaire à How We Make Websites

How we make websites (IWMW2009)
How we make websites (IWMW2009)How we make websites (IWMW2009)
How we make websites (IWMW2009)fantasticlife
 
How the BBC Make Web sites
How the BBC Make Web sitesHow the BBC Make Web sites
How the BBC Make Web sitesIWMW
 
Datalayer Best Practices with Observepoint
Datalayer Best Practices with ObservepointDatalayer Best Practices with Observepoint
Datalayer Best Practices with ObservepointMike Plant
 
Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for BeginnersD'arce Hess
 
The A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThe A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThomas Daly
 
Graphic Design For Web
Graphic Design For WebGraphic Design For Web
Graphic Design For WebDeniz Gökçe
 
Spca2014 introduction responsive master page niaulin
Spca2014 introduction responsive master page niaulinSpca2014 introduction responsive master page niaulin
Spca2014 introduction responsive master page niaulinNCCOMMS
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websiteswebsiteunlimited
 
Choosing the best front end framework for web development 2020
Choosing the best front end framework for web development 2020Choosing the best front end framework for web development 2020
Choosing the best front end framework for web development 2020Katy Slemon
 
Lesson 8 Computer Creating your Website.pdf
Lesson 8 Computer Creating your Website.pdfLesson 8 Computer Creating your Website.pdf
Lesson 8 Computer Creating your Website.pdfAshleyJovelClavecill
 
Is everything we used to do wrong?
Is everything we used to do wrong?Is everything we used to do wrong?
Is everything we used to do wrong?Russ Weakley
 
Building complex sites with Joomla
Building complex sites with JoomlaBuilding complex sites with Joomla
Building complex sites with JoomlaPaul Delbar
 
Relational database concept and technology
Relational database concept and technologyRelational database concept and technology
Relational database concept and technologyDucat
 
SEF2013 - Create a Business Solution, Step by Step, with No Managed Code
SEF2013 - Create a Business Solution, Step by Step, with No Managed CodeSEF2013 - Create a Business Solution, Step by Step, with No Managed Code
SEF2013 - Create a Business Solution, Step by Step, with No Managed CodeMarc D Anderson
 
Leverage Your Online Web Presence
Leverage Your Online Web PresenceLeverage Your Online Web Presence
Leverage Your Online Web PresenceSusan Boone
 
Web 2.0 Mashups
Web 2.0 MashupsWeb 2.0 Mashups
Web 2.0 Mashupshchen1
 
ASSESSMENT BRIEF COURSE Bachelor of Business Bachel.docx
ASSESSMENT BRIEF COURSE Bachelor of Business  Bachel.docxASSESSMENT BRIEF COURSE Bachelor of Business  Bachel.docx
ASSESSMENT BRIEF COURSE Bachelor of Business Bachel.docxgalerussel59292
 
Migrating Large Amounts of Web Content
Migrating Large Amounts of Web ContentMigrating Large Amounts of Web Content
Migrating Large Amounts of Web ContentJeff Evans
 
Make SharePoint Look Not Like SharePoint - SPSNashville - Cathy Dew
Make SharePoint Look Not Like SharePoint - SPSNashville - Cathy DewMake SharePoint Look Not Like SharePoint - SPSNashville - Cathy Dew
Make SharePoint Look Not Like SharePoint - SPSNashville - Cathy DewCathy Dew
 

Similaire à How We Make Websites (20)

How we make websites (IWMW2009)
How we make websites (IWMW2009)How we make websites (IWMW2009)
How we make websites (IWMW2009)
 
How the BBC Make Web sites
How the BBC Make Web sitesHow the BBC Make Web sites
How the BBC Make Web sites
 
Datalayer Best Practices with Observepoint
Datalayer Best Practices with ObservepointDatalayer Best Practices with Observepoint
Datalayer Best Practices with Observepoint
 
Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for Beginners
 
The A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThe A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with Bootstrap
 
Graphic Design For Web
Graphic Design For WebGraphic Design For Web
Graphic Design For Web
 
Spca2014 introduction responsive master page niaulin
Spca2014 introduction responsive master page niaulinSpca2014 introduction responsive master page niaulin
Spca2014 introduction responsive master page niaulin
 
Presentation 1 [autosaved]
Presentation 1 [autosaved]Presentation 1 [autosaved]
Presentation 1 [autosaved]
 
Websites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly WebsitesWebsites Unlimited - Pay Monthly Websites
Websites Unlimited - Pay Monthly Websites
 
Choosing the best front end framework for web development 2020
Choosing the best front end framework for web development 2020Choosing the best front end framework for web development 2020
Choosing the best front end framework for web development 2020
 
Lesson 8 Computer Creating your Website.pdf
Lesson 8 Computer Creating your Website.pdfLesson 8 Computer Creating your Website.pdf
Lesson 8 Computer Creating your Website.pdf
 
Is everything we used to do wrong?
Is everything we used to do wrong?Is everything we used to do wrong?
Is everything we used to do wrong?
 
Building complex sites with Joomla
Building complex sites with JoomlaBuilding complex sites with Joomla
Building complex sites with Joomla
 
Relational database concept and technology
Relational database concept and technologyRelational database concept and technology
Relational database concept and technology
 
SEF2013 - Create a Business Solution, Step by Step, with No Managed Code
SEF2013 - Create a Business Solution, Step by Step, with No Managed CodeSEF2013 - Create a Business Solution, Step by Step, with No Managed Code
SEF2013 - Create a Business Solution, Step by Step, with No Managed Code
 
Leverage Your Online Web Presence
Leverage Your Online Web PresenceLeverage Your Online Web Presence
Leverage Your Online Web Presence
 
Web 2.0 Mashups
Web 2.0 MashupsWeb 2.0 Mashups
Web 2.0 Mashups
 
ASSESSMENT BRIEF COURSE Bachelor of Business Bachel.docx
ASSESSMENT BRIEF COURSE Bachelor of Business  Bachel.docxASSESSMENT BRIEF COURSE Bachelor of Business  Bachel.docx
ASSESSMENT BRIEF COURSE Bachelor of Business Bachel.docx
 
Migrating Large Amounts of Web Content
Migrating Large Amounts of Web ContentMigrating Large Amounts of Web Content
Migrating Large Amounts of Web Content
 
Make SharePoint Look Not Like SharePoint - SPSNashville - Cathy Dew
Make SharePoint Look Not Like SharePoint - SPSNashville - Cathy DewMake SharePoint Look Not Like SharePoint - SPSNashville - Cathy Dew
Make SharePoint Look Not Like SharePoint - SPSNashville - Cathy Dew
 

Plus de fantasticlife

Ontologies, URLs and Registers
Ontologies, URLs and RegistersOntologies, URLs and Registers
Ontologies, URLs and Registersfantasticlife
 
Toward a parliamentary domain model
Toward a parliamentary domain modelToward a parliamentary domain model
Toward a parliamentary domain modelfantasticlife
 
Linked data context strategy
Linked data context strategyLinked data context strategy
Linked data context strategyfantasticlife
 
People on bbccouk_pitch_nov2012
People on bbccouk_pitch_nov2012People on bbccouk_pitch_nov2012
People on bbccouk_pitch_nov2012fantasticlife
 
Old Media, New Media, the productisation of publishing and the tethered appli...
Old Media, New Media, the productisation of publishing and the tethered appli...Old Media, New Media, the productisation of publishing and the tethered appli...
Old Media, New Media, the productisation of publishing and the tethered appli...fantasticlife
 

Plus de fantasticlife (7)

Ontologies, URLs and Registers
Ontologies, URLs and RegistersOntologies, URLs and Registers
Ontologies, URLs and Registers
 
Toward a parliamentary domain model
Toward a parliamentary domain modelToward a parliamentary domain model
Toward a parliamentary domain model
 
Linked data context strategy
Linked data context strategyLinked data context strategy
Linked data context strategy
 
People on bbccouk_pitch_nov2012
People on bbccouk_pitch_nov2012People on bbccouk_pitch_nov2012
People on bbccouk_pitch_nov2012
 
Old Media, New Media, the productisation of publishing and the tethered appli...
Old Media, New Media, the productisation of publishing and the tethered appli...Old Media, New Media, the productisation of publishing and the tethered appli...
Old Media, New Media, the productisation of publishing and the tethered appli...
 
Semweb at the BBC
Semweb at the BBCSemweb at the BBC
Semweb at the BBC
 
BBC Programmes
BBC ProgrammesBBC Programmes
BBC Programmes
 

Dernier

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 

Dernier (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 

How We Make Websites

  • 1. How we make websites Michael Smethurst Information Architect BBC Audio and Music
  • 2. Designing and building data driven dynamic web applications… … the one web, domain driven, RESTful, open, linked data way
  • 3. 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
  • 4. Identify your domain objects As you chat and sketch with your domain expert you should build up a picture of the types of things they’re concerned with Make a list of these objects
  • 5. Identify the relationships between your domain objects As your knowledge of the domain increases you’ll 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
  • 6. 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
  • 7. 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 don’t 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, don’t expose your internal organisational structures through your website. Users don’t care about departments or reporting lines
  • 8. Design your database Translate your domain model into a physical database schema
  • 9. 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 party’s 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?
  • 10. Pipe in your data Whether you choose to use your business data or buy data or use open data you’ll need a way of piping it into your database schema You’ll probably have to reshape it to make it suitable for publishing
  • 11. 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
  • 12. Design your URI schema This should follow naturally from your domain model This isn’t 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
  • 13. The usual rant about persistence It’s nice if URIs are human readable It’s also nice if they’re hackable It’s an absolute prerequisite that they’re persistent Don’t 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 don’t change *
  • 14. Make hello world pages for your primary domain objects For now all they need is an h1 with the title of the object
  • 15. 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
  • 16. 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 doesn’t need to show the updated date doesn’t mean the RSS or Atom or RDF don’t need it Some resources will transclude others. You don’t need to define the data required for these - just reference the transcluded resource
  • 17. 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 you’re working in HTML make sure you design your document to be semantically correct and accessible Try not to think about page layout - that’s the job of CSS not HTML In general your page should be structured into title, content, navigation - screen readers don’t want to fight through calendar tables etc to get to the content
  • 18. 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 Don’t 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 you’re creating a schedule page for today’s TV you want to cache for performance reasons but you don’t want to cache it for too long since schedules are subject to change. But you can cache yesterday’s schedule more aggressively and last week’s 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
  • 19. Apply layout CSS Add layout CSS to your HTML pages Experiment with different layouts for your markup by moving elements around the page
  • 20. Test and iterate You should be testing with real users at every stage of development but it’s particularly important to conduct usability AND accessibility tests now It’s like testing traditional wireframes but you’re 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 you’re 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 : )
  • 21. 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 you’re mainly working in CSS Experiment with different treatments - see how far you can stretch the design with the markup given Sometimes you’ll need to add additional markup to hook your CSS off Now’s the time to add background imagery for headers, dividers, buttons, list items etc so best to open Photoshop / Illustrator to make your design assets
  • 22. And test and iterate Never stop testing Remember that personas are just abstractions of people - it’s 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 there’s 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
  • 23. 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 don’t 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 You’ll probably need to tweak your CSS to adjust to life with JavaScript / AJAX
  • 24. And test and iterate Again test your site for accessibility and usability with JavaScript turned on and off
  • 25. 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!