SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Experience-Driven Development &
Contract-First Development
Ryan McGinty & SuAnne Hall
Future Insights 2013
Monday, April 29, 13
hello!
Ryan McGinty
HTML Solutions Lead
EffectiveUI
ryan.mcginty@effectiveui.com
SuAnne Hall
Experience Design
EffectiveUI
suanne.hall@effectiveui.com | @swan5280
Tweeting about this talk? please use #effectiveui and #FILive
Monday, April 29, 13
What we’ll talk about
Why Experience-Driven Development?
Case study with 24/7 Media
Monday, April 29, 13
What we’ll talk about
Why Experience-Driven Development?
Case study with 24/7 Media
Contract-First Development Discussion
Deconstructing wireframes into software contracts, and why the CFD process works
Monday, April 29, 13
What we’ll talk about
Why Experience-Driven Development?
Case study with 24/7 Media
Contract-First Development Discussion
Deconstructing wireframes into software contracts, and why the CFD process works
Balancing Software Contracts with Experience-Driven Development
How to use modern JavaScript frameworks to implement software contracts
Monday, April 29, 13
What we’ll talk about
Why Experience-Driven Development?
Case study with 24/7 Media
Contract-First Development Discussion
Deconstructing wireframes into software contracts, and why the CFD process works
Balancing Software Contracts with Experience-Driven Development
How to use modern JavaScript frameworks to implement software contracts
How to be Part of the Solution
The benefits of a healthy relationship between dev and design
Monday, April 29, 13
What we’ll talk about
Why Experience-Driven Development?
Case study with 24/7 Media
Contract-First Development Discussion
Deconstructing wireframes into software contracts, and why the CFD process works
Balancing Software Contracts with Experience-Driven Development
How to use modern JavaScript frameworks to implement software contracts
How to be Part of the Solution
The benefits of a healthy relationship between dev and design
Q&A time
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Why Experience-Driven Development?
Monday, April 29, 13
Which way is the bus going? Right or Left?
Monday, April 29, 13
The door must be
on the other side
of the bus!!!
Which way is the bus going? Right or Left?
Monday, April 29, 13
Because you can never guess how users will
interpret the products you’re building based on
your own assumptions and experiences.
Why Experience-Driven Development?
Monday, April 29, 13
Because using an experience-driven process can:
Why Experience-Driven Development?
๏ reduce development costs and inefficiencies
๏ create long-lasting and loyal customer relationships
๏ give you an edge over your competition
๏ generate more conversions/business
๏ make more $$$
Monday, April 29, 13
Because a product that is simply ‘user friendly’
will no longer survive.
It must also be:
Why Experience-Driven Development?
Monday, April 29, 13
Because a product that is simply ‘user friendly’
will no longer survive.
It must also be:
Why Experience-Driven Development?
Useful
Meaningful EngagingPersonal
CommunicativeSimplifying Contextual
Delightful
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Contract-First Development
and Wireframe Deconstruction
Monday, April 29, 13
Contract-First Development
๏ With experience-driven development, the
user needs are met first and the experience
design is implemented with continuous input
from development.
Monday, April 29, 13
Contract-First Development
๏ With experience-driven development, the
user needs are met first and the experience
design is implemented with continuous input
from development.
๏ Inevitably UX needs, budget, business
needs, and system constraints will come to
a head.
Monday, April 29, 13
Contract-First Development
๏ With experience-driven development, the
user needs are met first and the experience
design is implemented with continuous input
from development.
๏ Inevitably UX needs, budget, business
needs, and system constraints will come to
a head.
๏ By developing data contracts, front-end and
back-end developers can maximize
development throughput and minimize cost.
Monday, April 29, 13
Case
Study:
Analytical reports for managerial and
executive-level users
User needs identified from customer insight
research:
๏ Simplify the report analysis experience by allowing
users to quickly find answers to “exploratory” high-
level questions:
๏ Designing & developing for an iPad-friendly context
was important
“Which publishers in my inventory are being underutilized?”
“Who’s exceeding their goals, and who’s falling short?”
“Where can I get a quality deal for a good rate?”
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
24/7 Media Wireframe
๏ First we identified the components to begin
the process of deconstructing the user
experience into contracts.
Identify the Components
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
24/7 Media Wireframe
Identify the Components
๏ First we identified the components to begin
the process of deconstructing the user
experience into contracts.
๏ Inventory Results Count
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
24/7 Media Wireframe
Identify the Components
๏ First we identified the components to begin
the process of deconstructing the user
experience into contracts.
๏ Inventory Results Count
๏ My Watchlist Count
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
24/7 Media Wireframe
Identify the Components
๏ First we identified the components to begin
the process of deconstructing the user
experience into contracts.
๏ Inventory Results Count
๏ My Watchlist Count
๏ All Vendors List (Paginated)
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
24/7 Media Wireframe
Identify the Components
๏ First we identified the components to begin
the process of deconstructing the user
experience into contracts.
๏ Inventory Results Count
๏ My Watchlist Count
๏ All Vendors List (Paginated)
๏ All Vendors List (Filtered)
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Balancing Software Contracts
with Experience-Driven Development
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Why Use Contracts?
๏ Further describe the rules and data constraints in order to maintain clarity
between front-end development and back-end service providers.
๏ Allow for mock web service data to be used during development of a client-side
MVC application. This can create a simplified dev environment without the need to
connect to active back-end services.
๏ Provide a baseline for both client-side and server-side unit testing.
๏ Potentially use the contracts for code generation and validation.
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Start with an Example Response
[
{
"vendorId": 123434343,
"vendorName": "Comcast",
"vendorLogo": "http://servername/images/logo/Comcast.png",
"vendorType": "Network",
"spending30days": 1345675,
"impressions30days": 43434323,
"totalUniques": 45323232,
"avgCTR": 3.445,
"avgCPC": 1.34,
"avgCPM": 2.43,
"avgFloorRate": 3.445
},
{....}
]
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
The Example will Leave Unanswered Questions
[
{
"vendorId": 123434343,
"vendorName": "Comcast",
"vendorLogo": "http://servername/images/logo/Comcast.png",
"vendorType": "Network",
"spending30days": 1345675,
"impressions30days": 43434323,
"totalUniques": 45323232,
"avgCTR": 3.445,
"avgCPC": 1.34,
"avgCPM": 2.43,
"avgFloorRate": 3.445
},
{....}
]
๏ Are all fields required?
๏ Can spending30days be a float?
๏ At what endpoint can this record
be retrieved?
๏ How can we get a filtered list of
vendors?
๏ Should the service provide
pagination data?
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Taking the Contracts to the Next Level
๏ Creating a dialogue around a sample response is helpful.
๏ We found that we could have done a better job of creating the contracts
beforehand.
๏ There were times when we switched our application from mock data to live
services, that the application responded differently than expected.
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Creating the Contract Using JSON Schema
http://json-schema.org/
{
“title” : “Vendor Schema”,
“type” : “Object”,
“properties” : [
"vendorId": { “type” : “integer” },
"vendorName": { “type” : “string” },
"vendorLogo": { “type” : “string” },
"vendorType": { “type” : “string” },
"spending30days":{ “type” : “integer”, “minimum” : 0 },
...............
],
“required” : [ “vendorName”, “vendorLogo”,
“vendorType”, “spending30Days”, “totalUniques” ]
}
๏ Describe a component’s
properties.
๏ Data types, minimum/maximum
values, accepted data patterns
(regex), etc.
๏ Provide a list of properties
required by the contract.
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Utilizing JSON Hyper-Schema to Describe Service Endpoints
{
“title” : “Vendor Schema”,
...............
links : [
{
“title” : “Searchable list of Vendors”,
“rel” : “parent”,
“href” : “/vendors/{pageIndex}”,
“method” : “POST”,
“schema” : {
“type” : “object”,
“properties” : {
“searchTerm” : { “type” : “string” },
“sortBy” : { “type” : “string” }
..................
}
}
}
]
}
๏ Define how the user actions
interact with the service.
๏ Include descriptive details in title
so developers understand the
purpose.
๏ Describe the system endpoints /
links and any pertinent details of
the client request.
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
Contract Negotiations
๏ If there is an existing back-end system in place, compromises will inevitably be
required.
๏ The contract (schema) will allow front-end / back-end teams to iron out an
approach that will work without compromising user needs.
๏ This approach reduces the number of surprises throughout the development
process through mutual clarity.
๏ It is better to call out any dependancies or limitations early in the process.
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
How to Use Modern JavaScript
Frameworks with Contract-First
Development
Monday, April 29, 13
Choosing a Framework
There are many modern JavaScript frameworks to choose from
Monday, April 29, 13
Framework Requirements for the 24/7 Media Project
๏ We wanted a more flexible, lightweight framework that we could mix and match
with other libraries.
Monday, April 29, 13
Framework Requirements for the 24/7 Media Project
๏ We wanted a more flexible, lightweight framework that we could mix and match
with other libraries.
๏ We wanted something that would work easily with a RESTful persistence layer.
Monday, April 29, 13
Framework Requirements for the 24/7 Media Project
๏ We wanted a more flexible, lightweight framework that we could mix and match
with other libraries.
๏ We wanted something that would work easily with a RESTful persistence layer.
๏ We wanted built-in routing capabilities to help us maintain application state.
Monday, April 29, 13
Framework Requirements for the 24/7 Media Project
๏ We wanted a more flexible, lightweight framework that we could mix and match
with other libraries.
๏ We wanted something that would work easily with a RESTful persistence layer.
๏ We wanted built-in routing capabilities to help us maintain application state.
๏ For these reasons, we decided to choose Backbone as our client-side MV*
framework.
Monday, April 29, 13
Backbone.js
Backbone.js gives structure to web applications by providing:
๏ models with key-value binding and custom events
๏ collections with a rich API of enumerable functions
๏ views with declarative event handling
Backbone connects it all to your existing API over a RESTful JSON interface.
Monday, April 29, 13
Backbone.js - Models
๏ Here is an example of the vendor
model in Backbone.
๏ We can use the contract to create
defaults for the model as well as
provide direction for Backbone’s
validation function.
๏ Whenever data changes in the
model, Backbone will automatically
fire events that the application can
bind to.
var VendorMod = Backbone.Model.extend( {

 
 idAttribute : 'vendorId',

 
 defaults : {

 
 
 vendorId : "",

 
 
 vendorName : "",

 
 
 totalSites : "",

 
 
 vendorLogo : "",

 
 
 vendorType : "",

 
 
 featured : "",

 
 
 stickey : "",

 
 
 watchlist : "",

 
 
 avgFloorRate : ""
.........................

 
 },
validate : function() { .... }
}
Monday, April 29, 13
Backbone.js - Models
๏ During our contract
generation, we found out that
24/7’s existing API did not
work in a standard way for
saving models.
๏ Here is an example of
overriding Backbone’s Sync
function.
var VendorMod = Backbone.Model.extend( {
........
sync : function( method, model, options ) {
// Backbone will try to request BASE_SERVER_URL/ vendorId we need to
change that
if( method == 'patch' ) {
model.url = this.collection.url;
//Use post instead of patch
options.type = 'POST';
//Add vendorId
if( !options.hasOwnProperty( 'attrs' ) ) options.attrs = {};

 
 options.attrs.vendorId = this.get( 'vendorId' );
}
return Backbone.sync( method, model, options );
},
.....
}
Monday, April 29, 13
Backbone.js - Collections
๏ A collection is a list of
Backbone models.
๏ We tell the collection what
type of model to instantiate.
๏ The URL provided will
automatically be parsed into
a collection of Vendor models
when the built in “fetch()”
var VendorCollection = Backbone.Collection.extend( {
model : VendorMod,
url : ‘/js/vendors/data/sampleVendorCollection.JSON’,
parse : function( response ) {
return response[0].records;
}
}
Monday, April 29, 13
Backbone.js - Views
๏ The view is backed by the
vendor collection and is set
to re-render when the
collection changes.
๏ This is now a re-usable view
component, which can be
used anywhere, that maps
back to our original JSON
contract.
var VendorListView = Backbone.View.extend( {
tagName : ‘ul’,
className : ‘vendorList’,
events : {
‘click .pageButton’ : ‘changePage’
}
initialize : function() {
this.template = _.template( vendorItemTemplate );
this.collection.on( ‘reset’, this.render, this );
},
render : function() {
this.collection.each( function( vendorModel ) {
this.$el.append( this.template( vendorModel.toJSON() );
}, this );
return this;
},
changePage : function( event ) { .... }
}
Monday, April 29, 13
Takeaways from the 24/7 Media Project
๏ Contract-First Development combined with Backbone.js allowed us to:
๏ Work independently from the client’s back-end team without any access to their
persistence layer.
๏ Deliver high quality, componentized code that was easy for the remote team to
integrate with.
Monday, April 29, 13
Takeaways from the 24/7 Media Project
๏ Contract-First Development combined with Backbone.js allowed us to:
๏ Work independently from the client’s back-end team without any access to their
persistence layer.
๏ Deliver high quality, componentized code that was easy for the remote team to
integrate with.
๏ The clear separation of concerns decoupled the front- and back-end teams,
and allowed for a greater focus on each discipline.
Monday, April 29, 13
Takeaways from the 24/7 Media Project
๏ Contract-First Development combined with Backbone.js allowed us to:
๏ Work independently from the client’s back-end team without any access to their
persistence layer.
๏ Deliver high quality, componentized code that was easy for the remote team to
integrate with.
๏ The clear separation of concerns decoupled the front- and back-end teams,
and allowed for a greater focus on each discipline.
๏ Leveraging JSON Schema for data contracts, instead of just sample data, would
have made the process more seamless.
Monday, April 29, 13
All	
  informa+on	
  contained	
  in	
  this	
  presenta+on,	
  or	
  presented	
  verbally	
  in	
  conjunc+on	
  with	
  this	
  presenta+on	
  is	
  specifically	
  iden+fied	
  as	
  “Confiden+al	
  Informa+on.”	
  	
  As	
  such,	
  disclosure	
  of	
  this	
  Confiden+al	
  Informa+on	
  to	
  any	
  third	
  party	
  
is	
  strictly	
  prohibited.
How to be Part of the
Experience-Driven Solution
Monday, April 29, 13
USER EXPERIENCE
VISUAL DESIGN
TECHNOLOGY
CUSTOMER INSIGHT
DISCOVER ENVISION ELABORATE CONSTRUCT
Monday, April 29, 13
How Does the CFD Process Support You and Your Users?
Communication comes earlier in the design process
๏ No “chucking over the fence” to development.
Monday, April 29, 13
How Does the CFD Process Support You and Your Users?
Communication comes earlier in the design process
๏ No “chucking over the fence” to development.
๏ More efficient prioritization - discover up front and focus on what’s really needed, not just what’s
believed to be needed.
Monday, April 29, 13
How Does the CFD Process Support You and Your Users?
Communication comes earlier in the design process
๏ No “chucking over the fence” to development.
๏ More efficient prioritization - discover up front and focus on what’s really needed, not just what’s
believed to be needed.
๏ Time built in to revise design solutions to accommodate for system constraints
or scoping concerns.
Monday, April 29, 13
Tired of Always Saying No?
How to be part of the experience design solution rather than saying “No, we
can’t get there from here”
๏ Identify and start framing conversations/negotiations around the implementation of the user’s needs,
not the user need itself.
Monday, April 29, 13
“If I’d asked my customers what they
wanted, they’d have said a faster horse.”
-Henry Ford
Monday, April 29, 13
What Are the User Needs?
“horstrich” by psdbox.com
Speed: “I need to get from point
A to point B faster than with my
current horse.”
Monday, April 29, 13
What Are the User Needs?
http://anosikestanley.blogspot.com/2012/04/meet-worlds-largest-horse.html
Convenience: “I need to get
myself and my wife from point A
to point B without taking two
horses.”
Monday, April 29, 13
What Are the User Needs?
amazon.com customer image for “Accoutrements Horse Head Mask”
Cost: “I need to get myself and
my spouse from point A to point
B for around the same cost
as two horses and a carriage.”
Monday, April 29, 13
Communicate with design (way) before and during development
๏ Talk about potential or known system constraints.
๏ Constantly ask implementation and interactivity-related questions. You’re the first user of the product
so question when something seems ‘off’ to you.
๏ Help identify error handling and edge cases as early as possible.
How to be Part of the UX Design Solution
Monday, April 29, 13
Thank you!
Monday, April 29, 13

Weitere ähnliche Inhalte

Andere mochten auch

Liferay and Water For People: From Data to Information
Liferay and Water For People: From Data to InformationLiferay and Water For People: From Data to Information
Liferay and Water For People: From Data to InformationEffective
 
Content Strategy for the Real World
Content Strategy for the Real WorldContent Strategy for the Real World
Content Strategy for the Real WorldEffective
 
Don't Build a Power Glove: Talk to Your Users!
Don't Build a Power Glove: Talk to Your Users!Don't Build a Power Glove: Talk to Your Users!
Don't Build a Power Glove: Talk to Your Users!Effective
 
Integrated Thinking: The Answer to Enterprise IT’s Perpetual Struggle - Forre...
Integrated Thinking: The Answer to Enterprise IT’s Perpetual Struggle - Forre...Integrated Thinking: The Answer to Enterprise IT’s Perpetual Struggle - Forre...
Integrated Thinking: The Answer to Enterprise IT’s Perpetual Struggle - Forre...Effective
 
Leveraging the Cloud for Better User Experience
Leveraging the Cloud for Better User ExperienceLeveraging the Cloud for Better User Experience
Leveraging the Cloud for Better User ExperienceEffective
 
AUGMENTED REALITY & HERITAGE
AUGMENTED REALITY & HERITAGEAUGMENTED REALITY & HERITAGE
AUGMENTED REALITY & HERITAGEIsidro Navarro
 
Avoiding Barriers to Business: UX Design as a Strategic Tool to Drive Business
Avoiding Barriers to Business: UX Design as a Strategic Tool to Drive BusinessAvoiding Barriers to Business: UX Design as a Strategic Tool to Drive Business
Avoiding Barriers to Business: UX Design as a Strategic Tool to Drive BusinessEffective
 
Using Behavioral Modeling to Engage Customers Throughout the Decision-Making ...
Using Behavioral Modeling to Engage Customers Throughout the Decision-Making ...Using Behavioral Modeling to Engage Customers Throughout the Decision-Making ...
Using Behavioral Modeling to Engage Customers Throughout the Decision-Making ...Effective
 
Assessing the User Experience (UX) of Online Museum Collections: Perspectives...
Assessing the User Experience (UX) of Online Museum Collections: Perspectives...Assessing the User Experience (UX) of Online Museum Collections: Perspectives...
Assessing the User Experience (UX) of Online Museum Collections: Perspectives...craigmmacdonald
 
Mobile Website Design: Responsive, Adaptive or Both?
Mobile Website Design: Responsive, Adaptive or Both?Mobile Website Design: Responsive, Adaptive or Both?
Mobile Website Design: Responsive, Adaptive or Both?Effective
 
Scottrade and Understanding the Customer Journey: When Segmentation Isn’t Enough
Scottrade and Understanding the Customer Journey: When Segmentation Isn’t EnoughScottrade and Understanding the Customer Journey: When Segmentation Isn’t Enough
Scottrade and Understanding the Customer Journey: When Segmentation Isn’t EnoughEffective
 
Getting into the Game: How EA Put User Research into Practice
Getting into the Game: How EA Put User Research into PracticeGetting into the Game: How EA Put User Research into Practice
Getting into the Game: How EA Put User Research into PracticeEffective
 
Planning for big data (lessons from cultural heritage)
Planning for big data (lessons from cultural heritage)Planning for big data (lessons from cultural heritage)
Planning for big data (lessons from cultural heritage)Mia
 
Crowdsourcing and Cultural Heritage workshop
Crowdsourcing and Cultural Heritage workshopCrowdsourcing and Cultural Heritage workshop
Crowdsourcing and Cultural Heritage workshopMia
 
Give Them What They Want: Discovering Customer Need with Wearable Technology
Give Them What They Want: Discovering Customer Need with Wearable TechnologyGive Them What They Want: Discovering Customer Need with Wearable Technology
Give Them What They Want: Discovering Customer Need with Wearable TechnologyEffective
 
Beyond the Black Box: Data Visualisation
Beyond the Black Box: Data VisualisationBeyond the Black Box: Data Visualisation
Beyond the Black Box: Data VisualisationMia
 
Game UX Design and Evaluation
Game UX Design and EvaluationGame UX Design and Evaluation
Game UX Design and EvaluationGena Drahun
 
Introduction to information visualisation for humanities PhDs
Introduction to information visualisation for humanities PhDsIntroduction to information visualisation for humanities PhDs
Introduction to information visualisation for humanities PhDsMia
 

Andere mochten auch (20)

Centre for Digital Heritage, University of York - Brochure
Centre for Digital Heritage, University of York - BrochureCentre for Digital Heritage, University of York - Brochure
Centre for Digital Heritage, University of York - Brochure
 
Liferay and Water For People: From Data to Information
Liferay and Water For People: From Data to InformationLiferay and Water For People: From Data to Information
Liferay and Water For People: From Data to Information
 
Content Strategy for the Real World
Content Strategy for the Real WorldContent Strategy for the Real World
Content Strategy for the Real World
 
Don't Build a Power Glove: Talk to Your Users!
Don't Build a Power Glove: Talk to Your Users!Don't Build a Power Glove: Talk to Your Users!
Don't Build a Power Glove: Talk to Your Users!
 
Integrated Thinking: The Answer to Enterprise IT’s Perpetual Struggle - Forre...
Integrated Thinking: The Answer to Enterprise IT’s Perpetual Struggle - Forre...Integrated Thinking: The Answer to Enterprise IT’s Perpetual Struggle - Forre...
Integrated Thinking: The Answer to Enterprise IT’s Perpetual Struggle - Forre...
 
Leveraging the Cloud for Better User Experience
Leveraging the Cloud for Better User ExperienceLeveraging the Cloud for Better User Experience
Leveraging the Cloud for Better User Experience
 
AUGMENTED REALITY & HERITAGE
AUGMENTED REALITY & HERITAGEAUGMENTED REALITY & HERITAGE
AUGMENTED REALITY & HERITAGE
 
Avoiding Barriers to Business: UX Design as a Strategic Tool to Drive Business
Avoiding Barriers to Business: UX Design as a Strategic Tool to Drive BusinessAvoiding Barriers to Business: UX Design as a Strategic Tool to Drive Business
Avoiding Barriers to Business: UX Design as a Strategic Tool to Drive Business
 
Using Behavioral Modeling to Engage Customers Throughout the Decision-Making ...
Using Behavioral Modeling to Engage Customers Throughout the Decision-Making ...Using Behavioral Modeling to Engage Customers Throughout the Decision-Making ...
Using Behavioral Modeling to Engage Customers Throughout the Decision-Making ...
 
Assessing the User Experience (UX) of Online Museum Collections: Perspectives...
Assessing the User Experience (UX) of Online Museum Collections: Perspectives...Assessing the User Experience (UX) of Online Museum Collections: Perspectives...
Assessing the User Experience (UX) of Online Museum Collections: Perspectives...
 
Mobile Website Design: Responsive, Adaptive or Both?
Mobile Website Design: Responsive, Adaptive or Both?Mobile Website Design: Responsive, Adaptive or Both?
Mobile Website Design: Responsive, Adaptive or Both?
 
Scottrade and Understanding the Customer Journey: When Segmentation Isn’t Enough
Scottrade and Understanding the Customer Journey: When Segmentation Isn’t EnoughScottrade and Understanding the Customer Journey: When Segmentation Isn’t Enough
Scottrade and Understanding the Customer Journey: When Segmentation Isn’t Enough
 
Getting into the Game: How EA Put User Research into Practice
Getting into the Game: How EA Put User Research into PracticeGetting into the Game: How EA Put User Research into Practice
Getting into the Game: How EA Put User Research into Practice
 
The SoDA Report (Volume 2, 2013)
The SoDA Report (Volume 2, 2013)The SoDA Report (Volume 2, 2013)
The SoDA Report (Volume 2, 2013)
 
Planning for big data (lessons from cultural heritage)
Planning for big data (lessons from cultural heritage)Planning for big data (lessons from cultural heritage)
Planning for big data (lessons from cultural heritage)
 
Crowdsourcing and Cultural Heritage workshop
Crowdsourcing and Cultural Heritage workshopCrowdsourcing and Cultural Heritage workshop
Crowdsourcing and Cultural Heritage workshop
 
Give Them What They Want: Discovering Customer Need with Wearable Technology
Give Them What They Want: Discovering Customer Need with Wearable TechnologyGive Them What They Want: Discovering Customer Need with Wearable Technology
Give Them What They Want: Discovering Customer Need with Wearable Technology
 
Beyond the Black Box: Data Visualisation
Beyond the Black Box: Data VisualisationBeyond the Black Box: Data Visualisation
Beyond the Black Box: Data Visualisation
 
Game UX Design and Evaluation
Game UX Design and EvaluationGame UX Design and Evaluation
Game UX Design and Evaluation
 
Introduction to information visualisation for humanities PhDs
Introduction to information visualisation for humanities PhDsIntroduction to information visualisation for humanities PhDs
Introduction to information visualisation for humanities PhDs
 

Ähnlich wie Experience Driven Development - Future Insights Live 2013

5 Learning Strategy Essentials for 2014
5 Learning Strategy Essentials for 20145 Learning Strategy Essentials for 2014
5 Learning Strategy Essentials for 2014Human Capital Media
 
Introduction to the advanced search functionality of Joinup
Introduction to the advanced search functionality of JoinupIntroduction to the advanced search functionality of Joinup
Introduction to the advanced search functionality of JoinupEuropean Commission
 
LAUG Feb 2019 Meetup 2019-02-26
LAUG Feb 2019 Meetup 2019-02-26LAUG Feb 2019 Meetup 2019-02-26
LAUG Feb 2019 Meetup 2019-02-26Matthew Morris
 
Pulsar Summit Asia 2022 - Keeping on top of hybrid cloud usage with Pulsar
Pulsar Summit Asia 2022 - Keeping on top of hybrid cloud usage with PulsarPulsar Summit Asia 2022 - Keeping on top of hybrid cloud usage with Pulsar
Pulsar Summit Asia 2022 - Keeping on top of hybrid cloud usage with PulsarShivji Kumar Jha
 
Reducing Risk With Source Code Management
Reducing Risk With Source Code ManagementReducing Risk With Source Code Management
Reducing Risk With Source Code ManagementSalesforce Developers
 
XYZ Fast Prototyping MGMT 3405 1 Definition – Fa.docx
XYZ Fast Prototyping MGMT 3405  1  Definition – Fa.docxXYZ Fast Prototyping MGMT 3405  1  Definition – Fa.docx
XYZ Fast Prototyping MGMT 3405 1 Definition – Fa.docxjeffevans62972
 
Rocket Internet Overview 2014
Rocket Internet Overview 2014Rocket Internet Overview 2014
Rocket Internet Overview 2014Joerg Strotmann
 
How to Turn Raw Data into Product Revenue by Retrofit PM
How to Turn Raw Data into Product Revenue by Retrofit PMHow to Turn Raw Data into Product Revenue by Retrofit PM
How to Turn Raw Data into Product Revenue by Retrofit PMProduct School
 
Open Brighton - Open Source and your business
Open Brighton - Open Source and your businessOpen Brighton - Open Source and your business
Open Brighton - Open Source and your businessOmnis Systems
 
OpenBrighton Event - Nov 2014
OpenBrighton Event - Nov 2014OpenBrighton Event - Nov 2014
OpenBrighton Event - Nov 2014Paolo Vecchi
 
Developer Buyer Journey Best Practices
Developer Buyer Journey Best PracticesDeveloper Buyer Journey Best Practices
Developer Buyer Journey Best PracticesOpenView
 
Alert! Event Notification Options for Force.com Apps Webinar
Alert! Event Notification Options for Force.com Apps WebinarAlert! Event Notification Options for Force.com Apps Webinar
Alert! Event Notification Options for Force.com Apps WebinarSalesforce Developers
 
Programmatic marketing
Programmatic marketingProgrammatic marketing
Programmatic marketingAdCMO
 
Why most websites fail and how you can make sure yours doesn't| Gareth Dunlop...
Why most websites fail and how you can make sure yours doesn't| Gareth Dunlop...Why most websites fail and how you can make sure yours doesn't| Gareth Dunlop...
Why most websites fail and how you can make sure yours doesn't| Gareth Dunlop...Enterprise Ireland
 
CEO / CXO Architecture - The missing piece in your BI&A architecture
CEO / CXO Architecture - The missing piece in your BI&A architectureCEO / CXO Architecture - The missing piece in your BI&A architecture
CEO / CXO Architecture - The missing piece in your BI&A architectureCorporater
 
Tech Mahindra - OpenStack Summit 2016/Red Hat NFV Mini Summit
Tech Mahindra - OpenStack Summit 2016/Red Hat NFV Mini SummitTech Mahindra - OpenStack Summit 2016/Red Hat NFV Mini Summit
Tech Mahindra - OpenStack Summit 2016/Red Hat NFV Mini Summitkimw001
 
How FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room DevicesHow FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room DevicesOptimizely
 
How to Monetize Consumer Platforms by LinkedIn PM
How to Monetize Consumer Platforms by LinkedIn PMHow to Monetize Consumer Platforms by LinkedIn PM
How to Monetize Consumer Platforms by LinkedIn PMProduct School
 

Ähnlich wie Experience Driven Development - Future Insights Live 2013 (20)

5 Learning Strategy Essentials for 2014
5 Learning Strategy Essentials for 20145 Learning Strategy Essentials for 2014
5 Learning Strategy Essentials for 2014
 
Introduction to the advanced search functionality of Joinup
Introduction to the advanced search functionality of JoinupIntroduction to the advanced search functionality of Joinup
Introduction to the advanced search functionality of Joinup
 
LAUG Feb 2019 Meetup 2019-02-26
LAUG Feb 2019 Meetup 2019-02-26LAUG Feb 2019 Meetup 2019-02-26
LAUG Feb 2019 Meetup 2019-02-26
 
Business App Bootcamp: London
Business App Bootcamp: LondonBusiness App Bootcamp: London
Business App Bootcamp: London
 
Pulsar Summit Asia 2022 - Keeping on top of hybrid cloud usage with Pulsar
Pulsar Summit Asia 2022 - Keeping on top of hybrid cloud usage with PulsarPulsar Summit Asia 2022 - Keeping on top of hybrid cloud usage with Pulsar
Pulsar Summit Asia 2022 - Keeping on top of hybrid cloud usage with Pulsar
 
Reducing Risk With Source Code Management
Reducing Risk With Source Code ManagementReducing Risk With Source Code Management
Reducing Risk With Source Code Management
 
XYZ Fast Prototyping MGMT 3405 1 Definition – Fa.docx
XYZ Fast Prototyping MGMT 3405  1  Definition – Fa.docxXYZ Fast Prototyping MGMT 3405  1  Definition – Fa.docx
XYZ Fast Prototyping MGMT 3405 1 Definition – Fa.docx
 
Rocket Internet Overview 2014
Rocket Internet Overview 2014Rocket Internet Overview 2014
Rocket Internet Overview 2014
 
How to Turn Raw Data into Product Revenue by Retrofit PM
How to Turn Raw Data into Product Revenue by Retrofit PMHow to Turn Raw Data into Product Revenue by Retrofit PM
How to Turn Raw Data into Product Revenue by Retrofit PM
 
Open Brighton - Open Source and your business
Open Brighton - Open Source and your businessOpen Brighton - Open Source and your business
Open Brighton - Open Source and your business
 
OpenBrighton Event - Nov 2014
OpenBrighton Event - Nov 2014OpenBrighton Event - Nov 2014
OpenBrighton Event - Nov 2014
 
Developer Buyer Journey Best Practices
Developer Buyer Journey Best PracticesDeveloper Buyer Journey Best Practices
Developer Buyer Journey Best Practices
 
Alert! Event Notification Options for Force.com Apps Webinar
Alert! Event Notification Options for Force.com Apps WebinarAlert! Event Notification Options for Force.com Apps Webinar
Alert! Event Notification Options for Force.com Apps Webinar
 
Programmatic marketing
Programmatic marketingProgrammatic marketing
Programmatic marketing
 
Why most websites fail and how you can make sure yours doesn't| Gareth Dunlop...
Why most websites fail and how you can make sure yours doesn't| Gareth Dunlop...Why most websites fail and how you can make sure yours doesn't| Gareth Dunlop...
Why most websites fail and how you can make sure yours doesn't| Gareth Dunlop...
 
CEO / CXO Architecture - The missing piece in your BI&A architecture
CEO / CXO Architecture - The missing piece in your BI&A architectureCEO / CXO Architecture - The missing piece in your BI&A architecture
CEO / CXO Architecture - The missing piece in your BI&A architecture
 
Afternoon Session: Innovation and platform Architect Day
Afternoon Session: Innovation and platform Architect Day Afternoon Session: Innovation and platform Architect Day
Afternoon Session: Innovation and platform Architect Day
 
Tech Mahindra - OpenStack Summit 2016/Red Hat NFV Mini Summit
Tech Mahindra - OpenStack Summit 2016/Red Hat NFV Mini SummitTech Mahindra - OpenStack Summit 2016/Red Hat NFV Mini Summit
Tech Mahindra - OpenStack Summit 2016/Red Hat NFV Mini Summit
 
How FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room DevicesHow FOX Tests Everything from Mobile, Web, to Living Room Devices
How FOX Tests Everything from Mobile, Web, to Living Room Devices
 
How to Monetize Consumer Platforms by LinkedIn PM
How to Monetize Consumer Platforms by LinkedIn PMHow to Monetize Consumer Platforms by LinkedIn PM
How to Monetize Consumer Platforms by LinkedIn PM
 

Mehr von Effective

Death of a Design: 5 Stages of Grief
Death of a Design: 5 Stages of GriefDeath of a Design: 5 Stages of Grief
Death of a Design: 5 Stages of GriefEffective
 
UX Design Process 101: Where to start with UX
UX Design Process 101: Where to start with UXUX Design Process 101: Where to start with UX
UX Design Process 101: Where to start with UXEffective
 
Common Innovation Myths (World Usability Day)
Common Innovation Myths (World Usability Day)Common Innovation Myths (World Usability Day)
Common Innovation Myths (World Usability Day)Effective
 
Introduction to UX
Introduction to UXIntroduction to UX
Introduction to UXEffective
 
2016 SXSW Measures for Justice Panel Picker Presentation
2016 SXSW Measures for Justice Panel Picker Presentation2016 SXSW Measures for Justice Panel Picker Presentation
2016 SXSW Measures for Justice Panel Picker PresentationEffective
 
Water For People UX Awards Submission
Water For People UX Awards SubmissionWater For People UX Awards Submission
Water For People UX Awards SubmissionEffective
 
The Rules of UX - Enterprise 2.0
The Rules of UX - Enterprise 2.0The Rules of UX - Enterprise 2.0
The Rules of UX - Enterprise 2.0Effective
 
SXSW 2013 Daily Recap - Sunday GoodxGlobal
SXSW 2013 Daily Recap - Sunday GoodxGlobalSXSW 2013 Daily Recap - Sunday GoodxGlobal
SXSW 2013 Daily Recap - Sunday GoodxGlobalEffective
 
The Human Interface: Making UX An Integral Part of Your Technology Buying Dec...
The Human Interface: Making UX An Integral Part of Your Technology Buying Dec...The Human Interface: Making UX An Integral Part of Your Technology Buying Dec...
The Human Interface: Making UX An Integral Part of Your Technology Buying Dec...Effective
 
Interaction13 Daily Recap - Monday
Interaction13 Daily Recap - MondayInteraction13 Daily Recap - Monday
Interaction13 Daily Recap - MondayEffective
 
Pick Your Poison – Mobile Web, Native or Hybrid?
Pick Your Poison – Mobile Web, Native or Hybrid?Pick Your Poison – Mobile Web, Native or Hybrid?
Pick Your Poison – Mobile Web, Native or Hybrid?Effective
 
Stop Telling, Start Proving
Stop Telling, Start ProvingStop Telling, Start Proving
Stop Telling, Start ProvingEffective
 
Creating a Patient-Centric Online Experience
Creating a Patient-Centric Online ExperienceCreating a Patient-Centric Online Experience
Creating a Patient-Centric Online ExperienceEffective
 
User Experience Matters: Making Sure Web Experiences Don't Suck
User Experience Matters: Making Sure Web Experiences Don't SuckUser Experience Matters: Making Sure Web Experiences Don't Suck
User Experience Matters: Making Sure Web Experiences Don't SuckEffective
 
Git For The Android Developer
Git For The Android DeveloperGit For The Android Developer
Git For The Android DeveloperEffective
 
Blue Angels Case Study
Blue Angels Case StudyBlue Angels Case Study
Blue Angels Case StudyEffective
 

Mehr von Effective (16)

Death of a Design: 5 Stages of Grief
Death of a Design: 5 Stages of GriefDeath of a Design: 5 Stages of Grief
Death of a Design: 5 Stages of Grief
 
UX Design Process 101: Where to start with UX
UX Design Process 101: Where to start with UXUX Design Process 101: Where to start with UX
UX Design Process 101: Where to start with UX
 
Common Innovation Myths (World Usability Day)
Common Innovation Myths (World Usability Day)Common Innovation Myths (World Usability Day)
Common Innovation Myths (World Usability Day)
 
Introduction to UX
Introduction to UXIntroduction to UX
Introduction to UX
 
2016 SXSW Measures for Justice Panel Picker Presentation
2016 SXSW Measures for Justice Panel Picker Presentation2016 SXSW Measures for Justice Panel Picker Presentation
2016 SXSW Measures for Justice Panel Picker Presentation
 
Water For People UX Awards Submission
Water For People UX Awards SubmissionWater For People UX Awards Submission
Water For People UX Awards Submission
 
The Rules of UX - Enterprise 2.0
The Rules of UX - Enterprise 2.0The Rules of UX - Enterprise 2.0
The Rules of UX - Enterprise 2.0
 
SXSW 2013 Daily Recap - Sunday GoodxGlobal
SXSW 2013 Daily Recap - Sunday GoodxGlobalSXSW 2013 Daily Recap - Sunday GoodxGlobal
SXSW 2013 Daily Recap - Sunday GoodxGlobal
 
The Human Interface: Making UX An Integral Part of Your Technology Buying Dec...
The Human Interface: Making UX An Integral Part of Your Technology Buying Dec...The Human Interface: Making UX An Integral Part of Your Technology Buying Dec...
The Human Interface: Making UX An Integral Part of Your Technology Buying Dec...
 
Interaction13 Daily Recap - Monday
Interaction13 Daily Recap - MondayInteraction13 Daily Recap - Monday
Interaction13 Daily Recap - Monday
 
Pick Your Poison – Mobile Web, Native or Hybrid?
Pick Your Poison – Mobile Web, Native or Hybrid?Pick Your Poison – Mobile Web, Native or Hybrid?
Pick Your Poison – Mobile Web, Native or Hybrid?
 
Stop Telling, Start Proving
Stop Telling, Start ProvingStop Telling, Start Proving
Stop Telling, Start Proving
 
Creating a Patient-Centric Online Experience
Creating a Patient-Centric Online ExperienceCreating a Patient-Centric Online Experience
Creating a Patient-Centric Online Experience
 
User Experience Matters: Making Sure Web Experiences Don't Suck
User Experience Matters: Making Sure Web Experiences Don't SuckUser Experience Matters: Making Sure Web Experiences Don't Suck
User Experience Matters: Making Sure Web Experiences Don't Suck
 
Git For The Android Developer
Git For The Android DeveloperGit For The Android Developer
Git For The Android Developer
 
Blue Angels Case Study
Blue Angels Case StudyBlue Angels Case Study
Blue Angels Case Study
 

Kürzlich hochgeladen

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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Kürzlich hochgeladen (20)

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!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
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
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

Experience Driven Development - Future Insights Live 2013

  • 1. Experience-Driven Development & Contract-First Development Ryan McGinty & SuAnne Hall Future Insights 2013 Monday, April 29, 13
  • 2. hello! Ryan McGinty HTML Solutions Lead EffectiveUI ryan.mcginty@effectiveui.com SuAnne Hall Experience Design EffectiveUI suanne.hall@effectiveui.com | @swan5280 Tweeting about this talk? please use #effectiveui and #FILive Monday, April 29, 13
  • 3. What we’ll talk about Why Experience-Driven Development? Case study with 24/7 Media Monday, April 29, 13
  • 4. What we’ll talk about Why Experience-Driven Development? Case study with 24/7 Media Contract-First Development Discussion Deconstructing wireframes into software contracts, and why the CFD process works Monday, April 29, 13
  • 5. What we’ll talk about Why Experience-Driven Development? Case study with 24/7 Media Contract-First Development Discussion Deconstructing wireframes into software contracts, and why the CFD process works Balancing Software Contracts with Experience-Driven Development How to use modern JavaScript frameworks to implement software contracts Monday, April 29, 13
  • 6. What we’ll talk about Why Experience-Driven Development? Case study with 24/7 Media Contract-First Development Discussion Deconstructing wireframes into software contracts, and why the CFD process works Balancing Software Contracts with Experience-Driven Development How to use modern JavaScript frameworks to implement software contracts How to be Part of the Solution The benefits of a healthy relationship between dev and design Monday, April 29, 13
  • 7. What we’ll talk about Why Experience-Driven Development? Case study with 24/7 Media Contract-First Development Discussion Deconstructing wireframes into software contracts, and why the CFD process works Balancing Software Contracts with Experience-Driven Development How to use modern JavaScript frameworks to implement software contracts How to be Part of the Solution The benefits of a healthy relationship between dev and design Q&A time Monday, April 29, 13
  • 8. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Why Experience-Driven Development? Monday, April 29, 13
  • 9. Which way is the bus going? Right or Left? Monday, April 29, 13
  • 10. The door must be on the other side of the bus!!! Which way is the bus going? Right or Left? Monday, April 29, 13
  • 11. Because you can never guess how users will interpret the products you’re building based on your own assumptions and experiences. Why Experience-Driven Development? Monday, April 29, 13
  • 12. Because using an experience-driven process can: Why Experience-Driven Development? ๏ reduce development costs and inefficiencies ๏ create long-lasting and loyal customer relationships ๏ give you an edge over your competition ๏ generate more conversions/business ๏ make more $$$ Monday, April 29, 13
  • 13. Because a product that is simply ‘user friendly’ will no longer survive. It must also be: Why Experience-Driven Development? Monday, April 29, 13
  • 14. Because a product that is simply ‘user friendly’ will no longer survive. It must also be: Why Experience-Driven Development? Useful Meaningful EngagingPersonal CommunicativeSimplifying Contextual Delightful Monday, April 29, 13
  • 15. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Monday, April 29, 13
  • 16. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Monday, April 29, 13
  • 17. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Contract-First Development and Wireframe Deconstruction Monday, April 29, 13
  • 18. Contract-First Development ๏ With experience-driven development, the user needs are met first and the experience design is implemented with continuous input from development. Monday, April 29, 13
  • 19. Contract-First Development ๏ With experience-driven development, the user needs are met first and the experience design is implemented with continuous input from development. ๏ Inevitably UX needs, budget, business needs, and system constraints will come to a head. Monday, April 29, 13
  • 20. Contract-First Development ๏ With experience-driven development, the user needs are met first and the experience design is implemented with continuous input from development. ๏ Inevitably UX needs, budget, business needs, and system constraints will come to a head. ๏ By developing data contracts, front-end and back-end developers can maximize development throughput and minimize cost. Monday, April 29, 13
  • 21. Case Study: Analytical reports for managerial and executive-level users User needs identified from customer insight research: ๏ Simplify the report analysis experience by allowing users to quickly find answers to “exploratory” high- level questions: ๏ Designing & developing for an iPad-friendly context was important “Which publishers in my inventory are being underutilized?” “Who’s exceeding their goals, and who’s falling short?” “Where can I get a quality deal for a good rate?” Monday, April 29, 13
  • 22. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. 24/7 Media Wireframe ๏ First we identified the components to begin the process of deconstructing the user experience into contracts. Identify the Components Monday, April 29, 13
  • 23. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. 24/7 Media Wireframe Identify the Components ๏ First we identified the components to begin the process of deconstructing the user experience into contracts. ๏ Inventory Results Count Monday, April 29, 13
  • 24. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. 24/7 Media Wireframe Identify the Components ๏ First we identified the components to begin the process of deconstructing the user experience into contracts. ๏ Inventory Results Count ๏ My Watchlist Count Monday, April 29, 13
  • 25. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. 24/7 Media Wireframe Identify the Components ๏ First we identified the components to begin the process of deconstructing the user experience into contracts. ๏ Inventory Results Count ๏ My Watchlist Count ๏ All Vendors List (Paginated) Monday, April 29, 13
  • 26. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. 24/7 Media Wireframe Identify the Components ๏ First we identified the components to begin the process of deconstructing the user experience into contracts. ๏ Inventory Results Count ๏ My Watchlist Count ๏ All Vendors List (Paginated) ๏ All Vendors List (Filtered) Monday, April 29, 13
  • 27. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Balancing Software Contracts with Experience-Driven Development Monday, April 29, 13
  • 28. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Why Use Contracts? ๏ Further describe the rules and data constraints in order to maintain clarity between front-end development and back-end service providers. ๏ Allow for mock web service data to be used during development of a client-side MVC application. This can create a simplified dev environment without the need to connect to active back-end services. ๏ Provide a baseline for both client-side and server-side unit testing. ๏ Potentially use the contracts for code generation and validation. Monday, April 29, 13
  • 29. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Start with an Example Response [ { "vendorId": 123434343, "vendorName": "Comcast", "vendorLogo": "http://servername/images/logo/Comcast.png", "vendorType": "Network", "spending30days": 1345675, "impressions30days": 43434323, "totalUniques": 45323232, "avgCTR": 3.445, "avgCPC": 1.34, "avgCPM": 2.43, "avgFloorRate": 3.445 }, {....} ] Monday, April 29, 13
  • 30. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. The Example will Leave Unanswered Questions [ { "vendorId": 123434343, "vendorName": "Comcast", "vendorLogo": "http://servername/images/logo/Comcast.png", "vendorType": "Network", "spending30days": 1345675, "impressions30days": 43434323, "totalUniques": 45323232, "avgCTR": 3.445, "avgCPC": 1.34, "avgCPM": 2.43, "avgFloorRate": 3.445 }, {....} ] ๏ Are all fields required? ๏ Can spending30days be a float? ๏ At what endpoint can this record be retrieved? ๏ How can we get a filtered list of vendors? ๏ Should the service provide pagination data? Monday, April 29, 13
  • 31. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Taking the Contracts to the Next Level ๏ Creating a dialogue around a sample response is helpful. ๏ We found that we could have done a better job of creating the contracts beforehand. ๏ There were times when we switched our application from mock data to live services, that the application responded differently than expected. Monday, April 29, 13
  • 32. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Creating the Contract Using JSON Schema http://json-schema.org/ { “title” : “Vendor Schema”, “type” : “Object”, “properties” : [ "vendorId": { “type” : “integer” }, "vendorName": { “type” : “string” }, "vendorLogo": { “type” : “string” }, "vendorType": { “type” : “string” }, "spending30days":{ “type” : “integer”, “minimum” : 0 }, ............... ], “required” : [ “vendorName”, “vendorLogo”, “vendorType”, “spending30Days”, “totalUniques” ] } ๏ Describe a component’s properties. ๏ Data types, minimum/maximum values, accepted data patterns (regex), etc. ๏ Provide a list of properties required by the contract. Monday, April 29, 13
  • 33. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Utilizing JSON Hyper-Schema to Describe Service Endpoints { “title” : “Vendor Schema”, ............... links : [ { “title” : “Searchable list of Vendors”, “rel” : “parent”, “href” : “/vendors/{pageIndex}”, “method” : “POST”, “schema” : { “type” : “object”, “properties” : { “searchTerm” : { “type” : “string” }, “sortBy” : { “type” : “string” } .................. } } } ] } ๏ Define how the user actions interact with the service. ๏ Include descriptive details in title so developers understand the purpose. ๏ Describe the system endpoints / links and any pertinent details of the client request. Monday, April 29, 13
  • 34. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. Contract Negotiations ๏ If there is an existing back-end system in place, compromises will inevitably be required. ๏ The contract (schema) will allow front-end / back-end teams to iron out an approach that will work without compromising user needs. ๏ This approach reduces the number of surprises throughout the development process through mutual clarity. ๏ It is better to call out any dependancies or limitations early in the process. Monday, April 29, 13
  • 35. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. How to Use Modern JavaScript Frameworks with Contract-First Development Monday, April 29, 13
  • 36. Choosing a Framework There are many modern JavaScript frameworks to choose from Monday, April 29, 13
  • 37. Framework Requirements for the 24/7 Media Project ๏ We wanted a more flexible, lightweight framework that we could mix and match with other libraries. Monday, April 29, 13
  • 38. Framework Requirements for the 24/7 Media Project ๏ We wanted a more flexible, lightweight framework that we could mix and match with other libraries. ๏ We wanted something that would work easily with a RESTful persistence layer. Monday, April 29, 13
  • 39. Framework Requirements for the 24/7 Media Project ๏ We wanted a more flexible, lightweight framework that we could mix and match with other libraries. ๏ We wanted something that would work easily with a RESTful persistence layer. ๏ We wanted built-in routing capabilities to help us maintain application state. Monday, April 29, 13
  • 40. Framework Requirements for the 24/7 Media Project ๏ We wanted a more flexible, lightweight framework that we could mix and match with other libraries. ๏ We wanted something that would work easily with a RESTful persistence layer. ๏ We wanted built-in routing capabilities to help us maintain application state. ๏ For these reasons, we decided to choose Backbone as our client-side MV* framework. Monday, April 29, 13
  • 41. Backbone.js Backbone.js gives structure to web applications by providing: ๏ models with key-value binding and custom events ๏ collections with a rich API of enumerable functions ๏ views with declarative event handling Backbone connects it all to your existing API over a RESTful JSON interface. Monday, April 29, 13
  • 42. Backbone.js - Models ๏ Here is an example of the vendor model in Backbone. ๏ We can use the contract to create defaults for the model as well as provide direction for Backbone’s validation function. ๏ Whenever data changes in the model, Backbone will automatically fire events that the application can bind to. var VendorMod = Backbone.Model.extend( { idAttribute : 'vendorId', defaults : { vendorId : "", vendorName : "", totalSites : "", vendorLogo : "", vendorType : "", featured : "", stickey : "", watchlist : "", avgFloorRate : "" ......................... }, validate : function() { .... } } Monday, April 29, 13
  • 43. Backbone.js - Models ๏ During our contract generation, we found out that 24/7’s existing API did not work in a standard way for saving models. ๏ Here is an example of overriding Backbone’s Sync function. var VendorMod = Backbone.Model.extend( { ........ sync : function( method, model, options ) { // Backbone will try to request BASE_SERVER_URL/ vendorId we need to change that if( method == 'patch' ) { model.url = this.collection.url; //Use post instead of patch options.type = 'POST'; //Add vendorId if( !options.hasOwnProperty( 'attrs' ) ) options.attrs = {}; options.attrs.vendorId = this.get( 'vendorId' ); } return Backbone.sync( method, model, options ); }, ..... } Monday, April 29, 13
  • 44. Backbone.js - Collections ๏ A collection is a list of Backbone models. ๏ We tell the collection what type of model to instantiate. ๏ The URL provided will automatically be parsed into a collection of Vendor models when the built in “fetch()” var VendorCollection = Backbone.Collection.extend( { model : VendorMod, url : ‘/js/vendors/data/sampleVendorCollection.JSON’, parse : function( response ) { return response[0].records; } } Monday, April 29, 13
  • 45. Backbone.js - Views ๏ The view is backed by the vendor collection and is set to re-render when the collection changes. ๏ This is now a re-usable view component, which can be used anywhere, that maps back to our original JSON contract. var VendorListView = Backbone.View.extend( { tagName : ‘ul’, className : ‘vendorList’, events : { ‘click .pageButton’ : ‘changePage’ } initialize : function() { this.template = _.template( vendorItemTemplate ); this.collection.on( ‘reset’, this.render, this ); }, render : function() { this.collection.each( function( vendorModel ) { this.$el.append( this.template( vendorModel.toJSON() ); }, this ); return this; }, changePage : function( event ) { .... } } Monday, April 29, 13
  • 46. Takeaways from the 24/7 Media Project ๏ Contract-First Development combined with Backbone.js allowed us to: ๏ Work independently from the client’s back-end team without any access to their persistence layer. ๏ Deliver high quality, componentized code that was easy for the remote team to integrate with. Monday, April 29, 13
  • 47. Takeaways from the 24/7 Media Project ๏ Contract-First Development combined with Backbone.js allowed us to: ๏ Work independently from the client’s back-end team without any access to their persistence layer. ๏ Deliver high quality, componentized code that was easy for the remote team to integrate with. ๏ The clear separation of concerns decoupled the front- and back-end teams, and allowed for a greater focus on each discipline. Monday, April 29, 13
  • 48. Takeaways from the 24/7 Media Project ๏ Contract-First Development combined with Backbone.js allowed us to: ๏ Work independently from the client’s back-end team without any access to their persistence layer. ๏ Deliver high quality, componentized code that was easy for the remote team to integrate with. ๏ The clear separation of concerns decoupled the front- and back-end teams, and allowed for a greater focus on each discipline. ๏ Leveraging JSON Schema for data contracts, instead of just sample data, would have made the process more seamless. Monday, April 29, 13
  • 49. All  informa+on  contained  in  this  presenta+on,  or  presented  verbally  in  conjunc+on  with  this  presenta+on  is  specifically  iden+fied  as  “Confiden+al  Informa+on.”    As  such,  disclosure  of  this  Confiden+al  Informa+on  to  any  third  party   is  strictly  prohibited. How to be Part of the Experience-Driven Solution Monday, April 29, 13
  • 50. USER EXPERIENCE VISUAL DESIGN TECHNOLOGY CUSTOMER INSIGHT DISCOVER ENVISION ELABORATE CONSTRUCT Monday, April 29, 13
  • 51. How Does the CFD Process Support You and Your Users? Communication comes earlier in the design process ๏ No “chucking over the fence” to development. Monday, April 29, 13
  • 52. How Does the CFD Process Support You and Your Users? Communication comes earlier in the design process ๏ No “chucking over the fence” to development. ๏ More efficient prioritization - discover up front and focus on what’s really needed, not just what’s believed to be needed. Monday, April 29, 13
  • 53. How Does the CFD Process Support You and Your Users? Communication comes earlier in the design process ๏ No “chucking over the fence” to development. ๏ More efficient prioritization - discover up front and focus on what’s really needed, not just what’s believed to be needed. ๏ Time built in to revise design solutions to accommodate for system constraints or scoping concerns. Monday, April 29, 13
  • 54. Tired of Always Saying No? How to be part of the experience design solution rather than saying “No, we can’t get there from here” ๏ Identify and start framing conversations/negotiations around the implementation of the user’s needs, not the user need itself. Monday, April 29, 13
  • 55. “If I’d asked my customers what they wanted, they’d have said a faster horse.” -Henry Ford Monday, April 29, 13
  • 56. What Are the User Needs? “horstrich” by psdbox.com Speed: “I need to get from point A to point B faster than with my current horse.” Monday, April 29, 13
  • 57. What Are the User Needs? http://anosikestanley.blogspot.com/2012/04/meet-worlds-largest-horse.html Convenience: “I need to get myself and my wife from point A to point B without taking two horses.” Monday, April 29, 13
  • 58. What Are the User Needs? amazon.com customer image for “Accoutrements Horse Head Mask” Cost: “I need to get myself and my spouse from point A to point B for around the same cost as two horses and a carriage.” Monday, April 29, 13
  • 59. Communicate with design (way) before and during development ๏ Talk about potential or known system constraints. ๏ Constantly ask implementation and interactivity-related questions. You’re the first user of the product so question when something seems ‘off’ to you. ๏ Help identify error handling and edge cases as early as possible. How to be Part of the UX Design Solution Monday, April 29, 13