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