SlideShare a Scribd company logo
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
Discussion
Tuesday, July 30, 13
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 it cover common vulnerabilities (injection, etc.)
Tuesday, July 30, 13
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 abandoned?
Can you build your team?
Can you bring in reinforcements?
Tuesday, July 30, 13
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 for security issues (unwarranted?)
Viewed as a sunsetting language
Tuesday, July 30, 13
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
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
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 framework
would you use?
Let me know if you need an additional challenge.
(After) Present to the group
Tuesday, July 30, 13
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
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
Tuesday, July 30, 13
Tuesday, July 30, 13
AdHawk priorities
Hack weekend/Limited time and resources
Team skills and commonalities
Libraries available
Tuesday, July 30, 13
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 -- *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
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
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
Common Top Priorities
Experience (6)
Scalability (3)
Use case/Design (3)
Libraries/Tools (2)
“Right tool for the job” (2)
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 30, 13
COMPARISONS & RESEARCH
Tuesday, July 30, 13
Quantitative
https://github.com/TechEmpower/FrameworkBenchmarks
Tests on EC2
Results at http://www.techempower.com/benchmarks/
Tuesday, July 30, 13
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
Source: Matt Raible
Tuesday, July 30, 13
JavaScript Community
Common interests
Event handling/DOM access
The “Single-Page App”
Client + Server-side combos
Tuesday, July 30, 13
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 30, 13
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 resources helps more.
Tuesday, July 30, 13
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 why?
Share a story
Tuesday, July 30, 13

More Related Content

PDF
How to choose a web framework and be surprised
PDF
The journey to build a more usable toolbar for Drupal 8
PDF
UX & Wireframes Know Your Weapon of Choice
PDF
What To Ask A Startup
PDF
UX, UI, WTF
PDF
Technical Challenges of Real-World Agent-Based Modelling
PDF
ONA 2013 Design That Works session by Hong Qu
PDF
Google Class Presentation
How to choose a web framework and be surprised
The journey to build a more usable toolbar for Drupal 8
UX & Wireframes Know Your Weapon of Choice
What To Ask A Startup
UX, UI, WTF
Technical Challenges of Real-World Agent-Based Modelling
ONA 2013 Design That Works session by Hong Qu
Google Class Presentation

Similar to Selecting a Web Framework (20)

PDF
Designing the Mobile Experience
PDF
Designing the Mobile Experience
PDF
Data Modeling with Neo4j
PPTX
eLearning on a Shoestring
PDF
Future technologies for business simulations
PDF
HTML5 Slides
PDF
UX Jackson 2013 - One-Day Lean Startup Workshop
PDF
10+ Reasons to Use Static Testing
PDF
Design is a Process, not an Artefact - Trisha Gee (MongoDB)
PDF
openTSDB - Metrics for a distributed world
PDF
WordPress Use Cases
PDF
metrics - performance monitoring or business value optimization?
PDF
PDF
Lifelong Analysis Skills for Explorers and Process Junkies alike!
PDF
John Kenevey, Open Compute "Open Compute Project: history, value proposition...
PDF
Big project success with small web teams
PDF
A Framework for Implementing Lean UX
PDF
Herd the CATS! Project management drupalcamp colorado 2013
PDF
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
PDF
Drupalcon PDX Swagger
Designing the Mobile Experience
Designing the Mobile Experience
Data Modeling with Neo4j
eLearning on a Shoestring
Future technologies for business simulations
HTML5 Slides
UX Jackson 2013 - One-Day Lean Startup Workshop
10+ Reasons to Use Static Testing
Design is a Process, not an Artefact - Trisha Gee (MongoDB)
openTSDB - Metrics for a distributed world
WordPress Use Cases
metrics - performance monitoring or business value optimization?
Lifelong Analysis Skills for Explorers and Process Junkies alike!
John Kenevey, Open Compute "Open Compute Project: history, value proposition...
Big project success with small web teams
A Framework for Implementing Lean UX
Herd the CATS! Project management drupalcamp colorado 2013
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating Drupal
Drupalcon PDX Swagger
Ad

More from pamselle (18)

PPTX
MidwestJS Zero to Testing
PPTX
Zero to Testing in JavaScript
PPTX
Simple Proxying in Rails
PDF
Displacing Worst Practices in CSS
PDF
Feminism & Open Source Contribution
PDF
WordPress 101 Sunday Session
PDF
WordPress 101 Saturday Session
PDF
Power Spriting With Compass
PPT
Aylin Caliskan: Quantifying the Translator Effect: Identifying authors and ma...
PDF
Sadia Afroz: Detecting Hoaxes, Frauds, and Deception in Writing Style Online
PDF
Kamelia Aryafar: Musical Genre Classification Using Sparsity-Eager Support Ve...
PDF
GDI WordPress 4 January 2012 (white)
PDF
GDI WordPress 4 January 2012
PDF
GDI WordPress 3 January 2012 (white background)
PDF
GDI WordPress 3 January 2012
PDF
GDI WordPress 2 January 2012
PDF
Gdi word press_2
PDF
GDI WordPress 1 January 2012
MidwestJS Zero to Testing
Zero to Testing in JavaScript
Simple Proxying in Rails
Displacing Worst Practices in CSS
Feminism & Open Source Contribution
WordPress 101 Sunday Session
WordPress 101 Saturday Session
Power Spriting With Compass
Aylin Caliskan: Quantifying the Translator Effect: Identifying authors and ma...
Sadia Afroz: Detecting Hoaxes, Frauds, and Deception in Writing Style Online
Kamelia Aryafar: Musical Genre Classification Using Sparsity-Eager Support Ve...
GDI WordPress 4 January 2012 (white)
GDI WordPress 4 January 2012
GDI WordPress 3 January 2012 (white background)
GDI WordPress 3 January 2012
GDI WordPress 2 January 2012
Gdi word press_2
GDI WordPress 1 January 2012
Ad

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Big Data Technologies - Introduction.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Modernizing your data center with Dell and AMD
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPT
Teaching material agriculture food technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
KodekX | Application Modernization Development
Cloud computing and distributed systems.
The AUB Centre for AI in Media Proposal.docx
Network Security Unit 5.pdf for BCA BBA.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Diabetes mellitus diagnosis method based random forest with bat algorithm
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Big Data Technologies - Introduction.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Spectral efficient network and resource selection model in 5G networks
Modernizing your data center with Dell and AMD
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Chapter 3 Spatial Domain Image Processing.pdf
Teaching material agriculture food technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Empathic Computing: Creating Shared Understanding
KodekX | Application Modernization Development

Selecting a Web Framework