Your SlideShare is downloading. ×
  • Like
Selecting a Web Framework
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Selecting a Web Framework

  • 1,429 views
Published

Presented at Wharton Web Conf 2013 …

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,429
On SlideShare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
16
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. SELECTING A WEB FRAMEWORK with Pam Selle (@pamasaur) // thewebivore.com Tuesday, July 30, 13
  • 2. Tuesday, July 30, 13
  • 3. I will not tell you what to do. SPOILERS! Tuesday, July 30, 13
  • 4. But, maybe I can help you approach the decision. Tuesday, July 30, 13
  • 5. Agenda Focus on the outcomes Criteria for frameworks Framework cheat sheet Interactive! Case studies & Resources Discussion Tuesday, July 30, 13
  • 6. OUTCOMES Tuesday, July 30, 13
  • 7. Technical Ramping up Maintainable Iterate Tuesday, July 30, 13
  • 8. Operations Uptime Speed Resources Tuesday, July 30, 13
  • 9. Team Productivity Retainability Growth Tuesday, July 30, 13
  • 10. Business Solves the business problem Affordable in the long run Tuesday, July 30, 13
  • 11. EVALUATING FRAMEWORKS Tuesday, July 30, 13
  • 12. TECHNICAL Tuesday, July 30, 13
  • 13. Core Core capabilities What do you get? Tuesday, July 30, 13
  • 14. Needs vs. Strengths What do you need most? Strengths you don’t need are cruft Tuesday, July 30, 13
  • 15. Data abstraction How does it save you time? ORM Tuesday, July 30, 13
  • 16. Testing Unit testing Integration testing Do you like those frameworks, or prefer plug and play? Tuesday, July 30, 13
  • 17. Documentation Well-written and explained Updated with versions Sample code, tutorials Tuesday, July 30, 13
  • 18. Extension Plugins Libraries The dangers of ugly lamp syndrome Tuesday, July 30, 13
  • 19. OPERATIONS Tuesday, July 30, 13
  • 20. Servability Hosting Speed Operations cost Tuesday, July 30, 13
  • 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. Resources Can you serve it? Are there resources available for emergencies? Tuesday, July 30, 13
  • 23. TEAM Tuesday, July 30, 13
  • 24. Longevity How long has it been around? How long will it be around? Tuesday, July 30, 13
  • 25. Community Are there user groups? Conferences? Screencasts? Is there free help to be had? Tuesday, July 30, 13
  • 26. Learning Curve Tuesday, July 30, 13
  • 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. BUSINESS Tuesday, July 30, 13
  • 29. Licenses Licensing ups & downs Impact on longevity Free isn’t so free Tuesday, July 30, 13
  • 30. Audience What they have to use What you want them to experience Tuesday, July 30, 13
  • 31. Other Business Goals SEO Marketing/Sales Tuesday, July 30, 13
  • 32. FRAMEWORK CHEAT SHEET Tuesday, July 30, 13
  • 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. 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. 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. JavaScript Node! MV* frameworks abound Build as much or little was you want Tuesday, July 30, 13
  • 37. INTERACTIVE Tuesday, July 30, 13
  • 38. Game plan Form teams Choose a number Choose [number] “team member” cards Choose a solution to build Tuesday, July 30, 13
  • 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. 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. DISCUSS! https://frameworks.hackpad.com/ Tuesday, July 30, 13
  • 42. CASE STUDIES Tuesday, July 30, 13
  • 43. Tuesday, July 30, 13
  • 44. AxisPhilly priorities End user experience (writers) Extendibility Future maintenance Tuesday, July 30, 13
  • 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. Tuesday, July 30, 13
  • 47. AdHawk priorities Hack weekend/Limited time and resources Team skills and commonalities Libraries available Tuesday, July 30, 13
  • 48. Tuesday, July 30, 13
  • 49. AdHawk Numbers Released by Sunlight 8/22/2012 12.5k downloads Identified 4k+ ads Tuesday, July 30, 13
  • 50. SURVEY SAYS ... Tuesday, July 30, 13
  • 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. 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. 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. 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. 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. COMPARISONS & RESEARCH Tuesday, July 30, 13
  • 57. Quantitative https://github.com/TechEmpower/FrameworkBenchmarks Tests on EC2 Results at http://www.techempower.com/benchmarks/ Tuesday, July 30, 13
  • 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. Source: Matt Raible Tuesday, July 30, 13
  • 60. JavaScript Community Common interests Event handling/DOM access The “Single-Page App” Client + Server-side combos Tuesday, July 30, 13
  • 61. Tuesday, July 30, 13
  • 62. More Projects TasteJS, PropertyCross https://github.com/paulmillr/ostio-apps, TasteStack Tuesday, July 30, 13
  • 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. How to choose a framework Tuesday, July 30, 13
  • 65. How to choose a framework You can’t get it (too) wrong Tuesday, July 30, 13
  • 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. 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. THANK YOU! Pam Selle // @pamasaur // thewebivore.com Tuesday, July 30, 13
  • 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