lean frontend development - codemotion roma 2015

62
LEAN FRONTEND DEVELOPMENT

Upload: matteo-guidotto

Post on 16-Jul-2015

244 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Lean frontend development - Codemotion Roma 2015

LEANFRONTEND

DEVELOPMENT

Page 2: Lean frontend development - Codemotion Roma 2015

ABOUT USMatteo Guidotto – Twitter: @j8matteoPM, UX & Frontend Developer, Agile Lover  matteoguidotto.com

Marco Solazzi – Twitter: @dwightjackFrontend Web Developer - github.com/dwightjack/ 

Page 3: Lean frontend development - Codemotion Roma 2015

WE WERE WEBMASTER

27-28 march 2015 @j8matteo

Page 4: Lean frontend development - Codemotion Roma 2015

OUR WORKFLOW

WASN’T SO SEXY

Page 5: Lean frontend development - Codemotion Roma 2015

WE ARE FRONTEND DEVELOPERS

27-28 march 2015 @j8matteo

Page 6: Lean frontend development - Codemotion Roma 2015

WE NEED TO BE LEANWE NEED TO BE STRONGWE NEED TO BE AGILE

27-28 march 2015 @j8matteo

Page 7: Lean frontend development - Codemotion Roma 2015

PLAN

27-28 march 2015 @j8matteo

Page 8: Lean frontend development - Codemotion Roma 2015

GET OUT OF NEVERENDING

SOFTWARE

27-28 march 2015 @j8matteo

Page 9: Lean frontend development - Codemotion Roma 2015

CHOOSE RIGHT WEAPONFOR YOUR WAR

27-28 march 2015 @j8matteo

Page 10: Lean frontend development - Codemotion Roma 2015

UNICORN TECHNOLOGYDOESN’T EXIST

27-28 march 2015 @j8matteo

Page 11: Lean frontend development - Codemotion Roma 2015

DON’T USE ANGULAR FOR EVERYTHING

27-28 march 2015 @j8matteo

Page 12: Lean frontend development - Codemotion Roma 2015
Page 13: Lean frontend development - Codemotion Roma 2015

DEFINEUSER AND BUYER

PERSONAS

27-28 march 2015 @j8matteo

Page 14: Lean frontend development - Codemotion Roma 2015

DEFINEUSER AND BUYER

PERSONASDEVICES

27-28 march 2015 @j8matteo

Page 15: Lean frontend development - Codemotion Roma 2015

DEVICE CENTEREDDEVELOPMENT

27-28 march 2015 @j8matteo

Page 16: Lean frontend development - Codemotion Roma 2015

BUDGETING ACTIVITIES

27-28 march 2015 @j8matteo

Page 17: Lean frontend development - Codemotion Roma 2015

27-28 march 2015 @j8matteo

Page 18: Lean frontend development - Codemotion Roma 2015

TRY

27-28 march 2015 @j8matteo

Page 19: Lean frontend development - Codemotion Roma 2015

FEATURE’S DESIGNTO

REAL STUFF

27-28 march 2015 @j8matteo

Page 20: Lean frontend development - Codemotion Roma 2015

MINIMUMVIABLE

PRODUCT

27-28 march 2015 @j8matteo

Page 21: Lean frontend development - Codemotion Roma 2015

MINIMUMVIABLE

PRODUCTCODE

27-28 march 2015 @j8matteo

Page 22: Lean frontend development - Codemotion Roma 2015

“ MVC: UNPOLISHED, BAREBONE, TESTABLE, FAILABLE PIECE OF

SOFTWARE ”

27-28 march 2015 @j8matteo

Page 23: Lean frontend development - Codemotion Roma 2015

YOUR FEATURE DESIGN IS AN ASSUMPTION

27-28 march 2015 @j8matteo

Page 24: Lean frontend development - Codemotion Roma 2015

“ANIMATED FONT SIZE ON A VERTICALLY DISTRIBUTED FULL

HEIGHT LIST…”

display: table?

27-28 march 2015 @j8matteo

Page 25: Lean frontend development - Codemotion Roma 2015

TRY IT OUT!

27-28 march 2015 @j8matteo

Page 26: Lean frontend development - Codemotion Roma 2015

Do or do not... there is no try

27-28 march 2015 @j8matteo

Page 27: Lean frontend development - Codemotion Roma 2015

Do or do not... there is no try

He didn’t know

CodePen

27-28 march 2015 @j8matteo

Page 28: Lean frontend development - Codemotion Roma 2015

CLUNKY

!

http://codepen.io/dwightjack/pen/ogwQKz

27-28 march 2015 @j8matteo

Page 29: Lean frontend development - Codemotion Roma 2015

“LET’S TRY OUT flexbox”

27-28 march 2015 @j8matteo

Page 30: Lean frontend development - Codemotion Roma 2015

http://codepen.io/dwightjack/pen/azwPzv

27-28 march 2015 @j8matteo

Page 31: Lean frontend development - Codemotion Roma 2015

YOUR PREJUDICES ARE ASSUMPTIONS TOO!

27-28 march 2015 @j8matteo

Page 32: Lean frontend development - Codemotion Roma 2015

“JS NATIVE METHODS JUST ROCK”

27-28 march 2015 @j8matteo

Page 33: Lean frontend development - Codemotion Roma 2015

http://jsperf.com/native-vs-for-loops

27-28 march 2015 @j8matteo

Page 34: Lean frontend development - Codemotion Roma 2015

COOL / SOLID OPTIONS

27-28 march 2015 @j8matteo

Page 35: Lean frontend development - Codemotion Roma 2015

ADVANTAGES:

• WON’T CLUTTER YOUR CODEBASE WITH TEST CODE• CLEAN / SANBOXED ENVIRONMENT IN NO TIME• SHARE AND TEST ON MULTIPLE BROWSERS/DEVICES• GREAT FOR PROTOTYPING• WIDE SUPPORT FOR YOUR PREFERRED STACK

27-28 march 2015 @j8matteo

Page 36: Lean frontend development - Codemotion Roma 2015

BUILD

27-28 march 2015 @j8matteo

Page 37: Lean frontend development - Codemotion Roma 2015

TEST PASSED!

LET’S GET REAL

27-28 march 2015 @j8matteo

Page 38: Lean frontend development - Codemotion Roma 2015

“THERE’S NO BIG SOFTWARE

JUST BIG MISTAKES”

27-28 march 2015 @j8matteo

Page 39: Lean frontend development - Codemotion Roma 2015

“Everything is acompound thing”

First Modular Development

Master in history

“Everything is a compound thing”

First Modular Development

Master in History

Page 40: Lean frontend development - Codemotion Roma 2015

WHY MODULAR DEVELOPMENT:

SIMPLICITYENCAPSULATION

SEPARATION OF CONCERNS

27-28 march 2015 @j8matteo

Page 41: Lean frontend development - Codemotion Roma 2015

PICK YOUR FLAVORS

27-28 march 2015 @j8matteo

Page 42: Lean frontend development - Codemotion Roma 2015

FULL STACK FRONTEND

DEVELOPERS?

27-28 march 2015 @j8matteo

Page 43: Lean frontend development - Codemotion Roma 2015

CROSSFUNCTIONAL FRONTEND TEAMS

Semantics + Accessibility(HTML + ARIA)

Presentation(CSS)

Interactivity(JavaScript / BaaS APIs)27-28 march 2015 @j8matteo

Page 44: Lean frontend development - Codemotion Roma 2015

BROWSERS ALREADY DO THAT

<input type=”date” required min=”10” max=”100”>

input[type=”date”]::-webkit-datetime-edit-month-field { color: #bada55;}

document.querySelector(‘input[type=”date”]’).checkValidity();

27-28 march 2015 @j8matteo

Page 45: Lean frontend development - Codemotion Roma 2015

“WE NEED TO OUTPUT15 PAGE TEMPLATES”

- a random PM

27-28 march 2015 @j8matteo

Page 46: Lean frontend development - Codemotion Roma 2015

STYLEGUIDE DRIVEN DEVELOPMENT

27-28 march 2015 @j8matteo

Page 47: Lean frontend development - Codemotion Roma 2015

ADVANTAGES:

• shared knowledge base (with teammates and customers)

• every module state and variation is clearly visible• code snippets (how to implement) and visual

output (how it looks)

27-28 march 2015 @j8matteo

Page 48: Lean frontend development - Codemotion Roma 2015

LIVING STYLEGUIDES/* ========================================================================== Media Object ====

``` <div class="media"> <img src=//placehold.it/150x150 alt="" class="media__image"> <div class="media__wrap"> <h1 class="media__title">Media Title</h1> <p class="media__body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> </div> </div> ``` ========================================================================== */

27-28 march 2015 @j8matteo

Page 49: Lean frontend development - Codemotion Roma 2015

LIVING STYLEGUIDES/* ========================================================================== Media Object ====

``` <div class="media"> <img src=//placehold.it/150x150 alt="" class="media__image"> <div class="media__wrap"> <h1 class="media__title">Media Title</h1> <p class="media__body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </p> </div> </div> ``` ========================================================================== */

Page 50: Lean frontend development - Codemotion Roma 2015

COOL / SOLID OPTIONS

27-28 march 2015 @j8matteo

Page 51: Lean frontend development - Codemotion Roma 2015

CHECK

27-28 march 2015 @j8matteo

Page 52: Lean frontend development - Codemotion Roma 2015

KITCHEN ISN’T A 3DMAX RENDER

WEBSITE ISN’T A PSD27-28 march 2015 @j8matteo

Page 53: Lean frontend development - Codemotion Roma 2015

CHECK IS LEARNING

DO IT TOGETHERNOT ONE vs ONE

27-28 march 2015 @j8matteo

Page 54: Lean frontend development - Codemotion Roma 2015

CODE SHOULD BEBEAUTIFUL TOO

27-28 march 2015 @j8matteo

Page 55: Lean frontend development - Codemotion Roma 2015

COOL / SOLID OPTIONS

27-28 march 2015 @j8matteo

Page 56: Lean frontend development - Codemotion Roma 2015

CODE SHOULD BEREUSABLEMODULAR

COMMENTED27-28 march 2015 @j8matteo

Page 57: Lean frontend development - Codemotion Roma 2015

CODEREVIEW ASRETROSPECTIVE

27-28 march 2015 @j8matteo

Page 58: Lean frontend development - Codemotion Roma 2015

ITERATE

ALL THE TIME27-28 march 2015 @j8matteo

Page 59: Lean frontend development - Codemotion Roma 2015

IT’S NOT A GUIDE

IT’S A FRAMEWORK

27-28 march 2015 @j8matteo

Page 60: Lean frontend development - Codemotion Roma 2015

GET OUT OFDELIVERY OBSESSION

27-28 march 2015 @j8matteo

Page 61: Lean frontend development - Codemotion Roma 2015

IT’S A DECLARATION OF INDEPENDENCE

27-28 march 2015 @j8matteo

Page 62: Lean frontend development - Codemotion Roma 2015

THANKS

27-28 march 2015 @j8matteo