Software Development Engineers Ireland

Post on 05-Dec-2014

590 views 2 download

description

Short talk at Engineers Ireland covering process, tools and technology for speedy software development

transcript

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