You can call it deployment or update, the idea is the same. You want to deliver your latest a greatest software to the rest of the world ... or just for your users...is a challenge you will face sooner or later.
Containerisation and tools like Kubernetes have solved the problem of orchestrating serverside application deployment and updates...so if you can (and it makes sense) bundle your app into a container...consider yourself lucky...DevOps will do the job for you...
...and Android / iOS apps are also covered thanks to the PlayStore and AppStore provided by Google and Apple.
...but for those who still develop desktop applications...huge things...that are not (or make no sense to be) bundled in containers because they run on the client machines...you might not be that lucky as pushing updates to machines you don't control, is not that easy...
I use CaptureOne for editing the photographs I take as an enthusiast hobbyist "photographer" and every time there is an update all the you get is a notification and link to donwload 150Mb of software...and run installers...hit Next..Next..Next....to get that new version.
The same goes for many applications... they just don't want to mess with the update systems...you...the user...should do the dirty job.
Thankfully the browsers (Chrome, Firefox...and I don't use anything else..the rest also probably) have figured it out how to get that update without asking you for download and install.
My latest task at the company I work for was to create an update system that would support all the products our department builds (desktop Java applications, RCP, SWT, Swing, and even headless Java apps)... all this with minimal user interference. It was a nice challenge...and it took a while until we figured it out how to do it in the less intrusive way...but in the end...I think it ended up great.
We learned a lot and that's also something important to keep in mind.
With this in place, at every sprint-end when we deliver new versions for each application we touch in a sprint, update packages are pushed automatically to the central repository and everyone will get the new version. A nice notification saying "Update is a available" and button that allows you to download the update in the background ... while you work ...and when is ready it prompts you for update...which is a matter of a simple restart. It will keep you settings, and everything you had so far...and you can continue working.
If you do Scrum and you commit to deliver every two weeks a piece of software, it is not enough to just build-it and store it somewhere...you have to make sure that it ends up on your clients machines.
That's when you can say...I completed an iteration.
Delivering the latest and greatest all the time...in the shortest period possible...allows the feedback to flow back to you...so you can react...and practice agility and respond to client demands.
Update is important...and it should be on your radar...it closes the cycle.
No comments:
Post a Comment