selecting a web framework

Post on 15-May-2015

1.563 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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!

TRANSCRIPT

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

top related