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
![Page 1: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/1.jpg)
CHOOSING TECHNOLOGYTuesday July 5th
Daniel Doubrovkine - http://code.dblock.org - [email protected]
@dblockdotorg #gachoosingtech @ gnrlassembly
![Page 2: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/2.jpg)
BUILDING SOFTWARE
unlike building _________________
![Page 3: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/3.jpg)
PROBLEM DOMAIN
What are we making? What is the domain?
Ride Sharing Website Transportation
Art Search Engine Fine Art
![Page 4: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/4.jpg)
WHAT IS IT GOING TO DO?
• Who is going to use it and how?• What stories will it tell?
![Page 5: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/5.jpg)
CHOOSING TECHNOLOGY
TRADITIONAL APPROACHES
![Page 6: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/6.jpg)
STACK
a stack that works a stack that worked
![Page 7: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/7.jpg)
STACK: RUBY ON RAILS
AWS (S3, Cloudfront)
Heroku
RubyRails
Backbone.js
+60
gem
s
MongoDB
+ ad
dons
![Page 8: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/8.jpg)
STACK: LAMP
Linux
ApacheMySQL
PHP Python
Rackspace
Zend Django
![Page 9: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/9.jpg)
STACK: J2EE
Java
JNDIJDBCEJBs
RMI
JVM
JMS
IDLJSP JSXMLJTS
JTAJMJAF
Windows
![Page 10: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/10.jpg)
WHAT DO STACKS DO?
• Help You Focus on The Domain• Classify Problems• Offer Generic Solutions• Provide Consistent Experience• Map Software Evolution• Reuse Skills
![Page 11: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/11.jpg)
DATA STORAGEEASY CHOICE
Domain Data Database
Transportation(Ride Sharing Website)
users transportedvehicles usedrides shared
Art Search Engine(Fine Art)
artistsartworksgenomes
![Page 12: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/12.jpg)
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
![Page 13: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/13.jpg)
SCALABILITY
• Effort to Provide Service with More ________– Users– Traffic– Data– Calculations
Unit of Scale
![Page 14: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/14.jpg)
COMPLEXITY
• Number of Moving Parts• Time to Rebuild from Scratch• Developer Bus Factor
![Page 15: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/15.jpg)
COST
• People + Time + $ for ________– Minimum Viable Product– Hosting and Storage– Features and Bugs– Operations
![Page 16: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/16.jpg)
CHOOSING TECHNOLOGY DOESN’T HAVE TO BE BORING
LESS TRADITIONAL APPROACHES
![Page 17: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/17.jpg)
DEVELOPER HAPPINESS
• Developers Are Happy with ______– Their Own Choices– Cutting Edge Technology
![Page 18: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/18.jpg)
BULLET PROOF LOGIC
• It Worked For Me Before• It Didn’t Work for Me Before• It Sounds Exciting• ______ Uses It
![Page 19: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/19.jpg)
CHOOSING TECHNOLOGY DOESN’T HAVE TO BE A SCIENCE
PERSONAL APPROACH
![Page 20: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/20.jpg)
PRAGMATIC
• Try It … Iterate … Keep It … Toss It– Easy to Learn– Frustration-less– Quick to Leverage– Vibrant Community– Elegant Solutions
![Page 21: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/21.jpg)
DID YOU MAKE A GOOD CHOICE?
Good Technology Choices Help Developers Focus on the Problem Domain
Time
ResultsFightingLearning
![Page 22: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/22.jpg)
IS IT TIME TO RESET?
• Reset Early, Several Times• Rational Thinking Kills Companies• Incremental Rewrites Take Forever• Think “Startup”
![Page 23: Choosing Technology](https://reader036.vdocuments.net/reader036/viewer/2022070321/558bcc2ad8b42ad76f8b466c/html5/thumbnails/23.jpg)
QUESTIONS?
name: Daniel Doubrovkine (aka. dB.)
company: http://art.sy twitter: @dblockdotorg blog: http://code.dblock.org link to slides here
email: [email protected]