Continuous delivery mobile application development


Published on

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Going to talk about what, why and how
  • A telecom giant, who wanted to fix the cost of maintaining an IVR and the cost of call center9 long months to take the app to liveNo actual usage of the
  • A lot of time spent in analysis & design of the product without ant validation
  • Mobile App Development: In enterprise world / or any world for that matter, no mobile application is stand alone Every application interacts with a backend system in one form or another to make
  • Application delivery: 3 months was spent in deploying the build to production
  • Customer is always correct! If idea is wrong till it is accepted by customersAccepatnce can be measured looking at the correct data points
  • Standish Group
  • Sequential Big batch longer release cycles longer feedback cyclesAgile:Embrace changeSmall pieces
  • move away from a model where releases go out monthly or quarterly or whatever. To a model where you are constantly delivering value to production from the beginning of the project.2 beneficial effects of fast, automated feedback - your software is always production ready. you should be able to press a button and release your software to production at any time - and crucially, when you press that button, it should be a decision of the business, we shouldn’t be constrained by thinking you have to wait for the next release window in a month. it should be possible for the business to say they want a feature, it gets built in a week or two and then they can push it into production. and this is a big change, a strategic benefit for the business. if you are the business and you see a market opportunity and can react and get something out in a couple weeks, then you have incredible strategic advantage over your competitors. requires big changes in an organization. so how do we approach this?So what is the first step?
  • Continuous delivery mobile application development

    1. 1. Continuous Delivery – Mobile Application Development
    2. 2. A couple of years back About 9 months spent by a team of client developers to get the application live Management is worried about the amount of time and money spent 2 months was spent on fixing the bugs We had about 30K downloads but usage metrics was about 1K visits per week
    3. 3. timeline Analysis & Analysis & Design Design Development Test Test Deployment Deployment Live Live time 1 3 2 2 2 1
    4. 4. tip of the iceberg
    5. 5. Why
    6. 6. the last mile
    7. 7. build the right thing
    8. 8. don’t waste money on the wrong thing Standish Group: how often features are used
    9. 9. How
    10. 10. fast, automated feedback on the production readiness of your applications every time there is a change whether code, infrastructure, configuration or database Jez Humble
    11. 11. software delivery
    12. 12. continuous delivery small feature chunks time software always production ready releases tied to business needs, not IT constraints minimize the lead time from idea to live concept to cash
    13. 13. continuous delivery  Your software is releasable throughout its lifecycle;  Your team prioritizes keeping the software releasable over working on new features;  Anybody can get fast, automated feedback on the production readiness of your systems any time somebody makes a change to them;  You can perform push-button releases of any version of the software on demand.
    14. 14. step 1 - continuous integration Unit Tests UI Tests Acceptance Tests Run from terminal
    15. 15. adhere to the test pyramid Adapted from Mike Cohn (Automated Test Pyramid) and Lisa Crispin & Janet Gregory (Agile Testing)
    16. 16. Testing Tools iOS • • • • Kiwi GHUnit OCUnit Zucchini Android • JUnit Automation Tools • • Frank Calabash
    17. 17. step 2 - full production pipeline CI SC Tests Integration Tests Automated Network Tests Usability Tests UAT Tests Live Manual & Parallel
    18. 18. Service contract tests Decouple your backend from the mobile application adhere to service contracts backward compatible services
    19. 19. integration tests First time in the feedback cycle, app is talking to real services Test your app against a environment Run the tests on actual device Use analytics metrics
    20. 20. network tests You don’t know where your customer is accessing On the move Any kind of network Use network link adaptor / other simulators
    21. 21. App distribution - testing Use OTA app distribution mechanisms Deal with groups Distribute with confidence Simulate the Appstore experience TestFlight / Hockey App
    22. 22. Usability Tests User experience *cant be compromised*! Popup in stores Test with Mock ups Automate it ? Analytics plays a big role
    23. 23. Usability Tests & Logging
    24. 24. step 3 – configuration management No hardcoded configuration in the application Remotely enable and disable features App version support
    25. 25. Push button release Final manual step is to upload the ipa/apk Change the description Get your version numbers correct
    26. 26. What we achieved reliability & stability compliance & traceability releasing at will Built the right product Make customers happy with continuous involvement
    27. 27. Q&A