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!
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
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
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
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
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
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
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