Step Four : Lightning Release

Step 4 is a Lightning release. We are big fans of an early Lightning release in Project Adoption.

What is a Lightning release?

The idea of a Lightning release is to release and update your application to users as early as possible. Sometimes there is a temptation to delay this as long as possible in order to implement all of the best practice tools and processes before handling a deployment. But we have found the opposite to be true.

There are four key reasons we like to perform and update as early as possible which we detail below.

Implement Analytics, Performance Monitoring & Alerting
Firstly it allows us to implement the appropriate monitoring tools into a live environment as early as possible. In order to improve and maintain the application we need to have access to live analytical data as to how it is being used, where it is being used, when it is failing, what its performance benchmarks are and so forth.

In every Lightning release we will seek to integrate basic analytical capabilities into the release, to allow us to start capturing key information, particularly any data around when and how the app crashes or becomes non-performant. The earlier we can get this information, the earlier we can start informing our backlog of issues with the highest priority tasks from a user’s perspective.

Confirm Codebase!
The second reason to perform an early release is to confirm that the code that is in use and live with users is the same as the code that we have audited and monitored internally. We have sometimes found that the deployed version of the app is not built from the same code that the technical team believes it to have been, a challenge which may be unique to mobile application development. By making a release and updating the live version of the application. We can be sure that users are using the application built from the same code base we are working from.

Complete a Deployment Cycle
The third benefit of releasing early in the process is it allows us to complete a full deployment cycle. This has several benefits.

The first being it allows us to ensure that we are actually capable of deploying the app which means having access to the appropriate key stores and certificates, being able to pass any app store validation and ensuring that our deployment processes are functional. It also allows us to start receiving feedback from users earlier in case there have been any missed functionality gaps in the previous steps.

Ship Critical Fixes Early
Lastly, and we mention this with hesitation, a lightning release also allows us to achieve any high priority high impact but low effort fixes for the application. For example if there is a known critical crash which is relatively simple to fix we may choose to implement that fix in the initial release.

There is a temptation here to keep adding more changes and so we try to be sparing with the amount of additional functionality or changes we implement within the lightning release. That said, if we can attack some low hanging fruit and are able to deliver value we clearly like to do this as early as possible.

Conclusion

With the lightning release deployed we can start collecting data from our users, we can ensure we are capable and able to deploy an update into production and so can begin to demonstrate value to the business by delivering any critical updates. At this point it’s time to take stock and invest some time in building the correct development infrastructure which will enable us to iterate more quickly in the future.