Renaissance Of Development

Embed Size (px)

DESCRIPTION

Microsoft

Citation preview

  • THE RENAISSANCE OF DEVELOPMENT:

    ACCELERATE THE DEVELOPMENTLIFECYCLE

  • 1If youre like most developers, youre already well down the path of adopting agile development techniques, mastering things like sprint planning, managing technical debt, and delivering potentially shippable value to customers at the end of each iteration. While these practices deliver enormous benefits toward the speed at which software is developed, theyre no longer enough.

    In the world of modern apps, quickly exiting a sprint is all for nothing if you dont get new value in your customers hands, collect feedback, and prove or disprove hypotheses at an equally fast pace. As such, modern developers reject the premise of separate lifecycles for development and operations, and subscribe to a single, unified, modern lifecycle driven by the practices found in the second generation of Agile. They accelerate this modern lifecycle by continuously striving to optimize the whole, and evolving their approach to deploying, testing, monitoring, and learning. Heres how they do it.

    BUILD FAST, SHIP FAST, FIX FAST: THE 2ND GENERATION OF AGILE

  • 2Building modern apps requires constant experimentation and usage feedback to make sure your app is as useful and robust as possible. So how do modern developers experiment, gather feedback, and implement quickly? They continuously strive to optimize the entire lifecycle, leaning heavily on automation to build reliable, repeatable processes.

    Key to their success is automating as many complex, error-prone manual tasks as possible. They move beyond automated builds (continuous integration) and unit testing, and automate the entire release pipeline including quality inspection and monitoring at every stage.

    MODERN DEV TIP FOR SUCCESS: CONTINUOUS DEVELOPMENT TO PRODUCTION

  • 3THEY MOVE BEYOND AUTOMATED BUILDS (CONTINUOUS INTEGRATION) AND UNIT TESTING, AND AUTOMATE THE ENTIRE RELEASE PIPELINE INCLUDING QUALITY INSPECTION AND MONITORING AT EVERY STAGE.

    MODERN DEVELOPERS THINK SMALL AND DEPLOY CONTINUOUSLY

    Just like most developers, modern developers understand that spending months on end for discovery and requirements gathering usually leads to building outdated solutions to ever-changing business needs. With their expectations of an average cycle time now at three-to-four weeks, breaking work down to the smallest meaningful unit possible and managing work in-progress is paramount to decreasing overall cycle times. However, modern developers know that decreased development time is nothing if they dont move into production (where customers can get their hands on it) equally fast. Why all the fuss about moving into production? Because decreasing time from the first line of code to deploying in production means delivering potential value to the customer, and amplifying the usage feedback loopand usage feedback is king to modern developers.

    CONTINUOUS DEPLOYMENT TO PRODUCTION

  • 4CONTINUOUS DEPLOYMENT TO PRODUCTION

    NO MORE WAITING ON HARDWARE

    In the old world, their reality was rooted in waiting weeks for provisioned hardware and a configured allocation. In the new world, this doesnt flyit just takes too long. Whether it be for shipping, fixing, or learning, modern developers leverage the heck out of the on-demand resources found in public cloud.

  • I Op

    CONTINUOUS DEPLOYMENT TO PRODUCTION

    BECOME BEST FRIENDS WITH OPS

    In this world of continuous deployment to production, your partners in ops play a powerful role. This next part is probably going to sound all too familiar. In most cases, developers and testers build and QA software, place it somewhere on a shared drive, and send an email to ops to deploy thinking job complete and their task is done. From there, the ops team grabs the code, makes MSIs, installers, and packages the code, runs scripts, and deploys. Unless your ops team has a crystal ball, this approach usually leads to deployment and production issues stemming from missing requirements and dependencies that ensure the code is production-ready.

    5

  • 6Modern developers understand the correlation between bringing ops in early, and shipping fast. Modern applications rely heavily on automation, continuous integration builds, automated testing, and having smarter instrumentation than traditional apps. For this to happen, modern developers reimagine their relationship with the ops team, partnering with them to fully understand requirements and dependencies before a single line of code is written. Why do they make this investment? Because ultra-fast development cycles are all for nothing if code is thrown over the wall to ops only to find it isnt production-ready and requires weeks of work before it can be deployed successfully. In the world of shipping every three-to-four weeks, a two-week delay becomes a big deal.

    MODERN DEVELOPERS UNDERSTAND THE CORRELATION BETWEEN BRINGING OPS IN EARLY, AND SHIPPING FAST.

  • 7MODERN DEV TIP FOR SUCCESS:

    CONTINUOUSLY TEST

    Modern developers arent alone in understanding the cost of discovering issues once code has shipped. While experienced agile teams have already automated unit testing through continuous integration, modern developers take it even further. They automate additional levels of testing including regression, functional, load, and stress testing. As a result, QA is no longer considered to be a center of excellence, but rather an integrated process throughout the development lifecycle. Discovering and fixing bugs that used to take months when using more traditional approaches are now identified by continuously testing.

    MODERN DEV TIP FOR SUCCESS: CONTINUOUSLY TEST

  • 8CONTINUOUSLY TEST

    ONE ENVIRONMENT TO RULE THEM ALL

    Stop us if youve heard this one before. The developer looks over to the tester and says, Hey, its working on my machine. Modern developers know that in order to be fast, they need to have consistency between environments all the way from development to production. Why? Because inconsistent environments = slow. Troubleshooting is costly to begin with, and amplified when not working with consistent environments. Although the desire for consistent environments across dev, test, and production is nothing new, up until recently it has only been an option for massive organizations with deep pockets. So how do modern developers duplicate their production environment for dev and test without breaking the bank? Public cloud. Why, you ask? Public cloud gives them access to more servers than they can shake a stick at with no commitment necessary. With a pay for what you use model, developers and testers can quickly self-service provision production-like environments (without waiting for hardware) and tear them down with a few mouse clicks once theyre finished.

  • 9Modern developers know when they learn about a problem with their app via social media, its too late. When things go wrong, they find out fast, and fix things even faster. How? As we mentioned earlier, modern developers invest heavily in instrumentation.

    MODERN DEV TIP FOR SUCCESS: CONTINUOUSLY MONITOR & LEARN

  • 10

    MONITORING JUST THE SERVERS IS NOT ENOUGHThe days of bouncing the VM are over. Modern developers beat Twitter to the punch by identifying application issues early on, and remediating to root cause. From there, a fix gets rolled out immediately through the automated release pipeline and a net new test case is added to their test automation to prevent similar issues from reoccurring.

    GUESSING WHICH FEATURE TO SHIP NEXT ISNT AN OPTIONModern developers treat their product backlogs as a set of hypotheses that they will turn into experiments, which they will prove by instrumenting and testing in production. Experiments like A/B testing and canarying help prove or disprove their hypothesis based on the usage data collected. Informed opinions on what to ship next dont go awaytheyre just proved or disproved by actual customer usage data.

    CONTINUOUSLY MONITOR & LEARN

    MODERN DEVELOPERS INSTRUMENT FOR TWO REASONS:

  • 11

    2015 Microsoftazure.microsoft.com

    READY TO ACCELERATE YOUR DEV LIFECYCLE? LETS DO THIS. Evolving your approach and building muscle in some new areas can transform your ability to build fast, ship fast, and fix fast. Whether your want to do this on-premises, in the cloud, or using a hybrid approach, Microsoft is here to help with some powerful tools and a mature cloud platform. Best of all, you dont need to throw anything away to embrace this approach. Want to learn more about accelerating your application lifecycle? Check out our website to learn more. Ready to dip your toes in the water and see how this approach works with Microsoft Application Lifecycle Management tools? Setup your free Visual Studio Online account. And with all of this talk about Modern Developers use of public cloud, learn more about Microsoft Azure or try it free.