Making Agile Technology ChoicesFriday, October 28, 2011
Daniel Doubrovkine | Art.sy@dblockdotorg / [email protected]
BUILDING SOFTWARE
WHAT IS _____ ?
• What is the problem domain?
• What is the software going to do?
• What stories will it tell?
STACKS
this stack works this stack worked
TYPICAL STACK: LAMP
LinuxLinux
ApacheApacheMySQLMySQL
PHPPHP PythonPython
RackspaceRackspace
ZendZend DjangoDjango
AWS (S3, Cloudfront)AWS (S3, Cloudfront)
HerokuHeroku
RubyRubyRailsRails
Backbone.jsBackbone.js
MongoDBMongoDB
BAKEOFFbig company, lots of people
• Identify CandidatesASP.NET / RoR / J2EE / LAMP
• Develop Metricsscalability, complexity, cost
• Gather Datafeature matrix, metrics data
• Compare=SUM(A:Z)
• Pick a Winner=MAX(SUM(A:Z))
CORROSIONfortune 500 company, lots of politics
• Corruption
• Intimidation or Escalation
• Skilled Sales
• Artful Communication
• Group Think
• Boredom
AGILE OPTIONSalternative medicine
TRUSTWORTHY PEOPLEalternative medicine
• It worked before
• It didn’t work before
• It is interesting
• ______ uses it
DEVELOPER HAPPINESSalternative medicine
• Developers are happy with ______
• Their own choices
• Cutting edge technology
PRAGMATICalternative medicine
•Try It … Iterate … Keep It … Toss It
•Easy to Learn
•Frustration-less
•Quick to Leverage
•Vibrant Community
•Elegant Solutions
ITERATE ON CHOICESwas it a good choice?
“Good Technology Choices Help Developers Focus on the Problem Domain”, -dB.
THE ONLY CONSTANT IS CHANGEiterate
• Reset Early, Several Times
• Rational Thinking Kills Companies
• Incremental Rewrites Take Forever
• Think “Startup”
QUESTIONS
Daniel Doubrovkine (aka. dB.)
http://art.sy
@dblockdotorg
http://code.dblock.org