Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
SELECTING A WEB FRAMEWORK
with Pam Selle (@pamasaur) // thewebivore.com
Tuesday, July 30, 13
Tuesday, July 30, 13
I will not tell you what to do.
SPOILERS!
Tuesday, July 30, 13
But, maybe I can help you approach the decision.
Tuesday, July 30, 13
Agenda
Focus on the outcomes
Criteria for frameworks
Framework cheat sheet
Interactive!
Case studies & Resources
Discussio...
OUTCOMES
Tuesday, July 30, 13
Technical
Ramping up
Maintainable
Iterate
Tuesday, July 30, 13
Operations
Uptime
Speed
Resources
Tuesday, July 30, 13
Team
Productivity
Retainability
Growth
Tuesday, July 30, 13
Business
Solves the business problem
Affordable in the long run
Tuesday, July 30, 13
EVALUATING FRAMEWORKS
Tuesday, July 30, 13
TECHNICAL
Tuesday, July 30, 13
Core
Core capabilities
What do you get?
Tuesday, July 30, 13
Needs vs. Strengths
What do you need most?
Strengths you don’t need are cruft
Tuesday, July 30, 13
Data abstraction
How does it save you time?
ORM
Tuesday, July 30, 13
Testing
Unit testing
Integration testing
Do you like those frameworks, or prefer plug and play?
Tuesday, July 30, 13
Documentation
Well-written and explained
Updated with versions
Sample code, tutorials
Tuesday, July 30, 13
Extension
Plugins
Libraries
The dangers of ugly lamp syndrome
Tuesday, July 30, 13
OPERATIONS
Tuesday, July 30, 13
Servability
Hosting
Speed
Operations cost
Tuesday, July 30, 13
Security
Does it have a standing track record of maintenance/patches?
Are patches accessible and simple to implement?
Does...
Resources
Can you serve it?
Are there resources available for emergencies?
Tuesday, July 30, 13
TEAM
Tuesday, July 30, 13
Longevity
How long has it been around?
How long will it be around?
Tuesday, July 30, 13
Community
Are there user groups?
Conferences?
Screencasts?
Is there free help to be had?
Tuesday, July 30, 13
Learning Curve
Tuesday, July 30, 13
Hireablility
Do people have this skill, and can you find them?
Do people want to learn this skill, or is it being abandone...
BUSINESS
Tuesday, July 30, 13
Licenses
Licensing ups & downs
Impact on longevity
Free isn’t so free
Tuesday, July 30, 13
Audience
What they have to use
What you want them to experience
Tuesday, July 30, 13
Other Business Goals
SEO
Marketing/Sales
Tuesday, July 30, 13
FRAMEWORK CHEAT SHEET
Tuesday, July 30, 13
PHP
http://www.phpframeworks.com/
Yii, CodeIgniter, Symphony, CakePHP, Zend
Common language, decent performance
Reputation...
Java, JVM
Benefits greatly from the JVM
Spring, Stripes, Tapestry ...
Grails/Groovy, Clojure, Lift/Scala
Common language, ...
Python/Ruby
Python
Django, Pyramid, Pylons,
web2py
Strong data and science
support
Explicit language, good for
new learner...
JavaScript
Node!
MV* frameworks abound
Build as much or little was you want
Tuesday, July 30, 13
INTERACTIVE
Tuesday, July 30, 13
Game plan
Form teams
Choose a number
Choose [number] “team member” cards
Choose a solution to build
Tuesday, July 30, 13
Activity
Discuss the top 3+ features/requirements for building solution
Based on your requirements and resources, what fra...
Interactive
Framework criteria list: http://bit.ly/13UueHf
Keep in mind:
How do we reach our outcomes?
Are we appropriatel...
DISCUSS!
https://frameworks.hackpad.com/
Tuesday, July 30, 13
CASE STUDIES
Tuesday, July 30, 13
Tuesday, July 30, 13
AxisPhilly priorities
End user experience (writers)
Extendibility
Future maintenance
Tuesday, July 30, 13
Outcomes
Mobile-friendly
Writers don’t rely in IT
In and out-of-site apps
Common platform makes solution-finding simple
Tu...
Tuesday, July 30, 13
AdHawk priorities
Hack weekend/Limited time and resources
Team skills and commonalities
Libraries available
Tuesday, July ...
Tuesday, July 30, 13
AdHawk Numbers
Released by Sunlight
8/22/2012
12.5k downloads
Identified 4k+ ads
Tuesday, July 30, 13
SURVEY SAYS ...
Tuesday, July 30, 13
Prioritize Concerns
Best tool for the job. Scalability is great -- *if*
scalability is a primary concern. Speed is great -...
What they want
My clients have generally come to me, and
said “I want a [Drupal | WordPress |
NationBuilder] site”
Marjori...
Work within resources
[My top concerns are] compatibility with pre-
existing infrastructure, how a given language
or frame...
Common Top Priorities
Experience (6)
Scalability (3)
Use case/Design (3)
Libraries/Tools (2)
“Right tool for the job” (2)
...
How to choose a framework
Prioritize your criteria
Work with what you have
Cut away things you can’t control
Tuesday, July...
COMPARISONS & RESEARCH
Tuesday, July 30, 13
Quantitative
https://github.com/TechEmpower/FrameworkBenchmarks
Tests on EC2
Results at http://www.techempower.com/benchma...
Java Community
Matt Raible, presented this year on the topic
http://slidesha.re/YOcbTj, http://bit.ly/15pXYvz (PDF)
Good s...
Source: Matt Raible
Tuesday, July 30, 13
JavaScript Community
Common interests
Event handling/DOM access
The “Single-Page App”
Client + Server-side combos
Tuesday,...
Tuesday, July 30, 13
More Projects
TasteJS, PropertyCross
https://github.com/paulmillr/ostio-apps, TasteStack
Tuesday, July 30, 13
How to choose a framework
Prioritize your criteria
Work with what you have
Cut away things you can’t control
Tuesday, July...
How to choose a framework
Tuesday, July 30, 13
How to choose a framework
You can’t get it (too) wrong
Tuesday, July 30, 13
How to choose a framework
You can’t get it (too) wrong
Learning the lay of the land helps
Tuesday, July 30, 13
How to choose a framework
You can’t get it (too) wrong
Learning the lay of the land helps
But knowing your team and resour...
THANK YOU!
Pam Selle // @pamasaur // thewebivore.com
Tuesday, July 30, 13
Discussion
Share your name/organization
What’s your decision role in your organization?
What’s your top consideration and ...
Upcoming SlideShare
Loading in …5
×

Selecting a Web Framework

2,322 views

Published on

Presented at Wharton Web Conf 2013
Description:
Blank slates and green fields are all well and good, but the question of choosing a framework can be a critical leadership decision. How do you go about choosing what’s best for your team, for your problem, at this point in time? In this session, Pam Selle, a polyglot developer who’s built on her share of platforms, will talk about priorities to consider to help you make the best decision. We’ll also leave time for discussion where we’ll share experiences and lessons learned. Be prepared to take some notes!

Published in: Technology
  • Be the first to comment

Selecting a Web Framework

  1. 1. SELECTING A WEB FRAMEWORK with Pam Selle (@pamasaur) // thewebivore.com Tuesday, July 30, 13
  2. 2. Tuesday, July 30, 13
  3. 3. I will not tell you what to do. SPOILERS! Tuesday, July 30, 13
  4. 4. But, maybe I can help you approach the decision. Tuesday, July 30, 13
  5. 5. Agenda Focus on the outcomes Criteria for frameworks Framework cheat sheet Interactive! Case studies & Resources Discussion Tuesday, July 30, 13
  6. 6. OUTCOMES Tuesday, July 30, 13
  7. 7. Technical Ramping up Maintainable Iterate Tuesday, July 30, 13
  8. 8. Operations Uptime Speed Resources Tuesday, July 30, 13
  9. 9. Team Productivity Retainability Growth Tuesday, July 30, 13
  10. 10. Business Solves the business problem Affordable in the long run Tuesday, July 30, 13
  11. 11. EVALUATING FRAMEWORKS Tuesday, July 30, 13
  12. 12. TECHNICAL Tuesday, July 30, 13
  13. 13. Core Core capabilities What do you get? Tuesday, July 30, 13
  14. 14. Needs vs. Strengths What do you need most? Strengths you don’t need are cruft Tuesday, July 30, 13
  15. 15. Data abstraction How does it save you time? ORM Tuesday, July 30, 13
  16. 16. Testing Unit testing Integration testing Do you like those frameworks, or prefer plug and play? Tuesday, July 30, 13
  17. 17. Documentation Well-written and explained Updated with versions Sample code, tutorials Tuesday, July 30, 13
  18. 18. Extension Plugins Libraries The dangers of ugly lamp syndrome Tuesday, July 30, 13
  19. 19. OPERATIONS Tuesday, July 30, 13
  20. 20. Servability Hosting Speed Operations cost Tuesday, July 30, 13
  21. 21. Security Does it have a standing track record of maintenance/patches? Are patches accessible and simple to implement? Does it cover common vulnerabilities (injection, etc.) Tuesday, July 30, 13
  22. 22. Resources Can you serve it? Are there resources available for emergencies? Tuesday, July 30, 13
  23. 23. TEAM Tuesday, July 30, 13
  24. 24. Longevity How long has it been around? How long will it be around? Tuesday, July 30, 13
  25. 25. Community Are there user groups? Conferences? Screencasts? Is there free help to be had? Tuesday, July 30, 13
  26. 26. Learning Curve Tuesday, July 30, 13
  27. 27. Hireablility Do people have this skill, and can you find them? Do people want to learn this skill, or is it being abandoned? Can you build your team? Can you bring in reinforcements? Tuesday, July 30, 13
  28. 28. BUSINESS Tuesday, July 30, 13
  29. 29. Licenses Licensing ups & downs Impact on longevity Free isn’t so free Tuesday, July 30, 13
  30. 30. Audience What they have to use What you want them to experience Tuesday, July 30, 13
  31. 31. Other Business Goals SEO Marketing/Sales Tuesday, July 30, 13
  32. 32. FRAMEWORK CHEAT SHEET Tuesday, July 30, 13
  33. 33. PHP http://www.phpframeworks.com/ Yii, CodeIgniter, Symphony, CakePHP, Zend Common language, decent performance Reputation for security issues (unwarranted?) Viewed as a sunsetting language Tuesday, July 30, 13
  34. 34. Java, JVM Benefits greatly from the JVM Spring, Stripes, Tapestry ... Grails/Groovy, Clojure, Lift/Scala Common language, Clojure/Scala are growing skill sets Tuesday, July 30, 13
  35. 35. Python/Ruby Python Django, Pyramid, Pylons, web2py Strong data and science support Explicit language, good for new learners Ruby Rails by far the most common Quick to learn, hard to master “Gems” written for nearly every problem to be solved Poor security reputation Tuesday, July 30, 13
  36. 36. JavaScript Node! MV* frameworks abound Build as much or little was you want Tuesday, July 30, 13
  37. 37. INTERACTIVE Tuesday, July 30, 13
  38. 38. Game plan Form teams Choose a number Choose [number] “team member” cards Choose a solution to build Tuesday, July 30, 13
  39. 39. Activity Discuss the top 3+ features/requirements for building solution Based on your requirements and resources, what framework would you use? Let me know if you need an additional challenge. (After) Present to the group Tuesday, July 30, 13
  40. 40. Interactive Framework criteria list: http://bit.ly/13UueHf Keep in mind: How do we reach our outcomes? Are we appropriately weighing the factors? Can we see multiple ‘optimal’ solutions? Tuesday, July 30, 13
  41. 41. DISCUSS! https://frameworks.hackpad.com/ Tuesday, July 30, 13
  42. 42. CASE STUDIES Tuesday, July 30, 13
  43. 43. Tuesday, July 30, 13
  44. 44. AxisPhilly priorities End user experience (writers) Extendibility Future maintenance Tuesday, July 30, 13
  45. 45. Outcomes Mobile-friendly Writers don’t rely in IT In and out-of-site apps Common platform makes solution-finding simple Tuesday, July 30, 13
  46. 46. Tuesday, July 30, 13
  47. 47. AdHawk priorities Hack weekend/Limited time and resources Team skills and commonalities Libraries available Tuesday, July 30, 13
  48. 48. Tuesday, July 30, 13
  49. 49. AdHawk Numbers Released by Sunlight 8/22/2012 12.5k downloads Identified 4k+ ads Tuesday, July 30, 13
  50. 50. SURVEY SAYS ... Tuesday, July 30, 13
  51. 51. Prioritize Concerns Best tool for the job. Scalability is great -- *if* scalability is a primary concern. Speed is great -- *if* speed is a primary concern. Repeat for team experience, ease of use, avoiding polyglot, etc. If you're using the same tool for every service in your stack, you're probably letting bias play too big a role. Tom Shawver, Leadnomics Tuesday, July 30, 13
  52. 52. What they want My clients have generally come to me, and said “I want a [Drupal | WordPress | NationBuilder] site” Marjorie, Spatial Analyst & Freelance Software Developer Tuesday, July 30, 13
  53. 53. Work within resources [My top concerns are] compatibility with pre- existing infrastructure, how a given language or framework meets the design requirements, pre-existing knowledge, longer-term scalability concerns Tuesday, July 30, 13
  54. 54. Common Top Priorities Experience (6) Scalability (3) Use case/Design (3) Libraries/Tools (2) “Right tool for the job” (2) Tuesday, July 30, 13
  55. 55. How to choose a framework Prioritize your criteria Work with what you have Cut away things you can’t control Tuesday, July 30, 13
  56. 56. COMPARISONS & RESEARCH Tuesday, July 30, 13
  57. 57. Quantitative https://github.com/TechEmpower/FrameworkBenchmarks Tests on EC2 Results at http://www.techempower.com/benchmarks/ Tuesday, July 30, 13
  58. 58. Java Community Matt Raible, presented this year on the topic http://slidesha.re/YOcbTj, http://bit.ly/15pXYvz (PDF) Good statistics on language trends Good notes on the history of framework development Tuesday, July 30, 13
  59. 59. Source: Matt Raible Tuesday, July 30, 13
  60. 60. JavaScript Community Common interests Event handling/DOM access The “Single-Page App” Client + Server-side combos Tuesday, July 30, 13
  61. 61. Tuesday, July 30, 13
  62. 62. More Projects TasteJS, PropertyCross https://github.com/paulmillr/ostio-apps, TasteStack Tuesday, July 30, 13
  63. 63. How to choose a framework Prioritize your criteria Work with what you have Cut away things you can’t control Tuesday, July 30, 13
  64. 64. How to choose a framework Tuesday, July 30, 13
  65. 65. How to choose a framework You can’t get it (too) wrong Tuesday, July 30, 13
  66. 66. How to choose a framework You can’t get it (too) wrong Learning the lay of the land helps Tuesday, July 30, 13
  67. 67. How to choose a framework You can’t get it (too) wrong Learning the lay of the land helps But knowing your team and resources helps more. Tuesday, July 30, 13
  68. 68. THANK YOU! Pam Selle // @pamasaur // thewebivore.com Tuesday, July 30, 13
  69. 69. Discussion Share your name/organization What’s your decision role in your organization? What’s your top consideration and why? Share a story Tuesday, July 30, 13

×