Performance, Scalability and Architecture

Andreas Grabner

Subscribe to Andreas Grabner: eMailAlertsEmail Alerts
Get Andreas Grabner: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: Agile Digital Transformation, Continuous Integration, DevOps Journal

Article

Continuous Innovation | @DevOpsSummit #DevOps #CD #ContinuousDelivery

Businesses have always had to transform to find better and more efficient ways to deliver value faster to their users

Transformation to Continuous Innovation and Optimization

Businesses have always had to transform to find better and more efficient ways to deliver value faster to their users, customers or consumers. The motivating factors are shorter lead times, automated and streamlined value flow, as well as reduction of overall costs and bound capital, requiring enterprises to transition to a continuous innovation and optimization model.

Prominent examples can be found when studying the last decades in the automobile industry with Toyota and their way of optimizing and automating their end-to-end manufacturing process. It is also the most referenced story I hear when researching IT and Digital Transformation stories. The DevOps movement as well as literature around Continuous Integration, Delivery and Deployment all draw the analogies to the manufacturing world and explain what the software industry can learn from it. Studies, such as the Puppet Labs State of DevOps Report conducted with Gene Kim and others - show that it boosts business outcome:

Proof and motivation for many IT organizations to transform their software delivery processes.

Proof and motivation for many IT organizations to transform their software delivery processes.

Besides the reference to Toyota I personally keep referencing one other industry that has transformed significantly over the past 10 to 15 years, and had an impact on most of us. It is the photography industry, and the digital transformation it experienced. The "Lead Time" from picture taken until holding the print in your hand used to be weeks or even months. This ihas been reduced to seconds with our mobile phones or digital cameras. I typically use this story as an example of how our software delivery process has already, or is about to, change for many companies that rely on software to power their business. It boils down to faster lead times but most importantly it will lead to continuously innovating and optimizing the value generation process for our end users.

Waterfall Model with Lead Time Measured in Weeks or Months
I am sure most of you remember the times when you had your Kodak (or other vendor) camera (#1). You went on a family trip and started taking pictures. You were really selective in the pictures you took because you only had 24 image per film roll. If the film roll wasn't full after the trip you also didn't just waste the remaining photos. Instead you waited for the next trip to finally fill up that roll with 24 pictures (#2). That film roll was dropped at the store that developed the film (#3). Days after that - and weeks or even months after taking the first pictures - it was finally time to remember the good times we had. Finally seeing that picture where we kissed our smiling baby girl (#4).

Unfortunately, this was often the moment where we realized that most of the pictures didn't turn out that great, the kid didn't smile (#5) but actually cried as we forced it to be happy in that scene. This "reality check" is feedback that comes far too late. It is hard to go back and redo that picture we so desperately wanted - leaving us with frustration and potentially an empty photo album (#6):

Taking pictures back in the days feels like a slow and old fashioned way of developing software: Big bang releases with late and often frustrating feedback

Taking pictures back in the days feels like a slow and old fashioned way of developing software: Big bang releases with late and often frustrating feedback

Needless to say that this reminds me of the waterfall development model. We pack "24 Features in a Box". It takes weeks or months to develop until we get the feedback from our users on whether we actually built something of value!

CIO (Continuous Innovation and Optimization) with Lead Time Measured in Minutes
Now let's think about how taking pictures has "transformed" since the advent of digital cameras, but more so - with the rise of smart phones, photo apps and digital distribution channels:

If I go out for a hike with my girlfriend she is very quick to take pictures. Because the feedback about image quality (and other characteristics) is instant, she can immediately decide whether to keep or delete the image.(#1). She is not a trained photographer, but thanks to the photo apps she can apply a variety of automatic photo optimizations (#2) such as light filters. These photo app developers basically automated the work that a professional photographer would do manually - thus making every user of their apps to "photo experts".

Instead of waiting for the next family reunion or party to show off the pictures she can immediately "deploy it to production" - which in her case means: posting it on Instagram, Facebook or Twitter (#3).

Minutes after taking the first picture she receives feedback from her friends and family on whether they like or dislike it, or whether they want her to take more pictures from that scene. This instant feedback loop allows her to immediately react to what her followers expect from her. And because she is still at that scene it is easy to do.

Delivering value through software has to become as instant as posting a picture on Instagram - including the close feedback loop back to engineering

Delivering value through software has to become as instant as posting a picture on Instagram - including the close feedback loop back to engineering

I hope you found this analogy useful to seeing the direction software engineering is heading. Instead of big bang releases, with very late feedback, we must think of small incremental value-adds that we deliver instantly, capture feedback and optimize, until we achieved optimum user satisfaction. This reduces lead time from months to minutes. It also allows us to easily course correct our actions if we learn early on that our users are simply not interested in certain features, or shift priorities and resources to those features that our users really appear to prefer.

Click here for the full article.

More Stories By Andreas Grabner

Andreas Grabner has been helping companies improve their application performance for 15+ years. He is a regular contributor within Web Performance and DevOps communities and a prolific speaker at user groups and conferences around the world. Reach him at @grabnerandi