Page 180 - Building Big Data Applications
P. 180
Chapter 10 Building the big data application 179
identified and aligned with the outcomes. These rules are to be defined by the
research team and the experts who know the data and its transformations.
We will design the application to be delivered on a continuous delivery process,
the design benefits that it will deliver includes the following:
The primary goal of continuous delivery is to make software deployments pain-
less, low-risk releases that can be performed at any time, on demand. By
applying patterns such as blue-green deployments it is relatively straightforward
to achieve zero-downtime deployments that are undetectable to users.
It is not uncommon for the integration and test/fix phase of the traditional phased
software delivery lifecycle to consume weeks or even months. When teams work
together collaboratively to automate the build and deployment, environment provi-
sioning, and regression testing processes, developers can incorporate integration
and regression testing into their daily work and completely remove these phases.
We also avoid the large amounts of rework that plague the phased approach. The
delivery outcome is Faster time to market, which provides better opportunities for
market and exposure to prospects and potential customers.
When developers utilize automated tools that discover regressions within mi-
nutes, teams are freed to focus their effort on user research and higher quality
testing activities including exploratory testing, usability testing, and perfor-
mance and security testing. By building a deployment pipeline, these activities
can be performed continuously throughout the delivery process, ensuring qual-
ity is built in to products and services from the beginning.
Any successful software product or service will evolve significantly over the
course of its lifetime from the perspective of cost. By investing in build, test,
deployment, and environment automation, we will substantially reduce the cost
of making and delivering incremental changes to software by eliminating fixed
costs associated with the release process.
Better products. Continuous delivery includes a feedback from users
throughout the delivery lifecycle based on working software. Techniques such as
A/B testing enable us to take a hypothesis-driven approach to product develop-
ment whereby we can test ideas with users before building out whole features.
This means we will be able to avoid the 2/3 of features we build that deliver
zero value to our businesses.
Continuous delivery makes releases less painful and reduces team burnout,
resulting in better innovation. Furthermore, more frequent releases of software
delivery teams provide more engagement with users, learn which ideas work
and which do not, and see first-hand the outcomes of the work they have done.
By removing the low-value painful activities associated with software delivery,
we can focus on what we care about mostdcontinuously delighting our users.
Storyboard is used in the design phase to ensure that all application requirements
and expectations are translated into the technical ecosystem. The technical re-
quirements that need to be identified for design include the following: