Sunday 15 May 2016

Mobile DevOps



The DevOps movement is a natural extension to the application of agile principles.
If we are good at writing software and utilising IT why would we not complete the circle and use these skills to help us deliver our products.
If you work in mobile development sometimes this can seem like a foreign land, the way we build and deploy software can on first inspection not seem to fit with these ideas but its simple a matter of degrees, we can achieve the same results.
Always Ready to Ship
One principle of DevOps is to have a continuous pipeline to enable the delivery of features into production.
Anyone who has ever submitted an app to the app stores would say this isn't a realistic dream, we cannot submit multiple updates to an app on a daily basis whenever a new piece of code is finished.
But the key here is to realise that the ability to deploy at a moments notice is actually a side-effect of the real benefit we gain from automating our delivery pipeline, and that is certainty about the state of our code.
By consistently and automatically building, testing and analysing our code on every change we always know the health of our application.
If the change makes it through the pipeline we still have an app that is ready to ship but now with added functionality. However, if the change doesn't make it through we still have work to do to deliver that feature and we fall back to the last known good version of the product, which may only be hours old.
We never again will have panic setting in when we're told we need to get a new version out.
Always Ready To Code
So now we can ship whenever we chose what features and improvements do we want in our next release?
Users interaction with software can be unpredictable and not necessarily logically, this is no less true for mobile development.
As agile practitioners we don't try to out think our users, we make a reasonable guess about what we think they want and ship the minimum implementation of that idea, we also expect that guess to be at least partly incorrect.
We detect our mistake by observing our users interacting with what we have built, not by standing over their shoulder but by having our app call home.
Asking one user what they think of what has been produced will not be informative, asking many of them might give a clearer picture but asking every single user all the time gives us a total and thorough view of where we are.
Implementing instrumentation and analytics can provides us with the data to drive our continuous pipeline to deliver a slightly improved experience, when we iterate through many cycles of this feedback we will have moved a long distance from where we were towards satisfying our users.
Always Ready To Work
Its important to realise that DevOps is not actually concerned purely with making our users lives better.
Its actually about realising that within our team we have the people with the skills who can make our users lives better and therefore we should remove all obstacles to allowing that talented team to deliver.
If we make the lives of our developers and testers easier we will maximise their output in the form of new features being delivered to users.
This is as true for mobile development as for any other form of software engineering.
Identify what is causing you pain in the process of trying to deliver your product, then confront it head on.
In many instances technology and software will be the key to reliving you from this pain and fortunately you have a team of people that excel at using and creating technology, you just need to remove what is in their way.  

No comments:

Post a Comment