Upload
pamselle
View
1.563
Download
2
Tags:
Embed Size (px)
DESCRIPTION
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!
Citation preview
SELECTING A WEB FRAMEWORKwith 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
PHPhttp://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, JVMBenefits 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/RubyPython
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
JavaScriptNode!
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 NumbersReleased 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
Quantitativehttps://github.com/TechEmpower/FrameworkBenchmarks
Tests on EC2
Results at http://www.techempower.com/benchmarks/
Tuesday, July 30, 13
Java CommunityMatt 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 CommunityCommon 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