SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
ON SELECTING
JAVASCRIPT
FRAMEWORKS
I'm Zoe Landon.
(aka @hupfen)
I'VE DONE THIS A BIT BEFORE.
◇ I'm a web developer with a fair bit of
front-end experience.
◇ My last two jobs both involved some
degree of picking a JavaScript
framework.
◇ In fact, I've only had one job where it
didn't come up.
◇ Not to mention personal projects.
◇ It's getting kinda old, honestly.
So, if we're going to pick
a JavaScript framework,
we should look at our
options, right?
THERE'S A FEW.
BY THE WAY...
These were all active within the last two
weeks, when I made this presentation
(Oct. 7).
Some are hobbyists, some are big
companies, but all are active projects.
You could maybe double this with "slow"
projects (updates in the last 6 months).
LET'S CLEAN
THIS UP A BIT.
BETTER.
EXCEPT...
Those lines are blurry.
An MVC framework can use components
to drive its structure.
A component-driven architecture may or
may not be modular.
There's overlap. It's not clear-cut.
So, how do you pick the
right JavaScript
framework out of all that
ambiguity?
ANSWER:
Choosing a framework
shouldn't be the first
thing you do on a
project, but the last.
Before writing code, of course.
LET'S TALK ABOUT
CODE SCHOOLS.
CODE SCHOOLS
◇ Code schools, and many college CS
programs, advertise that they'll teach
you how to code.
◇ Broader PR language talks about how
everyone should learn to code.
◇ That's all true. And that's all useful.
◇ But coding is not making software.
Learning to write code,
but not learning to make
software, causes
problems.
CS VERSUS SE
Software is more than the code you write.
It's all of the context that goes into it.
Writing code is a vital step in
implementing software, but so is the
process of finding that context.
Too often, that process is skipped over by
programmers who just want to code.
CODING IS NOT
SOFTWARE
ENGINEERING
Selecting a JavaScript
framework is a software
engineering challenge,
not a coding challenge.
THE PROCESS
Sorry, but this is a software engineering
talk in disguise.
But if you ask the right questions, you'll
end up understanding the project and its
context so well that picking a framework
takes hardly any effort.
So let's ask those questions.
SOFTWARE
QUESTIONS
WHY?
WHY?
Why does the problem you're trying to
solve exist?
Was performance never considered?
Is the code poorly built?
Are you just goofing around and learning?
There's no wrong answer, besides having
no answer.
WHY?
Sometimes, you'll get requirements that
propose a solution to what they describe.
Asking "why?" offers a gut-check, to make
sure that solution really is the best one.
Also consider why a framework you're
evaluating exists. What problems are its
authors trying to solve? Do they know?
The context of the
problem matters more
than the problem itself.
WHAT?
WHAT?
Working out why the problem exists helps
to define what the problem really is.
That helps define the features and
capabilities that are going to be
necessary.
Those become your priority.
WHAT?
Some tools and frameworks do certain
features really well, and really easily. But
other features may take some work.
Don't discard a framework just because it
doesn't have exactly what you want. You
can build it. Or it may have something
different that achieves the goal instead.
Any feature is possible,
but with the wrong tools
some will be difficult.
WHO?
WHO?
You go to war with the army you have.
You, your customer, your users, your
teammates, your company… Everyone
brings perspectives. Expectations. Skills.
Experiences. Ideas.
Politics.
WHO?
If your boss says "we're using this
framework", and it's not the best one, you
either have to fight or concede.
If your team already knows a framework
that's not empirically the best, but is still
kinda close, that may be your wisest pick.
Merit rarely wins. Account for this.
The people on a project
ultimately determine
what's practical.
HOW?
HOW?
Every framework has a philosophy behind
it. Based on the context you've gathered,
you'll have a philosophy on how the
project should be done.
Now you're just looking for a match.
You'll make better code that way.
HOW?
Beyond a certain level of competence-
based best practices, it's not worth
worrying about how pundits write their
code.
If you don't like a popular approach, don't
use it. If you do like it, use it.
You're the one writing the code, after all.
Pick the tools that
encourage the kind of
code you can enjoy.
REPEAT
REPEAT
You'll hopefully only choose a framework
once, but you should be asking those
questions routinely.
Every quarter, or at the beginning of every
sprint, whatever pace helps keep you
confident you're on the right track and
making the right software.
REPEAT
But now, the hard work is done!
All you have to do is implement the ideas
you decided on. But since you did all that
work, the programming will be easier.
You've made the software, you just need
to write the code that powers it.
LAST THOUGHTS
LAST THOUGHTS
I always like to end
on some little
summarizing
thoughts.
Some oblique
strategies for
software
engineering, if you
will.
And I will.
Immediately why,
Eventually how
When faced with a
problem, ask why
the problem exists
before jumping to
solve it.
Pick the boring option
Practicality is a valid
argument. When
working with many
others, a less
interesting option
may be the best.
Software is human
Software has a
personality. It's
more than just
code, it's all the
decisions and
context that went
into it. Understand
those, understand
software.
Also:
Software has a life.
It will grow up.
It will grow old.
You can give it the
best chance of
success, but
ultimately, it's out
of your hands.
Accept this.
Embrace this.
TWEET AT ME: @HUPFEN
YELL AT ME: ZOE@HUPFEN.COM
Presentation template by SlidesCarnival
Photographs by Death to the Stock Photo

Mais conteúdo relacionado

Mais procurados

jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
dmethvin
 
jQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performance
dmethvin
 

Mais procurados (20)

JavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right ChoiceJavaScript MV* Framework - Making the Right Choice
JavaScript MV* Framework - Making the Right Choice
 
Getting Started with Angular - Stormpath Webinar, January 2017
Getting Started with Angular - Stormpath Webinar, January 2017Getting Started with Angular - Stormpath Webinar, January 2017
Getting Started with Angular - Stormpath Webinar, January 2017
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
 
Testing Angular Applications - Jfokus 2017
Testing Angular Applications - Jfokus 2017Testing Angular Applications - Jfokus 2017
Testing Angular Applications - Jfokus 2017
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016
 
jQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performance
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
 
Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015Get Hip with JHipster - Denver JUG 2015
Get Hip with JHipster - Denver JUG 2015
 
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
 
Learning from the Best jQuery Plugins
Learning from the Best jQuery PluginsLearning from the Best jQuery Plugins
Learning from the Best jQuery Plugins
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
 
What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
 
The Onion
The OnionThe Onion
The Onion
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx France 2016
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
 

Destaque (10)

JS Framework Comparison - An infographic
JS Framework Comparison - An infographicJS Framework Comparison - An infographic
JS Framework Comparison - An infographic
 
Careers_Trainee
Careers_TraineeCareers_Trainee
Careers_Trainee
 
Mat 10 u1
Mat 10 u1Mat 10 u1
Mat 10 u1
 
Healthy Travel
Healthy TravelHealthy Travel
Healthy Travel
 
Ucaya power point1
Ucaya power point1Ucaya power point1
Ucaya power point1
 
Presentation2015solvex
Presentation2015solvexPresentation2015solvex
Presentation2015solvex
 
Newolo virtual coach_Amsterdam_09022015
Newolo virtual coach_Amsterdam_09022015Newolo virtual coach_Amsterdam_09022015
Newolo virtual coach_Amsterdam_09022015
 
Adil zabroug resume
Adil zabroug resumeAdil zabroug resume
Adil zabroug resume
 
Bradycakes
BradycakesBradycakes
Bradycakes
 
TWO EXTRAORDINARY TIME KEEPERS
TWO EXTRAORDINARY TIME KEEPERSTWO EXTRAORDINARY TIME KEEPERS
TWO EXTRAORDINARY TIME KEEPERS
 

Semelhante a On Selecting JavaScript Frameworks (Women Who Code 10/15)

Recipe of a rockstar developer
Recipe of a rockstar developerRecipe of a rockstar developer
Recipe of a rockstar developer
Topu Newaj
 
Software Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docxSoftware Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docx
rosemariebrayshaw
 
Session on mockups
Session on mockupsSession on mockups
Session on mockups
Abdul Dibosh
 
7 crazy tips that will help you
7 crazy tips that will help you7 crazy tips that will help you
7 crazy tips that will help you
Jessica Wilson
 
Working together
Working togetherWorking together
Working together
himaye
 

Semelhante a On Selecting JavaScript Frameworks (Women Who Code 10/15) (20)

Recipe of a rockstar developer
Recipe of a rockstar developerRecipe of a rockstar developer
Recipe of a rockstar developer
 
Frame or not to Frame
Frame or not to FrameFrame or not to Frame
Frame or not to Frame
 
Software Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docxSoftware Development Life CyclesPresented byBrenda Reynold.docx
Software Development Life CyclesPresented byBrenda Reynold.docx
 
Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523Upwork time log and difficulty 20160523
Upwork time log and difficulty 20160523
 
Planning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teamsPlanning JavaScript and Ajax for larger teams
Planning JavaScript and Ajax for larger teams
 
Cinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patternsCinci ug-january2011-anti-patterns
Cinci ug-january2011-anti-patterns
 
Why Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software EngineeringWhy Design Patterns Are Important In Software Engineering
Why Design Patterns Are Important In Software Engineering
 
Industry stories on agile, scrum and kanban
Industry stories on agile, scrum and kanbanIndustry stories on agile, scrum and kanban
Industry stories on agile, scrum and kanban
 
Untangling spring week8
Untangling spring week8Untangling spring week8
Untangling spring week8
 
On Readability of Code
On Readability of CodeOn Readability of Code
On Readability of Code
 
Rhok 101 for change makers - with an agile flavour
Rhok 101 for change makers - with an agile flavourRhok 101 for change makers - with an agile flavour
Rhok 101 for change makers - with an agile flavour
 
Design Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: WireframeDesign Process | Tool 02: Scenario - Tool 03: Wireframe
Design Process | Tool 02: Scenario - Tool 03: Wireframe
 
Documentation for developers
Documentation for developersDocumentation for developers
Documentation for developers
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
 
Designing with content-first
Designing with content-firstDesigning with content-first
Designing with content-first
 
Session on mockups
Session on mockupsSession on mockups
Session on mockups
 
7 crazy tips that will help you
7 crazy tips that will help you7 crazy tips that will help you
7 crazy tips that will help you
 
UX Fluency for a better Front End
UX Fluency for a better Front End  UX Fluency for a better Front End
UX Fluency for a better Front End
 
Working together
Working togetherWorking together
Working together
 
Most valuable software design principles
Most valuable software design principlesMost valuable software design principles
Most valuable software design principles
 

Último

DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
mphochane1998
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
chumtiyababu
 

Último (20)

HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments""Lesotho Leaps Forward: A Chronicle of Transformative Developments"
"Lesotho Leaps Forward: A Chronicle of Transformative Developments"
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 

On Selecting JavaScript Frameworks (Women Who Code 10/15)

  • 3. I'VE DONE THIS A BIT BEFORE. ◇ I'm a web developer with a fair bit of front-end experience. ◇ My last two jobs both involved some degree of picking a JavaScript framework. ◇ In fact, I've only had one job where it didn't come up. ◇ Not to mention personal projects. ◇ It's getting kinda old, honestly.
  • 4. So, if we're going to pick a JavaScript framework, we should look at our options, right?
  • 5.
  • 7. BY THE WAY... These were all active within the last two weeks, when I made this presentation (Oct. 7). Some are hobbyists, some are big companies, but all are active projects. You could maybe double this with "slow" projects (updates in the last 6 months).
  • 9.
  • 11. EXCEPT... Those lines are blurry. An MVC framework can use components to drive its structure. A component-driven architecture may or may not be modular. There's overlap. It's not clear-cut.
  • 12. So, how do you pick the right JavaScript framework out of all that ambiguity?
  • 14.
  • 15.
  • 16. Choosing a framework shouldn't be the first thing you do on a project, but the last. Before writing code, of course.
  • 18. CODE SCHOOLS ◇ Code schools, and many college CS programs, advertise that they'll teach you how to code. ◇ Broader PR language talks about how everyone should learn to code. ◇ That's all true. And that's all useful. ◇ But coding is not making software.
  • 19. Learning to write code, but not learning to make software, causes problems.
  • 20. CS VERSUS SE Software is more than the code you write. It's all of the context that goes into it. Writing code is a vital step in implementing software, but so is the process of finding that context. Too often, that process is skipped over by programmers who just want to code.
  • 22. Selecting a JavaScript framework is a software engineering challenge, not a coding challenge.
  • 23. THE PROCESS Sorry, but this is a software engineering talk in disguise. But if you ask the right questions, you'll end up understanding the project and its context so well that picking a framework takes hardly any effort. So let's ask those questions.
  • 25. WHY?
  • 26. WHY? Why does the problem you're trying to solve exist? Was performance never considered? Is the code poorly built? Are you just goofing around and learning? There's no wrong answer, besides having no answer.
  • 27. WHY? Sometimes, you'll get requirements that propose a solution to what they describe. Asking "why?" offers a gut-check, to make sure that solution really is the best one. Also consider why a framework you're evaluating exists. What problems are its authors trying to solve? Do they know?
  • 28. The context of the problem matters more than the problem itself.
  • 29. WHAT?
  • 30. WHAT? Working out why the problem exists helps to define what the problem really is. That helps define the features and capabilities that are going to be necessary. Those become your priority.
  • 31. WHAT? Some tools and frameworks do certain features really well, and really easily. But other features may take some work. Don't discard a framework just because it doesn't have exactly what you want. You can build it. Or it may have something different that achieves the goal instead.
  • 32. Any feature is possible, but with the wrong tools some will be difficult.
  • 33. WHO?
  • 34. WHO? You go to war with the army you have. You, your customer, your users, your teammates, your company… Everyone brings perspectives. Expectations. Skills. Experiences. Ideas. Politics.
  • 35. WHO? If your boss says "we're using this framework", and it's not the best one, you either have to fight or concede. If your team already knows a framework that's not empirically the best, but is still kinda close, that may be your wisest pick. Merit rarely wins. Account for this.
  • 36. The people on a project ultimately determine what's practical.
  • 37. HOW?
  • 38. HOW? Every framework has a philosophy behind it. Based on the context you've gathered, you'll have a philosophy on how the project should be done. Now you're just looking for a match. You'll make better code that way.
  • 39. HOW? Beyond a certain level of competence- based best practices, it's not worth worrying about how pundits write their code. If you don't like a popular approach, don't use it. If you do like it, use it. You're the one writing the code, after all.
  • 40. Pick the tools that encourage the kind of code you can enjoy.
  • 42. REPEAT You'll hopefully only choose a framework once, but you should be asking those questions routinely. Every quarter, or at the beginning of every sprint, whatever pace helps keep you confident you're on the right track and making the right software.
  • 43. REPEAT But now, the hard work is done! All you have to do is implement the ideas you decided on. But since you did all that work, the programming will be easier. You've made the software, you just need to write the code that powers it.
  • 45. LAST THOUGHTS I always like to end on some little summarizing thoughts. Some oblique strategies for software engineering, if you will. And I will.
  • 47. When faced with a problem, ask why the problem exists before jumping to solve it.
  • 48. Pick the boring option
  • 49. Practicality is a valid argument. When working with many others, a less interesting option may be the best.
  • 51. Software has a personality. It's more than just code, it's all the decisions and context that went into it. Understand those, understand software.
  • 52. Also: Software has a life. It will grow up. It will grow old. You can give it the best chance of success, but ultimately, it's out of your hands. Accept this. Embrace this.
  • 53. TWEET AT ME: @HUPFEN YELL AT ME: ZOE@HUPFEN.COM Presentation template by SlidesCarnival Photographs by Death to the Stock Photo