SlideShare une entreprise Scribd logo
1  sur  70
How we make websites BBC Audio and Music
Matthew Wood  Head of Architecture Michael Smethurst   Information Architect
http://www.bbc.co.uk/programmes
Piccie of blog post
Piccie of response
j.speller  4 months ago Be good to see but, sadly for use in HE, how the BBC makes websites is with loads of  licence payers' dosh ...
Designing and building data driven dynamic web applications… … the one web, domain driven, RESTful, open, linked data way
Designing and building data driven dynamic web applications… … the  one web , domain driven, RESTful, open, linked data way
Designing and building data driven dynamic web applications… … the one web,  domain driven , RESTful, open, linked data way
Designing and building data driven dynamic web applications… … the one web, domain driven,  RESTful , open, linked data way
Designing and building data driven dynamic web applications… … the one web, domain driven, RESTful,  open , linked data way
Designing and building data driven dynamic web applications… … the one web, domain driven, RESTful, open,  linked data  way
Explore the domain
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 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
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
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
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
Design your database Translate your domain model into a  physical database schema
Source your data
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
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
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
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
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
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
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
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
Apply layout CSS
Apply layout CSS Add layout CSS to your HTML pages Experiment with different layouts for your markup by moving elements around the page You’re  wireframing
Test and iterate
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
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
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, colours etc - make sure your users can still read the page
Add any JavaScript / AJAX
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
And test and iterate Again test your site for accessibility and usability with  JavaScript turned on and off
Continue
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!
The websites we make
http://www.bbc.co.uk /programmes
Readable, hackable URIs for aggregations
http://www.bbc.co.uk /programmes/genres/music/folk
http://www.bbc.co.uk /radio2 /programmes/genres/music/folk
http://www.bbc.co.uk/radio2/programmes /schedules/2009/07/24
http://www.bbc.co.uk/radio2/programmes/schedules/2009/07/24 .xml
Persistent URIs for primary domain objects (brands, series, episodes…)
http://www.bbc.co.uk/programmes /b00lqcs1
http://www.bbc.co.uk/programmes/b00lqcs1 .mp
http://www.bbc.co.uk/programmes/b00lqcs1 .rdf
All subsidiary resources addressable
http://www.bbc.co.uk/programmes/b00lqcs1 /segments
And all linked up to…
http://www.bbc.co.uk /music
Questions ?

Contenu connexe

Tendances

Branding 101 extended
Branding 101 extendedBranding 101 extended
Branding 101 extendedD'arce Hess
 
Branding sharepoint project
Branding sharepoint projectBranding sharepoint project
Branding sharepoint projectBinh Nguyen
 
Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...
Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...
Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...SPTechCon
 
How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3Ryan McIntyre
 
Website Architecture and Site Migration Guide (2015)
Website Architecture and Site Migration Guide (2015)Website Architecture and Site Migration Guide (2015)
Website Architecture and Site Migration Guide (2015)Sankar Ponnusamy
 
Step into the SharePoint branding world, tools and techniques
Step into the SharePoint branding world, tools and techniquesStep into the SharePoint branding world, tools and techniques
Step into the SharePoint branding world, tools and techniquesBenjamin Niaulin
 
Transform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptTransform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptJohn Calvert
 
Code & Design Your First Website (Downtown Los Angeles)
Code & Design Your First Website (Downtown Los Angeles)Code & Design Your First Website (Downtown Los Angeles)
Code & Design Your First Website (Downtown Los Angeles)Thinkful
 
Web Design Notes
Web Design NotesWeb Design Notes
Web Design Notesbutest
 
SEO (Search Engine Optimisation) and SEM (Search Engine Marketing) - Seminar ...
SEO (Search Engine Optimisation) and SEM (Search Engine Marketing) - Seminar ...SEO (Search Engine Optimisation) and SEM (Search Engine Marketing) - Seminar ...
SEO (Search Engine Optimisation) and SEM (Search Engine Marketing) - Seminar ...Beat Signer
 
Webmaster Jam Session: Design and Development Behind the Scenes Day Two
Webmaster Jam Session: Design and Development Behind the Scenes Day TwoWebmaster Jam Session: Design and Development Behind the Scenes Day Two
Webmaster Jam Session: Design and Development Behind the Scenes Day Twodkr
 
Create your own SharePoint Master Pages and Page Layouts
Create your own SharePoint Master Pages and Page LayoutsCreate your own SharePoint Master Pages and Page Layouts
Create your own SharePoint Master Pages and Page LayoutsEric Overfield
 
Branding SharePoint from Prototype to Deployment - Workshop
Branding SharePoint from Prototype to Deployment - WorkshopBranding SharePoint from Prototype to Deployment - Workshop
Branding SharePoint from Prototype to Deployment - WorkshopEric Overfield
 
Responsive Web Design - NYC Webgrrls
Responsive Web Design - NYC WebgrrlsResponsive Web Design - NYC Webgrrls
Responsive Web Design - NYC WebgrrlsAmelie Walker-Yung
 

Tendances (20)

Branding 101 extended
Branding 101 extendedBranding 101 extended
Branding 101 extended
 
ARTICULOENINGLES
ARTICULOENINGLESARTICULOENINGLES
ARTICULOENINGLES
 
Branding 101
Branding 101Branding 101
Branding 101
 
Branding sharepoint project
Branding sharepoint projectBranding sharepoint project
Branding sharepoint project
 
Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...
Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...
Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...
 
Tips for share point branding
Tips for share point brandingTips for share point branding
Tips for share point branding
 
How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3
 
Website Architecture and Site Migration Guide (2015)
Website Architecture and Site Migration Guide (2015)Website Architecture and Site Migration Guide (2015)
Website Architecture and Site Migration Guide (2015)
 
Step into the SharePoint branding world, tools and techniques
Step into the SharePoint branding world, tools and techniquesStep into the SharePoint branding world, tools and techniques
Step into the SharePoint branding world, tools and techniques
 
Transform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScriptTransform SharePoint default list forms with HTML, CSS and JavaScript
Transform SharePoint default list forms with HTML, CSS and JavaScript
 
Web designing course bangalore
Web designing course bangaloreWeb designing course bangalore
Web designing course bangalore
 
Code & Design Your First Website (Downtown Los Angeles)
Code & Design Your First Website (Downtown Los Angeles)Code & Design Your First Website (Downtown Los Angeles)
Code & Design Your First Website (Downtown Los Angeles)
 
Web Design Notes
Web Design NotesWeb Design Notes
Web Design Notes
 
SEO (Search Engine Optimisation) and SEM (Search Engine Marketing) - Seminar ...
SEO (Search Engine Optimisation) and SEM (Search Engine Marketing) - Seminar ...SEO (Search Engine Optimisation) and SEM (Search Engine Marketing) - Seminar ...
SEO (Search Engine Optimisation) and SEM (Search Engine Marketing) - Seminar ...
 
Sacramento web design
Sacramento web designSacramento web design
Sacramento web design
 
Webmaster Jam Session: Design and Development Behind the Scenes Day Two
Webmaster Jam Session: Design and Development Behind the Scenes Day TwoWebmaster Jam Session: Design and Development Behind the Scenes Day Two
Webmaster Jam Session: Design and Development Behind the Scenes Day Two
 
Create your own SharePoint Master Pages and Page Layouts
Create your own SharePoint Master Pages and Page LayoutsCreate your own SharePoint Master Pages and Page Layouts
Create your own SharePoint Master Pages and Page Layouts
 
Branding SharePoint from Prototype to Deployment - Workshop
Branding SharePoint from Prototype to Deployment - WorkshopBranding SharePoint from Prototype to Deployment - Workshop
Branding SharePoint from Prototype to Deployment - Workshop
 
Website Sitemap
Website SitemapWebsite Sitemap
Website Sitemap
 
Responsive Web Design - NYC Webgrrls
Responsive Web Design - NYC WebgrrlsResponsive Web Design - NYC Webgrrls
Responsive Web Design - NYC Webgrrls
 

Similaire à BBC Audio and Music Website Architecture

How We Make Websites
How We Make WebsitesHow We Make Websites
How We Make Websitesfantasticlife
 
Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for BeginnersD'arce Hess
 
WordPress North East (Jan 2021) ~ SEO Fundamentals For WordPress
WordPress North East (Jan 2021) ~ SEO Fundamentals For WordPressWordPress North East (Jan 2021) ~ SEO Fundamentals For WordPress
WordPress North East (Jan 2021) ~ SEO Fundamentals For WordPressDan Taylor
 
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
 
Datalayer Best Practices with Observepoint
Datalayer Best Practices with ObservepointDatalayer Best Practices with Observepoint
Datalayer Best Practices with ObservepointMike Plant
 
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
 
Leverage Your Online Web Presence
Leverage Your Online Web PresenceLeverage Your Online Web Presence
Leverage Your Online Web PresenceSusan Boone
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 Evan Mullins
 
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
 
Demystifying The Web
Demystifying The WebDemystifying The Web
Demystifying The WebLoft Creative
 
New understanding website
New understanding websiteNew understanding website
New understanding websitereddvise
 
Data Analytics Course Syllabus
Data Analytics Course Syllabus Data Analytics Course Syllabus
Data Analytics Course Syllabus NxtWave
 
Organize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS TricksOrganize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS TricksAndolasoft Inc
 
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
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!Evan Mullins
 
Spca2014 introduction responsive master page niaulin
Spca2014 introduction responsive master page niaulinSpca2014 introduction responsive master page niaulin
Spca2014 introduction responsive master page niaulinNCCOMMS
 
How to Project-Manage and Implement a Responsive Website
How to Project-Manage and Implement a Responsive WebsiteHow to Project-Manage and Implement a Responsive Website
How to Project-Manage and Implement a Responsive WebsiteJj Jurgens
 
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by StepBootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by StepBootstrap Creative
 

Similaire à BBC Audio and Music Website Architecture (20)

How We Make Websites
How We Make WebsitesHow We Make Websites
How We Make Websites
 
Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for Beginners
 
WordPress North East (Jan 2021) ~ SEO Fundamentals For WordPress
WordPress North East (Jan 2021) ~ SEO Fundamentals For WordPressWordPress North East (Jan 2021) ~ SEO Fundamentals For WordPress
WordPress North East (Jan 2021) ~ SEO Fundamentals For WordPress
 
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
 
Datalayer Best Practices with Observepoint
Datalayer Best Practices with ObservepointDatalayer Best Practices with Observepoint
Datalayer Best Practices with Observepoint
 
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
 
Leverage Your Online Web Presence
Leverage Your Online Web PresenceLeverage Your Online Web Presence
Leverage Your Online Web Presence
 
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017 So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
So, You Wanna Dev? Join the Team! - WordCamp Raleigh 2017
 
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
 
Demystifying The Web
Demystifying The WebDemystifying The Web
Demystifying The Web
 
New understanding website
New understanding websiteNew understanding website
New understanding website
 
ppt of MANOJ KUMAR.pptx
ppt of MANOJ KUMAR.pptxppt of MANOJ KUMAR.pptx
ppt of MANOJ KUMAR.pptx
 
Data Analytics Course Syllabus
Data Analytics Course Syllabus Data Analytics Course Syllabus
Data Analytics Course Syllabus
 
Organize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS TricksOrganize Your Website With Advanced CSS Tricks
Organize Your Website With Advanced CSS Tricks
 
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
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
 
Boost and SEO
Boost and SEOBoost and SEO
Boost and SEO
 
Spca2014 introduction responsive master page niaulin
Spca2014 introduction responsive master page niaulinSpca2014 introduction responsive master page niaulin
Spca2014 introduction responsive master page niaulin
 
How to Project-Manage and Implement a Responsive Website
How to Project-Manage and Implement a Responsive WebsiteHow to Project-Manage and Implement a Responsive Website
How to Project-Manage and Implement a Responsive Website
 
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by StepBootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
Bootstrap 4 Tutorial PDF for Beginners - Learn Step by Step
 

Plus de IWMW

Look who's talking now
Look who's talking nowLook who's talking now
Look who's talking nowIWMW
 
Introduction to IWMW 2000 (Liz Lyon)
Introduction to IWMW 2000 (Liz Lyon)Introduction to IWMW 2000 (Liz Lyon)
Introduction to IWMW 2000 (Liz Lyon)IWMW
 
Web Tools report
Web Tools reportWeb Tools report
Web Tools reportIWMW
 
Personal Contingency Plan - Beat The Panic
Personal Contingency Plan - Beat The PanicPersonal Contingency Plan - Beat The Panic
Personal Contingency Plan - Beat The PanicIWMW
 
Whose site is it anyway?
Whose site is it anyway?Whose site is it anyway?
Whose site is it anyway?IWMW
 
Open Source - the case against
Open Source - the case againstOpen Source - the case against
Open Source - the case againstIWMW
 
IWMW 2002: Avoiding Portal Wars - an MIS view
IWMW 2002: Avoiding Portal Wars - an MIS viewIWMW 2002: Avoiding Portal Wars - an MIS view
IWMW 2002: Avoiding Portal Wars - an MIS viewIWMW
 
What does open source mean for the institutional web manager?
What does open source mean for the institutional web manager?What does open source mean for the institutional web manager?
What does open source mean for the institutional web manager?IWMW
 
Library 2.0
Library 2.0Library 2.0
Library 2.0IWMW
 
Social participation in student recruitment
Social participation in student recruitmentSocial participation in student recruitment
Social participation in student recruitmentIWMW
 
Supporting Institutions in Changing Times: Manifesto
Supporting Institutions in Changing Times: ManifestoSupporting Institutions in Changing Times: Manifesto
Supporting Institutions in Changing Times: ManifestoIWMW
 
IWMW 2019 photo scavenger hunt highlights
IWMW 2019 photo scavenger hunt highlightsIWMW 2019 photo scavenger hunt highlights
IWMW 2019 photo scavenger hunt highlightsIWMW
 
How to Turn a Web Strategy into Web Services
How to Turn a Web Strategy into Web ServicesHow to Turn a Web Strategy into Web Services
How to Turn a Web Strategy into Web ServicesIWMW
 
Static Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource ConditionStatic Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource ConditionIWMW
 
Looking to the Future
Looking to the FutureLooking to the Future
Looking to the FutureIWMW
 
Looking to the Future
Looking to the FutureLooking to the Future
Looking to the FutureIWMW
 
Developing Communities of Practice
Developing Communities of PracticeDeveloping Communities of Practice
Developing Communities of PracticeIWMW
 
How to train your content- so it doesn't slow you down...
How to train your content- so it doesn't slow you down... How to train your content- so it doesn't slow you down...
How to train your content- so it doesn't slow you down... IWMW
 
Grassroots & Guerrillas: The Beginnings of a UX Revolution
Grassroots & Guerrillas: The Beginnings of a UX RevolutionGrassroots & Guerrillas: The Beginnings of a UX Revolution
Grassroots & Guerrillas: The Beginnings of a UX RevolutionIWMW
 
Connecting Your Content: How to Save Time and Improve Content Quality through...
Connecting Your Content: How to Save Time and Improve Content Quality through...Connecting Your Content: How to Save Time and Improve Content Quality through...
Connecting Your Content: How to Save Time and Improve Content Quality through...IWMW
 

Plus de IWMW (20)

Look who's talking now
Look who's talking nowLook who's talking now
Look who's talking now
 
Introduction to IWMW 2000 (Liz Lyon)
Introduction to IWMW 2000 (Liz Lyon)Introduction to IWMW 2000 (Liz Lyon)
Introduction to IWMW 2000 (Liz Lyon)
 
Web Tools report
Web Tools reportWeb Tools report
Web Tools report
 
Personal Contingency Plan - Beat The Panic
Personal Contingency Plan - Beat The PanicPersonal Contingency Plan - Beat The Panic
Personal Contingency Plan - Beat The Panic
 
Whose site is it anyway?
Whose site is it anyway?Whose site is it anyway?
Whose site is it anyway?
 
Open Source - the case against
Open Source - the case againstOpen Source - the case against
Open Source - the case against
 
IWMW 2002: Avoiding Portal Wars - an MIS view
IWMW 2002: Avoiding Portal Wars - an MIS viewIWMW 2002: Avoiding Portal Wars - an MIS view
IWMW 2002: Avoiding Portal Wars - an MIS view
 
What does open source mean for the institutional web manager?
What does open source mean for the institutional web manager?What does open source mean for the institutional web manager?
What does open source mean for the institutional web manager?
 
Library 2.0
Library 2.0Library 2.0
Library 2.0
 
Social participation in student recruitment
Social participation in student recruitmentSocial participation in student recruitment
Social participation in student recruitment
 
Supporting Institutions in Changing Times: Manifesto
Supporting Institutions in Changing Times: ManifestoSupporting Institutions in Changing Times: Manifesto
Supporting Institutions in Changing Times: Manifesto
 
IWMW 2019 photo scavenger hunt highlights
IWMW 2019 photo scavenger hunt highlightsIWMW 2019 photo scavenger hunt highlights
IWMW 2019 photo scavenger hunt highlights
 
How to Turn a Web Strategy into Web Services
How to Turn a Web Strategy into Web ServicesHow to Turn a Web Strategy into Web Services
How to Turn a Web Strategy into Web Services
 
Static Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource ConditionStatic Site Generators - Developing Websites in Low-resource Condition
Static Site Generators - Developing Websites in Low-resource Condition
 
Looking to the Future
Looking to the FutureLooking to the Future
Looking to the Future
 
Looking to the Future
Looking to the FutureLooking to the Future
Looking to the Future
 
Developing Communities of Practice
Developing Communities of PracticeDeveloping Communities of Practice
Developing Communities of Practice
 
How to train your content- so it doesn't slow you down...
How to train your content- so it doesn't slow you down... How to train your content- so it doesn't slow you down...
How to train your content- so it doesn't slow you down...
 
Grassroots & Guerrillas: The Beginnings of a UX Revolution
Grassroots & Guerrillas: The Beginnings of a UX RevolutionGrassroots & Guerrillas: The Beginnings of a UX Revolution
Grassroots & Guerrillas: The Beginnings of a UX Revolution
 
Connecting Your Content: How to Save Time and Improve Content Quality through...
Connecting Your Content: How to Save Time and Improve Content Quality through...Connecting Your Content: How to Save Time and Improve Content Quality through...
Connecting Your Content: How to Save Time and Improve Content Quality through...
 

Dernier

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Dernier (20)

Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

BBC Audio and Music Website Architecture

  • 1. How we make websites BBC Audio and Music
  • 2. Matthew Wood Head of Architecture Michael Smethurst Information Architect
  • 6. j.speller 4 months ago Be good to see but, sadly for use in HE, how the BBC makes websites is with loads of licence payers' dosh ...
  • 7. Designing and building data driven dynamic web applications… … the one web, domain driven, RESTful, open, linked data way
  • 8. Designing and building data driven dynamic web applications… … the one web , domain driven, RESTful, open, linked data way
  • 9. Designing and building data driven dynamic web applications… … the one web, domain driven , RESTful, open, linked data way
  • 10. Designing and building data driven dynamic web applications… … the one web, domain driven, RESTful , open, linked data way
  • 11. Designing and building data driven dynamic web applications… … the one web, domain driven, RESTful, open , linked data way
  • 12. Designing and building data driven dynamic web applications… … the one web, domain driven, RESTful, open, linked data way
  • 14. 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 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. Check your domain model with users
  • 19. 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
  • 20. Check to see if your website already deals with some of your domain objects
  • 21. 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
  • 22. Design your database Translate your domain model into a physical database schema
  • 23. Design your database Translate your domain model into a physical database schema
  • 25. 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?
  • 26. Pipe in your data
  • 27. 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
  • 29. 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
  • 30. Design your URI schema
  • 31. 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
  • 32. 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 *
  • 33. Make hello world pages for your primary domain objects
  • 34. Make hello world pages for your primary domain objects For now all they need is an h1 with the title of the object
  • 35. Make hello world pages for your primary aggregations
  • 36. 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
  • 37. Define the data you need to build each of your pages
  • 38. 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
  • 39. Build up your HTML pages and other representations
  • 40. 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
  • 42. Apply layout CSS Add layout CSS to your HTML pages Experiment with different layouts for your markup by moving elements around the page You’re wireframing
  • 44. 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 : )
  • 46. 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
  • 47. And test and iterate
  • 48. 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, colours etc - make sure your users can still read the page
  • 50. 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
  • 51. And test and iterate
  • 52. And test and iterate Again test your site for accessibility and usability with JavaScript turned on and off
  • 54. 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!
  • 57. Readable, hackable URIs for aggregations
  • 62. Persistent URIs for primary domain objects (brands, series, episodes…)
  • 68. And all linked up to…