69
SELECTING A WEB FRAMEWORK with Pam Selle (@pamasaur) // thewebivore.com Tuesday, July 30, 13

Selecting a Web Framework

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

Page 1: Selecting a Web Framework

SELECTING A WEB FRAMEWORKwith Pam Selle (@pamasaur) // thewebivore.com

Tuesday, July 30, 13

Page 2: Selecting a Web Framework

Tuesday, July 30, 13

Page 3: Selecting a Web Framework

I will not tell you what to do.

SPOILERS!

Tuesday, July 30, 13

Page 4: Selecting a Web Framework

But, maybe I can help you approach the decision.

Tuesday, July 30, 13

Page 5: Selecting a Web Framework

Agenda

Focus on the outcomes

Criteria for frameworks

Framework cheat sheet

Interactive!

Case studies & Resources

Discussion

Tuesday, July 30, 13

Page 6: Selecting a Web Framework

OUTCOMES

Tuesday, July 30, 13

Page 7: Selecting a Web Framework

Technical

Ramping up

Maintainable

Iterate

Tuesday, July 30, 13

Page 8: Selecting a Web Framework

Operations

Uptime

Speed

Resources

Tuesday, July 30, 13

Page 9: Selecting a Web Framework

Team

Productivity

Retainability

Growth

Tuesday, July 30, 13

Page 10: Selecting a Web Framework

Business

Solves the business problem

Affordable in the long run

Tuesday, July 30, 13

Page 11: Selecting a Web Framework

EVALUATING FRAMEWORKS

Tuesday, July 30, 13

Page 12: Selecting a Web Framework

TECHNICAL

Tuesday, July 30, 13

Page 13: Selecting a Web Framework

Core

Core capabilities

What do you get?

Tuesday, July 30, 13

Page 14: Selecting a Web Framework

Needs vs. Strengths

What do you need most?

Strengths you don’t need are cruft

Tuesday, July 30, 13

Page 15: Selecting a Web Framework

Data abstraction

How does it save you time?

ORM

Tuesday, July 30, 13

Page 16: Selecting a Web Framework

Testing

Unit testing

Integration testing

Do you like those frameworks, or prefer plug and play?

Tuesday, July 30, 13

Page 17: Selecting a Web Framework

Documentation

Well-written and explained

Updated with versions

Sample code, tutorials

Tuesday, July 30, 13

Page 18: Selecting a Web Framework

Extension

Plugins

Libraries

The dangers of ugly lamp syndrome

Tuesday, July 30, 13

Page 19: Selecting a Web Framework

OPERATIONS

Tuesday, July 30, 13

Page 20: Selecting a Web Framework

Servability

Hosting

Speed

Operations cost

Tuesday, July 30, 13

Page 21: Selecting a Web Framework

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

Page 22: Selecting a Web Framework

Resources

Can you serve it?

Are there resources available for emergencies?

Tuesday, July 30, 13

Page 23: Selecting a Web Framework

TEAM

Tuesday, July 30, 13

Page 24: Selecting a Web Framework

Longevity

How long has it been around?

How long will it be around?

Tuesday, July 30, 13

Page 25: Selecting a Web Framework

Community

Are there user groups?

Conferences?

Screencasts?

Is there free help to be had?

Tuesday, July 30, 13

Page 26: Selecting a Web Framework

Learning Curve

Tuesday, July 30, 13

Page 27: Selecting a Web Framework

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

Page 28: Selecting a Web Framework

BUSINESS

Tuesday, July 30, 13

Page 29: Selecting a Web Framework

Licenses

Licensing ups & downs

Impact on longevity

Free isn’t so free

Tuesday, July 30, 13

Page 30: Selecting a Web Framework

Audience

What they have to use

What you want them to experience

Tuesday, July 30, 13

Page 31: Selecting a Web Framework

Other Business Goals

SEO

Marketing/Sales

Tuesday, July 30, 13

Page 32: Selecting a Web Framework

FRAMEWORK CHEAT SHEET

Tuesday, July 30, 13

Page 33: Selecting a Web Framework

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

Page 34: Selecting a Web Framework

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

Page 35: Selecting a Web Framework

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

Page 36: Selecting a Web Framework

JavaScriptNode!

MV* frameworks abound

Build as much or little was you want

Tuesday, July 30, 13

Page 37: Selecting a Web Framework

INTERACTIVE

Tuesday, July 30, 13

Page 38: Selecting a Web Framework

Game plan

Form teams

Choose a number

Choose [number] “team member” cards

Choose a solution to build

Tuesday, July 30, 13

Page 39: Selecting a Web Framework

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

Page 40: Selecting a Web Framework

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

Page 41: Selecting a Web Framework

DISCUSS!https://frameworks.hackpad.com/

Tuesday, July 30, 13

Page 42: Selecting a Web Framework

CASE STUDIES

Tuesday, July 30, 13

Page 43: Selecting a Web Framework

Tuesday, July 30, 13

Page 44: Selecting a Web Framework

AxisPhilly priorities

End user experience (writers)

Extendibility

Future maintenance

Tuesday, July 30, 13

Page 45: Selecting a Web Framework

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

Page 46: Selecting a Web Framework

Tuesday, July 30, 13

Page 47: Selecting a Web Framework

AdHawk priorities

Hack weekend/Limited time and resources

Team skills and commonalities

Libraries available

Tuesday, July 30, 13

Page 48: Selecting a Web Framework

Tuesday, July 30, 13

Page 49: Selecting a Web Framework

AdHawk NumbersReleased by Sunlight 8/22/2012

12.5k downloads

Identified 4k+ ads

Tuesday, July 30, 13

Page 50: Selecting a Web Framework

SURVEY SAYS ...

Tuesday, July 30, 13

Page 51: Selecting a Web Framework

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

Page 52: Selecting a Web Framework

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

Page 53: Selecting a Web Framework

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

Page 54: Selecting a Web Framework

Common Top Priorities

Experience (6)

Scalability (3)

Use case/Design (3)

Libraries/Tools (2)

“Right tool for the job” (2)

Tuesday, July 30, 13

Page 55: Selecting a Web Framework

How to choose a framework

Prioritize your criteria

Work with what you have

Cut away things you can’t control

Tuesday, July 30, 13

Page 56: Selecting a Web Framework

COMPARISONS & RESEARCH

Tuesday, July 30, 13

Page 57: Selecting a Web Framework

Quantitativehttps://github.com/TechEmpower/FrameworkBenchmarks

Tests on EC2

Results at http://www.techempower.com/benchmarks/

Tuesday, July 30, 13

Page 58: Selecting a Web Framework

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

Page 59: Selecting a Web Framework

Source: Matt Raible

Tuesday, July 30, 13

Page 60: Selecting a Web Framework

JavaScript CommunityCommon interests

Event handling/DOM access

The “Single-Page App”

Client + Server-side combos

Tuesday, July 30, 13

Page 61: Selecting a Web Framework

Tuesday, July 30, 13

Page 62: Selecting a Web Framework

More Projects

TasteJS, PropertyCross

https://github.com/paulmillr/ostio-apps, TasteStack

Tuesday, July 30, 13

Page 63: Selecting a Web Framework

How to choose a framework

Prioritize your criteria

Work with what you have

Cut away things you can’t control

Tuesday, July 30, 13

Page 64: Selecting a Web Framework

How to choose a framework

Tuesday, July 30, 13

Page 65: Selecting a Web Framework

How to choose a framework

You can’t get it (too) wrong

Tuesday, July 30, 13

Page 66: Selecting a Web Framework

How to choose a framework

You can’t get it (too) wrong

Learning the lay of the land helps

Tuesday, July 30, 13

Page 67: Selecting a Web Framework

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

Page 68: Selecting a Web Framework

THANK YOU!Pam Selle // @pamasaur // thewebivore.com

Tuesday, July 30, 13

Page 69: Selecting a Web Framework

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