Fail Fast. Succeed Faster.



Fail Fast. Succeed Faster.

0 0


FITC-Screens-2013


On Github richgilbank / FITC-Screens-2013

Fail Fast. Succeed Faster.

Rich Gilbank - @richgilbank

  • Number of devs vs number of bd/stakeholders vs introverts
  • I'll cover prototyping from both perspectives

Today!

  • Introductions
  • Context
  • FAIL (really!)
  • Benefits of prototyping for developers
  • Benefits of prototyping for business stakeholders
  • Takeaways
  • Q&A
  • Introductions - A little about myself and my background
  • Context - Why this is important, the problems that led us here
  • Fail - How failing can help you as a developer, and why to dedicate time - Prototyping
  • Benfits:developers - What devs can gain from prototyping
  • Benefits:stakeholders - What BD can gain
  • Takeaways - Things to take back to your company

Introduction

Who are you? Who am I? How did I get here?

  • Front end dev at Shopify
  • In case there's any confusion about Jet Cooper - to clear up
  • Apparently we were doing something right - I think process and culture were part of it

Shopify

  • SaaS
  • > 70,000 Merchants
  • $1,000,000,000 GMV (Gross Merchandise Value)
  • Commerce platform for online and in-person sales
  • Over 70,000 Merchants have sold $1B worth of products
  • Gross Merchandise Value is cumulative total of products sold through Shopify
  • [fragment]
  • UX Design and Development Agency
  • Conceptualization - Product Strategy - Architecture - Art Direction - Interface design - FED
  • No BED
  • Going to share some techniques and tips we learned

Jet Cooper Clients

  • We've had the pleasure of working with a number of great clients
  • Some of which have been successful brands in Canada, which you may recognize
  • Through through all of them though, we've built our process
  • Fledgling company - worked with these clients through the value we drove
  • Going to provide an example from another company

Some Context

This isn't where I parked my car…
  • That's who we are, here's where we're coming from

Developer Culture

Today's situation

  • Designers give us mockups
  • Step 1 - Designers give us mockups
  • Step 2 - WTF
  • Full of components and pieces we can't feasibly implement

Waterfall Pain points

  • Unsustainable
  • Work reflects developer sentiment
  • No dev feedback in planning
We all know the feeling, the stress Work appears tired, fatigued No dev feedback in planning

Waterfall model:

  • Designers hand-off to devs to cook it up.

Unstaggering our model at Jet Cooper

Our "Unstaggered" model:

Waterfall

Unstaggered

  • Went from the annoying tetris pieces to a nice flat-stacked model
  • What did we do with that extra ~20% time?

Benefits of designer follow-up time

  • QA
  • Pattern research

Benefits of developer lead time

  • Conceptualization
  • Research
  • Collaboration with team
  • [fragments]
  • Conceptualization
  • Research
  • Collaboration with team - BD/Browsers
  • And Prototyping - [slide]

Benefits of developer lead time (continued)

  • Prototyping
  • Prototyping is...
  • Similar to creative recess

Recess!

(Of the creative variety)

Back on topic:

Prototyping

  • Mini labs programs
  • Experimental ideas - devs test hypotheses and iterate after

Prototyping led to two main outcomes:

  • Trying more things
  • Failing more often
  • Trying more things
  • Everyone and their dog has a library or set of opinionated tools or workflows
  • Testing these tools was one outcome of lead time
  • Failing more often
  • Things didn't work, often just for our purposes

And now, for a brief interlude.

Prototyping IRL

Client discovery / Product Strategy

  • Client X came to us looking to design and implement a responsive UI
  • Why? Poor interaction and engagement
  • New idea - push notifications

Planning and prototyping

Full circle

  • Feedback re: devices and support
  • During design, we investigated MVC frameworks
  • Explain MVC investigation outcomes
  • Backbone + many plugins
  • Angular.js
  • Backbone + Marionette

Drawing on the toolbox

  • Even though our client work is wrapping up, many of the gained insights will be continue to prove themselves valuable in Shopify (Product-side)
  • A short while later, I was working on a small personal project and used Angular
  • Segue - So, that's an example of one of the outcomes of prototyping time - failing set us up for success

Fail!

No, really!

  • We learned it's best to fail as early as possible, because that failure leads to better answers. Prototyping is ideal for this.
  • [Segue] - Now, here are some guidelines for prototyping to help you fail effectively:

Failing for prototyping

  • Get your hands dirty
  • Timebox prototyping to problem scope
  • Don't use your prototypes in production
"You don't write code for yourself, you write it for the moron who has to maintain it in a year. More often than not, you are that moron." - Brian Arnold (@brianarn)
  • Guidlines for prototyping - How to fail well and fail early
  • Get your hands dirty - Take time not just to research, but to actually build
  • Hands on experience vs theoretical. Where does a tech thrive/falter?
  • Additionally, Weaknesses in one context = strengths in another
  • Bird in the hand
  • Timeboxing - Protoyping time must be finite, proportional to problem size
  • [agile] - What is necessary and sufficient?
  • In this case, minimum time is what's necessary to experiment on the required materials
  • Max is to not infringe on production time or spend time refactoring
  • Prototypes in production - Code inevitably sloppy.
  • Difference in objectives - testing vs scaling
  • Restart from scratch with learnings
  • [fragment] - quote
  • Now, let me introduce the three archetypal developer personas as I see it

"Master" vs "Expert" vs "Learner"

"Master" mentality

  • Neckbeard; set in their ways

"Expert" mentality

  • New and shiny
  • Jack of all trades, master of none

"Learner" mentality

  • Superhero; not afraid to fail
  • Consequently, fails often
  • Doesn't immediately jump on a bandwagon; waits for its maturity
  • This is who we want to be because: stays on top of latest trends, stable code, etc
  • Segue - What causes master/expert syndrome

Causes of "Master" and "Expert" mentalities

  • Self-perception
  • Perceived social perception

[fragments]

  • Self-perception - "Know-it-all" mindframe, overconfidence - in familiar tech for master, emerging tech for expert
  • Perceived social perception - concern/fear that clients and peers will look down for not knowing the best solution
  • Explain tweet - illustrates the belief that the social perception demands extensive experience to be effective with something
  • Segue - So, how do we break out of this pattern or prevent ourselves from falling into it?

How to break out of "Master"/"Expert" thinking

Or: how I learned to stop worrying and become a Learner

  • Acceptance - "I don't know, but let's find out."
  • Passion - Stay passionate in your off-time
  • Hack - "Make it yours."
  • Interpret - Come to your own conclusions
  • Acceptance - I don't know but let's find out
  • Passion - Passion speaks volumes
  • Hacker - Adopt a hacker mind frame (notion of experimentation) - make it yours
  • Interpret - Listen to opinions and trends but don't follow blindly

The Benefits of Prototyping: Developers

  • Quickly test and validate assumptions
  • Build on insights to deliver best possible end solution
  • Avoid running into the same errors further down
  • Improved codebase stability
  • Building your toolbox
  • Quickly test and validate assumptions - Is X all it's cracked up to be?
  • Build on insights to deliver the best end solution - Leverage a wider breadth of knowledge to make informed decisions
  • Avoid running into the same errors further down - Fail early; fail during prototyping; you'll still fail during the project
  • Improved codebase stability - Add stability by preventing monkey-patching - no need to compensate for inadequacies of chosen development route
  • Build your toolbox - Grow your knowledgebase; gained insights = lifelong.
  • To reiterate, things that didn't work for this project may work for another

The Benefits of Protoyping: Business Stakeholders

  • Improved value generation
  • Leverage the latest technologies (without going overboard)
  • Improved development culture and passion
  • 1) Prototyping drives more value by producing stable, high quality outcomes
  • Consequently, quality of output per dollar is up
  • Verified by Jet Cooper
  • 2) Leverage, without conforming to, the latest technologies by utilizing development team's cumulative pragmatic asessments
  • 3) Culture & Passion - We developers like what we do.
  • Encourage them by facilitating their inquisitive nature
  • Enable them to do their best work by giving this time to play with new & shiny
  • Segue - So here are some takeaways for developers and business stakeholders alike.

Takeaways

  • Admit to not knowing.
  • Play the field early
  • Build your toolbox
  • Fail fast, fail often
  • Admit to not knowing - Be a learner rather than an expert or master
  • Learners adapt, masters become outdated
  • Play the field early - Give yourself time before committing to a particular route
  • Build your toolbox - Share your insights, learnings, build on existing knowledge
  • Finally, Fail fast, fail often - Failing will be continuous; mitigate its damage by allocating time to it and doing it as soon as possible

Fail Fast.Succeed Faster.

Thanks!

Q&A

Twitter: @richgilbank