choosing technology

23
CHOOSING TECHNOLOGY Tuesday July 5 th Daniel Doubrovkine - http :// code.dblock.org - [email protected] @dblockdotorg #gachoosingtech @ gnrlassembly

Upload: daniel-doubrovkine

Post on 25-Jun-2015

1.235 views

Category:

Technology


2 download

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

CHOOSING TECHNOLOGYTuesday July 5th

Daniel Doubrovkine - http://code.dblock.org - [email protected]

@dblockdotorg #gachoosingtech @ gnrlassembly

Page 2: Choosing Technology

BUILDING SOFTWARE

unlike building _________________

Page 3: Choosing Technology

PROBLEM DOMAIN

What are we making? What is the domain?

Ride Sharing Website Transportation

Art Search Engine Fine Art

Page 4: Choosing Technology

WHAT IS IT GOING TO DO?

• Who is going to use it and how?• What stories will it tell?

Page 5: Choosing Technology

CHOOSING TECHNOLOGY

TRADITIONAL APPROACHES

Page 6: Choosing Technology

STACK

a stack that works a stack that worked

Page 7: Choosing Technology

STACK: RUBY ON RAILS

AWS (S3, Cloudfront)

Heroku

RubyRails

Backbone.js

+60

gem

s

MongoDB

+ ad

dons

Page 8: Choosing Technology

STACK: LAMP

Linux

ApacheMySQL

PHP Python

Rackspace

Zend Django

Page 9: Choosing Technology

STACK: J2EE

Java

JNDIJDBCEJBs

RMI

JVM

JMS

IDLJSP JSXMLJTS

JTAJMJAF

Windows

Page 10: Choosing Technology

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

DATA STORAGEEASY CHOICE

Domain Data Database

Transportation(Ride Sharing Website)

users transportedvehicles usedrides shared

Art Search Engine(Fine Art)

artistsartworksgenomes

Page 12: Choosing Technology

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

SCALABILITY

• Effort to Provide Service with More ________– Users– Traffic– Data– Calculations

Unit of Scale

Page 14: Choosing Technology

COMPLEXITY

• Number of Moving Parts• Time to Rebuild from Scratch• Developer Bus Factor

Page 15: Choosing Technology

COST

• People + Time + $ for ________– Minimum Viable Product– Hosting and Storage– Features and Bugs– Operations

Page 16: Choosing Technology

CHOOSING TECHNOLOGY DOESN’T HAVE TO BE BORING

LESS TRADITIONAL APPROACHES

Page 17: Choosing Technology

DEVELOPER HAPPINESS

• Developers Are Happy with ______– Their Own Choices– Cutting Edge Technology

Page 18: Choosing Technology

BULLET PROOF LOGIC

• It Worked For Me Before• It Didn’t Work for Me Before• It Sounds Exciting• ______ Uses It

Page 19: Choosing Technology

CHOOSING TECHNOLOGY DOESN’T HAVE TO BE A SCIENCE

PERSONAL APPROACH

Page 20: Choosing Technology

PRAGMATIC

• Try It … Iterate … Keep It … Toss It– Easy to Learn– Frustration-less– Quick to Leverage– Vibrant Community– Elegant Solutions

Page 21: Choosing Technology

DID YOU MAKE A GOOD CHOICE?

Good Technology Choices Help Developers Focus on the Problem Domain

Time

ResultsFightingLearning

Page 22: Choosing Technology

IS IT TIME TO RESET?

• Reset Early, Several Times• Rational Thinking Kills Companies• Incremental Rewrites Take Forever• Think “Startup”

Page 23: Choosing Technology

QUESTIONS?

name: Daniel Doubrovkine (aka. dB.)

company: http://art.sy twitter: @dblockdotorg blog: http://code.dblock.org link to slides here

email: [email protected]