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:
   175   176   177   178   179   180   181   182   183   184   185