lean frontend development - codemotion roma 2015
TRANSCRIPT
LEANFRONTEND
DEVELOPMENT
ABOUT USMatteo Guidotto – Twitter: @j8matteoPM, UX & Frontend Developer, Agile Lover matteoguidotto.com
Marco Solazzi – Twitter: @dwightjackFrontend Web Developer - github.com/dwightjack/
WE WERE WEBMASTER
27-28 march 2015 @j8matteo
OUR WORKFLOW
WASN’T SO SEXY
WE ARE FRONTEND DEVELOPERS
27-28 march 2015 @j8matteo
WE NEED TO BE LEANWE NEED TO BE STRONGWE NEED TO BE AGILE
27-28 march 2015 @j8matteo
PLAN
27-28 march 2015 @j8matteo
GET OUT OF NEVERENDING
SOFTWARE
27-28 march 2015 @j8matteo
CHOOSE RIGHT WEAPONFOR YOUR WAR
27-28 march 2015 @j8matteo
UNICORN TECHNOLOGYDOESN’T EXIST
27-28 march 2015 @j8matteo
DON’T USE ANGULAR FOR EVERYTHING
27-28 march 2015 @j8matteo
DEFINEUSER AND BUYER
PERSONAS
27-28 march 2015 @j8matteo
DEFINEUSER AND BUYER
PERSONASDEVICES
27-28 march 2015 @j8matteo
DEVICE CENTEREDDEVELOPMENT
27-28 march 2015 @j8matteo
BUDGETING ACTIVITIES
27-28 march 2015 @j8matteo
27-28 march 2015 @j8matteo
TRY
27-28 march 2015 @j8matteo
FEATURE’S DESIGNTO
REAL STUFF
27-28 march 2015 @j8matteo
MINIMUMVIABLE
PRODUCT
27-28 march 2015 @j8matteo
MINIMUMVIABLE
PRODUCTCODE
27-28 march 2015 @j8matteo
“ MVC: UNPOLISHED, BAREBONE, TESTABLE, FAILABLE PIECE OF
SOFTWARE ”
27-28 march 2015 @j8matteo
YOUR FEATURE DESIGN IS AN ASSUMPTION
27-28 march 2015 @j8matteo
“ANIMATED FONT SIZE ON A VERTICALLY DISTRIBUTED FULL
HEIGHT LIST…”
display: table?
27-28 march 2015 @j8matteo
TRY IT OUT!
27-28 march 2015 @j8matteo
Do or do not... there is no try
27-28 march 2015 @j8matteo
Do or do not... there is no try
He didn’t know
CodePen
27-28 march 2015 @j8matteo
CLUNKY
!
http://codepen.io/dwightjack/pen/ogwQKz
27-28 march 2015 @j8matteo
“LET’S TRY OUT flexbox”
27-28 march 2015 @j8matteo
http://codepen.io/dwightjack/pen/azwPzv
27-28 march 2015 @j8matteo
YOUR PREJUDICES ARE ASSUMPTIONS TOO!
27-28 march 2015 @j8matteo
“JS NATIVE METHODS JUST ROCK”
27-28 march 2015 @j8matteo
http://jsperf.com/native-vs-for-loops
27-28 march 2015 @j8matteo
COOL / SOLID OPTIONS
27-28 march 2015 @j8matteo
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
BUILD
27-28 march 2015 @j8matteo
TEST PASSED!
LET’S GET REAL
27-28 march 2015 @j8matteo
“THERE’S NO BIG SOFTWARE
JUST BIG MISTAKES”
27-28 march 2015 @j8matteo
“Everything is acompound thing”
First Modular Development
Master in history
“Everything is a compound thing”
First Modular Development
Master in History
WHY MODULAR DEVELOPMENT:
SIMPLICITYENCAPSULATION
SEPARATION OF CONCERNS
27-28 march 2015 @j8matteo
PICK YOUR FLAVORS
27-28 march 2015 @j8matteo
FULL STACK FRONTEND
DEVELOPERS?
27-28 march 2015 @j8matteo
CROSSFUNCTIONAL FRONTEND TEAMS
Semantics + Accessibility(HTML + ARIA)
Presentation(CSS)
Interactivity(JavaScript / BaaS APIs)27-28 march 2015 @j8matteo
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
“WE NEED TO OUTPUT15 PAGE TEMPLATES”
- a random PM
27-28 march 2015 @j8matteo
STYLEGUIDE DRIVEN DEVELOPMENT
27-28 march 2015 @j8matteo
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
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
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> ``` ========================================================================== */
COOL / SOLID OPTIONS
27-28 march 2015 @j8matteo
CHECK
27-28 march 2015 @j8matteo
KITCHEN ISN’T A 3DMAX RENDER
WEBSITE ISN’T A PSD27-28 march 2015 @j8matteo
CHECK IS LEARNING
DO IT TOGETHERNOT ONE vs ONE
27-28 march 2015 @j8matteo
CODE SHOULD BEBEAUTIFUL TOO
27-28 march 2015 @j8matteo
COOL / SOLID OPTIONS
27-28 march 2015 @j8matteo
CODE SHOULD BEREUSABLEMODULAR
COMMENTED27-28 march 2015 @j8matteo
CODEREVIEW ASRETROSPECTIVE
27-28 march 2015 @j8matteo
ITERATE
ALL THE TIME27-28 march 2015 @j8matteo
IT’S NOT A GUIDE
IT’S A FRAMEWORK
27-28 march 2015 @j8matteo
GET OUT OFDELIVERY OBSESSION
27-28 march 2015 @j8matteo
IT’S A DECLARATION OF INDEPENDENCE
27-28 march 2015 @j8matteo
THANKS
27-28 march 2015 @j8matteo