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


       Development tools / technology


       Deployment 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

       Testsfirst – mostly
       Pair programming – sometimes

       Continuous deploy – yes

       User stories – yes

       Refactoring – yes
Process: Roadmap

                 Deals           Share          Social
                                                                        MobDeal

    User
                                               Proximity

                 Social         Redeem




                                 Simple       Power
    Merchant




                Register                                                Loyalty
                                 Deals        Deals

                                                            Social
                Locations       Analytics   Campaigns                   MobDeal
                                                           Proximity
    Wireless




                                Bluetooth    "private"          QR       NFC
               Public WiFi
                                 Support       WiFi           Support   Support




                           Iteration1            Iteration2             Iteration3
Process: Minimum Viable Product
    Eric Ries @ startuplessonslearn.com
FAST                             WELL

       Process


       Development tools / technology


       Deployment tools / technology
Development Tools
    Frameworks                                  API
         Rails                                       Gson (Java, Android)
         Android                                     acts_as_api (Ruby)
         Java                                   Test
    IDEs                                             RSPec
         Eclipse (Java / Android)                    Cucumber
         IntelliJ / RubyMine (Rails/Ruby)            Junit
    Continuous Integration                      Database
         TeamCity                                    ORMlite (Android)
    Version Control                                  mySQL on Amazon RDS
         Git, GitFlow                           Charting
                                                      Highcharts
                                                 AgilePM
                                                      TinyPM


 And more besides….see the blog post
Git and gitflow
Testing
    Cucumber
       BehaviourDriven
        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


       Development tools / technology


       Deployment 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

Software Development Engineers Ireland

  • 1.
    BUILDING SOFTWARE FASTAND WELL Sean O Sullivan twitter @sos100
  • 2.
    Why am Ihere?   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
  • 3.
    FAST WELL Process Development tools / technology Deployment tools / technology
  • 4.
  • 5.
    Process: Agile andScrum   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   Testsfirst – mostly   Pair programming – sometimes   Continuous deploy – yes   User stories – yes   Refactoring – yes
  • 6.
    Process: Roadmap Deals Share Social MobDeal User Proximity Social Redeem Simple Power Merchant Register Loyalty Deals Deals Social Locations Analytics Campaigns MobDeal Proximity Wireless Bluetooth "private" QR NFC Public WiFi Support WiFi Support Support Iteration1 Iteration2 Iteration3
  • 7.
    Process: Minimum ViableProduct   Eric Ries @ startuplessonslearn.com
  • 8.
    FAST WELL Process Development tools / technology Deployment tools / technology
  • 9.
    Development Tools   Frameworks   API   Rails   Gson (Java, Android)   Android   acts_as_api (Ruby)   Java   Test   IDEs   RSPec   Eclipse (Java / Android)   Cucumber   IntelliJ / RubyMine (Rails/Ruby)   Junit   Continuous Integration   Database   TeamCity   ORMlite (Android)   Version Control   mySQL on Amazon RDS   Git, GitFlow   Charting   Highcharts   AgilePM   TinyPM And more besides….see the blog post
  • 10.
  • 11.
    Testing   Cucumber   BehaviourDriven Development framework   Domain Specific Language to describe code behaviour   RSpec   BDD for Ruby
  • 12.
    Making / sharingAPIs   Rails : acts_as_api   Java (Android) : Gson
  • 13.
  • 14.
    FAST WELL Process Development tools / technology Deployment tools / technology
  • 15.
    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…
  • 16.
  • 17.
    Motivations   Ease ofuse / Speed of use   Experimentation   AMIs   Flexibility   Pricing
  • 18.
    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
  • 19.
  • 20.
  • 22.
    Open Source   Afew 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
  • 23.
    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
  • 24.
    BUILDING SOFTWARE FASTAND WELL Sean O Sullivan twitter @sos100
  • 25.
    References / Material- process   Joe Drumgoole   Introduction to Agile and Scrum   Lean Startup / MVP   Guide to MVP from Eric Ries here
  • 26.
    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