conversations.from: human
conversations.value: Give me a description for a book titled Hardening Azure Applications about lt;span, Corporation, Principal with the genre: Computers & Technology, Programming.
conversations.from: assistant
conversations.value: &lt;span style="font-size:12.0pt;font-family:'Arial','sans-serif';"&gt;Microsoft Corporation, Principal Engineering Manger in Applications and Services Division&lt;/span&gt;
conversations.from: human
conversations.value: Give me the first five paragraphs for this book.
conversations.from: assistant
conversations.value: Hardening Azure Applications
  A software development process is a structured lifecycle for the development and release of your application. Over the years, many models have evolved; however, for the current context, we will discuss only the following two models:
  While the former has been widely adopted for server technologies, the latter is making significant inroads, especially in cloud application development.
  Waterfall is a linear or sequential approach to application development. In this traditional methodology, there is a sequence of events, and each event has clearly defined their exit and entry criteria. It involves the following steps:
  Testing: Conduct various levels and categories of tests, including unit, dependency, end-to-end, deployment, scale performance characterization, and soak tests.
  Figure 11-3 lays out the waterfall methodology. In a waterfall project, each step represents a distinct stage of application development, and each stage generally finishes before the next one can begin. There is also a checkpoint between each stage; for example, requirements must be reviewed and signed off by the customer before design can begin. While this approach introduces some inefficiencies, the clarity bodes well for mission-critical software projects.
conversations.from: human
conversations.value: Give me five more paragraphs.
conversations.from: assistant
conversations.value: As the sprint backlog is completed, your application is deployed at the end of each sprint cycle and delivered to the customer for review. Customer feedback goes into the sprint backlog and is taken up in the next sprint. This is given the highest priority.
  Figure 11-4 illustrates the agile methodology, from product backlog to sprint deliverable. The rinse/repeat cycle for sprints is shown with a two-to-four-week frequency. Daily collaboration meetings (also known as stand-up meetings) are often wrapped up in 30 minutes or less, during which each member updates his/her deliverable status in two to five minutes.
  Agile approach to application development. (Mike Cohn, Mountain Goat Software, "Topics in Scrum," 2005. Reprinted with permission.)
  As with other approaches, there are some disadvantages of the agile methodology. Some of these are as follows:
  Cloud platforms have virtually removed the dependencies of testing and development from physical servers, to the extent that one of the most popular use cases for the cloud is development and testing. Cloud platforms, scalable by design, are also indispensable to agile teams, as they allow parallel activities while reducing lead times in hardware and software procurement and machine provisioning. In turn, your business can better deliver on business goals.
conversations.from: human
conversations.value: Give me the last five paragraphs.
conversations.from: assistant
conversations.value: One of the goals of modern application development organizations should be promoting a culture of continuous improvement. You should work toward creating an open and honest environment in which people are not afraid of making mistakes and are encouraged to experiment, as this strategy will go a long way toward fostering a modern organization for the cloud era.
  Transparent organizations do not hide information; they share it openly with internal teams as well as with customers regardless of its nature (good or bad). This level of transparency creates trust that leads to team spirit and a productive work environment.
  Transparent and open team conduct includes honest and accusation-free post-mortems at the conclusions of sprints. Team members should be encouraged to openly discuss what went right and what did not, learn from it, and make improvements in the next sprint.
  You should have an abundance mindset—give magnanimously and be assured that the universe will reward you in myriad ways, by recruiting great talent or attracting new customers who heard about your innovative approaches to problem-solving. Everyone—your customers and employees—wants to be involved with a business that is successful and doing good things.
  Modernization of your organization for the cloud is a journey, not a destination. Modernization is more than automation of builds and infrastructure; it is a way of organizing people and putting the appropriate processes in place to ensure success. The agile development approach using a DevOps organization structure may be a good fit for your business. The summary list in Table 11-2 can help you identify the best modernization option for your project characteristics.