choosing technology
DESCRIPTION
Ruby on Rails or PHP? MySQL or MongoDB? Java or C#? Heroku or Amazon? Will this scale? Will it perform? With so many options, it's hard to make decisions about which technology to use to build and deploy your next web idea or application, difficult to convince others and risky to trust someone else to make these decisions for you.In this course you will learn how to approach this problem, discover the essential vocabulary of technology stacks and learn which questions to ask. This class is equally suited for both a technical and a non-technical audience and will focus on the decision-making process using some real world examples of modern technology start-ups.http://choosingtechnology.eventbrite.com/TRANSCRIPT
CHOOSING TECHNOLOGYTuesday July 5th
Daniel Doubrovkine - http://code.dblock.org - [email protected]
@dblockdotorg #gachoosingtech @ gnrlassembly
BUILDING SOFTWARE
unlike building _________________
PROBLEM DOMAIN
What are we making? What is the domain?
Ride Sharing Website Transportation
Art Search Engine Fine Art
WHAT IS IT GOING TO DO?
• Who is going to use it and how?• What stories will it tell?
CHOOSING TECHNOLOGY
TRADITIONAL APPROACHES
STACK
a stack that works a stack that worked
STACK: RUBY ON RAILS
AWS (S3, Cloudfront)
Heroku
RubyRails
Backbone.js
+60
gem
s
MongoDB
+ ad
dons
STACK: LAMP
Linux
ApacheMySQL
PHP Python
Rackspace
Zend Django
STACK: J2EE
Java
JNDIJDBCEJBs
RMI
JVM
JMS
IDLJSP JSXMLJTS
JTAJMJAF
Windows
WHAT DO STACKS DO?
• Help You Focus on The Domain• Classify Problems• Offer Generic Solutions• Provide Consistent Experience• Map Software Evolution• Reuse Skills
DATA STORAGEEASY CHOICE
Domain Data Database
Transportation(Ride Sharing Website)
users transportedvehicles usedrides shared
Art Search Engine(Fine Art)
artistsartworksgenomes
BUSINESS LOGICIMPOSSIBLE CHOICE
Stories Requirements Framework
offer a riderequest a ride
thank for a rideweb framework
good at workflow
search for an artistrecommend art
web frameworkgood at search
SCALABILITY
• Effort to Provide Service with More ________– Users– Traffic– Data– Calculations
Unit of Scale
COMPLEXITY
• Number of Moving Parts• Time to Rebuild from Scratch• Developer Bus Factor
COST
• People + Time + $ for ________– Minimum Viable Product– Hosting and Storage– Features and Bugs– Operations
CHOOSING TECHNOLOGY DOESN’T HAVE TO BE BORING
LESS TRADITIONAL APPROACHES
DEVELOPER HAPPINESS
• Developers Are Happy with ______– Their Own Choices– Cutting Edge Technology
BULLET PROOF LOGIC
• It Worked For Me Before• It Didn’t Work for Me Before• It Sounds Exciting• ______ Uses It
CHOOSING TECHNOLOGY DOESN’T HAVE TO BE A SCIENCE
PERSONAL APPROACH
PRAGMATIC
• Try It … Iterate … Keep It … Toss It– Easy to Learn– Frustration-less– Quick to Leverage– Vibrant Community– Elegant Solutions
DID YOU MAKE A GOOD CHOICE?
Good Technology Choices Help Developers Focus on the Problem Domain
Time
ResultsFightingLearning
IS IT TIME TO RESET?
• Reset Early, Several Times• Rational Thinking Kills Companies• Incremental Rewrites Take Forever• Think “Startup”
QUESTIONS?
name: Daniel Doubrovkine (aka. dB.)
company: http://art.sy twitter: @dblockdotorg blog: http://code.dblock.org link to slides here
email: [email protected]