lean development: design through iterative experiments

28
Lean Development Design through Iterative Experiments Gretchen DeKnikker, SocialPandas, Co-founder & CMO @gretchende Jason Ouellette, SocialPandas, Co-founder & CTO @jmouel

Upload: salesforce-developers

Post on 15-Nov-2014

266 views

Category:

Technology


5 download

DESCRIPTION

When building apps for your enterprise, you're not only asking for the user's time, you're also asking them to change their behavior and how they work. That means your app needs to be exponentially better than what they're doing today. With Force.com, you can demonstrate exactly how much better very quickly without coding, or without coding much at all. Join us as we apply lean development principles (for running quick iterative experiments) with the Force.com platform to build minimum viable experiments, and test them on your users.

TRANSCRIPT

Page 1: Lean Development: Design Through Iterative Experiments

Lean DevelopmentLean DevelopmentDesign through Iterative Experiments

Gretchen DeKnikker, SocialPandas, Co-founder & CMO

@gretchende

Jason Ouellette, SocialPandas, Co-founder & CTO

@jmouel

Page 2: Lean Development: Design Through Iterative Experiments

Gretchen DeKnikkerGretchen DeKnikker

Co-founder & CMO

@gretchende

Co-founder & CMO

@gretchende

Page 3: Lean Development: Design Through Iterative Experiments

Lean UX and the Enterprise Buyer

Today we’ll cover What is Lean UX?

Applying Lean principles in the enterprise

Overview of tools for higher fidelity UX

Force.com as a sandbox for Lean UX experiments

Page 4: Lean Development: Design Through Iterative Experiments

What is “Lean”?

Lean application development is iterative design through

experimentation and validated learning.

Page 5: Lean Development: Design Through Iterative Experiments

Lean UX

User Experience is a person’s perceptions and responses that

result from the use or anticipated use of a product, service or

system.

Page 6: Lean Development: Design Through Iterative Experiments

Lean UX

Lean UX evolves Build-Measure-Learn to Think-Make-Check

Page 7: Lean Development: Design Through Iterative Experiments

The Enterprise Buyer

Page 8: Lean Development: Design Through Iterative Experiments

The Enterprise Buyer

Page 9: Lean Development: Design Through Iterative Experiments

The Enterprise Buyer

Page 10: Lean Development: Design Through Iterative Experiments

The Enterprise Buyer

Page 11: Lean Development: Design Through Iterative Experiments

MVP vs MSP

A minimum viable product (MVP) is the version of a new product or service which allows a team to collect the maximum amount of validated learning with the least effort

A minimum sellable product (MSP) is the version that will get an enterprise user to change their behavior and the way they work

Page 12: Lean Development: Design Through Iterative Experiments

All about SocialPandas

SocialPandas is a social selling platform that helps B2B sales teams

leverage popular social networks to connect with prospects, shorten

sales cycles, boost deal sizes, and grow loyal customer relationships.

Page 13: Lean Development: Design Through Iterative Experiments

Case Study: Applying Lean UX to the Enterprise Buyer

We did all the “right” things…

•Extensive customer development

•High fidelity mockups, low fidelity prototypes

…but it wasn’t working.

Page 14: Lean Development: Design Through Iterative Experiments

We had to “stage the house”…

Page 15: Lean Development: Design Through Iterative Experiments

…and ate a little “fat”

Data visualization exploration Customer design feedback

Back-end data collection Limited front-end data display

UI Design Navigation

LeanFat

Page 16: Lean Development: Design Through Iterative Experiments

Jason OuelletteJason Ouellette

Co-founder & CTO

@jmouel

Co-founder & CTO

@jmouel

Page 17: Lean Development: Design Through Iterative Experiments

Sample Application: Sales Meeting Tracker

High-fidelity prototype live app Demo of finished product

Build the prototype• Goals and tools

• Easel.io and Bootstrap

Develop the code• Easel.io to Visualforce

• Visualforce the “lightweight” way

• AngularJS: Navigation, calling Apex, and data binding

Page 18: Lean Development: Design Through Iterative Experiments

Demo of finished product

Features

• Meeting list• Event, Contact,

Opportunity, Account

• Meeting report• Event, Opportunity

Page 19: Lean Development: Design Through Iterative Experiments

Build the prototype: goals and tools

Goals HTML5 mobile app to validate ideas, run experiments with users

Artifacts must be directly usable in code, not disposable

Tools: good/bad/ugly Visual fidelity vs. code usefulness

Developer and designer workflow, the “what-if” gaps

Round-trip issues

Page 20: Lean Development: Design Through Iterative Experiments

Build the prototype: Easel.io and Bootstrap

Easel.io: powered by Bootstrap Bootstrap (as grid system) in 1 minute

<div class="container">

<div class="row-fluid">

<span class="span12">

<h2 class="heading navbar-inverse">Meetings

<button class="btn pull-left btn-mini"> <i class="icon icon-chevron-left"></i> Back</button>

</h2>

</span>

</div>

</div>

Getting started with Easel.io

Page 21: Lean Development: Design Through Iterative Experiments

Develop the code: Easel.io to Visualforce (1 of 2)

1. Make sure each Easel page has a unique top-level CSS class. Assign it to the BootstrapContainer.

2. Export from Easel.io. Test locally and tweak exported CSS/HTML.

Gotchas: Bootstrap version, images.

3. Create simple Visualforce page with no header/sidebar. Put CSS for each page into <style> tag.

Put HTML for each page into separate DIVs with top-level CSS class.

Page 22: Lean Development: Design Through Iterative Experiments

Develop the code: Easel.io to Visualforce (2 of 2)

4. Create and import static resources Bootstrap

Font Awesome (www.fontawesome.io)

Page 23: Lean Development: Design Through Iterative Experiments

Develop the code: Visualforce the “lightweight” way

Single Page Applications MVC-ish frameworks

Remote Action Client-side ViewState is not your friend (until it’s server-side)

@RemoteAction

public static List<Event> load() { /* ... */ }

@RemoteAction

public static void save(Event event, Opportunity opportunity) { /* ... */ }

Page 24: Lean Development: Design Through Iterative Experiments

Develop the code: Navigation with AngularJS

1. Provide navigation function in Angular controller1. $scope.nav = function(path) {

$location.path(path);

$scope.editMode = path != '';

}

2. Use navigation function in anchors, buttons<button type="button" ng-click="nav('')">Back</button>

3. Show/hide DIVs based on $scope variable<div ng-show="editMode" class="meeting-report container-fluid">

Page 25: Lean Development: Design Through Iterative Experiments

Develop the code: Calling Apex via AngularJS

AngularJSDF13MeetingTrackerController.load(function(result, event) {

if (event.status) {

$scope.meetings = result;

$rootScope.$apply();

}

}, { escape: false });

Apex Controllerpublic with sharing class DF13MeetingTrackerController {

@RemoteAction

public static List<Event> load() { /* ... */ }

Page 26: Lean Development: Design Through Iterative Experiments

Develop the code: Data binding with AngularJS

Inline templates<apex:outputPanel html-ng-app=""

html-ng-controller="MeetingTrackerCtrl" styleClass="container-fluid">

<div class="row-fluid">

<div class="span3">

<div class="well sidebar-nav">

<ul class="nav nav-list">

<li ng-class="navClass('{{event.Id}}')"

ng-repeat=”event in events">

<a ng-click="nav('{{event.Id}}')”>{{event.opportunity.Name}} {{event.ActivityDate |

date:'M/d'}}</a></li>

</ul>

</div>

</div>

</apex:outputPanel>

Page 27: Lean Development: Design Through Iterative Experiments

Jason OuelletteJason Ouellette

Co-founder & CTO,@jmouel

Gretchen DeKnikkerGretchen DeKnikker

Co-founder & CMO,@gretchende

Page 28: Lean Development: Design Through Iterative Experiments