BUILDING SOFTWARE FAST AND WELL
Sean O Sullivan twitter @sos100
Why am I here?
Rococo www.rococosoft.com Mobile / Wireless (short range) Shipped JSR82 on 200M+ mobile phones LocalSocial: Proximity Platform (www.mylocalsocial.com) 3 software engineers
Dial2Do www.dial2do.com Value add voice platform Speak to get things done (email, twitter, text, 40+ actions) Live in 26 countries, partners Plantronics, Jabra, Jawbone,… 4 software engineers
FAST WELL
Process
Deployment tools / technology
Development tools / technology
Process
Process: Agile and Scrum
Iterations have been 3-4 weeks on average Lots of feedback along the way Try, change, review, re-plan A la carte take on Agile
Tests first – mostly Pair programming – sometimes Continuous deploy – yes User stories – yes Refactoring – yes
Process: Roadmap
Public WiFi "private" WiFi
Bluetooth Support
NFC Support
QR Support
Social Proximity
Deals
Loyalty
MobDeal
Simple Deals
Social
Register
Locations Analytics
Power Deals
Campaigns MobDealSocial
Proximity
Share
RedeemWireless
Merchant
User
Iteration1 Iteration2 Iteration3
Process: Minimum Viable Product
Eric Ries @ startuplessonslearn.com
FAST WELL
Process
Deployment tools / technology
Development tools / technology
Development Tools
Frameworks Rails Android Java
IDEs Eclipse (Java / Android) IntelliJ / RubyMine (Rails/Ruby)
Continuous Integration TeamCity
Version Control Git, GitFlow
API Gson (Java, Android) acts_as_api (Ruby)
Test RSPec Cucumber Junit
Database ORMlite (Android) mySQL on Amazon RDS
Charting Highcharts
AgilePM TinyPM
And more besides….see the blog post
Git and gitflow
Testing
Cucumber Behaviour Driven
Development framework
Domain Specific Language to describe code behaviour
RSpec BDD for Ruby
Making / sharing APIs
Rails : acts_as_api
Java (Android) : Gson
highcharts
FAST WELL
Process
Deployment tools / technology
Development tools / technology
Deployment
Started out with Amazon EC2 A little too early – very Beta back then
Then S3 Much better – very stable
Back to EC2 when it stabilised Been very solid for some time now…
LocalSocial / Dial2Do
Motivations
Ease of use / Speed of use Experimentation AMIs Flexibility Pricing
LocalSocial
S3 Stores AMIs Fedora 8 from AWS Plus all our own stuff (RoR, Scripts, …)
EC2 One “small instance” Server
1.7 GB of memory, 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit), 160 GB of instance storage, 32-bit platform
Runs our AMI fulltime Two domains right now
gigmonkey.com mylocalsocial.com
And our VPN EBS
Connected to running EC2 Instance Persistent Store for all mySQL DBs
LocalSocial
Heroku
Open Source
A few words on it Incredible in terms of potential for re-use, time
saving, cost saving, quality Must have eyes fully open License, support, TCOO Need a house style / approach Awareness of license types / styles BlackDuck
Observations
Great time (imho) for software development Development and Deployment Tools Costs Re-use Help Routes to Markets Speed / gratification (or failure) Ability to test features, product quickly
BUILDING SOFTWARE FAST AND WELL
Sean O Sullivan twitter @sos100
References / Material - process
Joe Drumgoole Introduction to Agile and Scrum
Lean Startup / MVP Guide to MVP from Eric Ries here
References / Material - tools
TinyPM Agile PM tool
Git Branching model Tools for branching model
Open Source management, control, checking Black Duck here
Acts_as_api XML/JSON responses in Rails 3 Tutorial here
Highcharts Charts here