Download - Choosing Technology

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]


Top Related