Download - Choosing Technology
![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]