Вы находитесь на странице: 1из 12

THE RENAISSANCE OF DEVELOPMENT:

ACCELERATE THE
DEVELOPMENT
LIFECYCLE

BUILD FAST, SHIP FAST,


FIX FAST: THE 2ND
GENERATION OF AGILE
If 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.

MODERN DEV TIP FOR SUCCESS:


CONTINUOUS DEVELOPMENT TO
PRODUCTION

Building 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.

CONTINUOUS DEPLOYMENT TO PRODUCTION

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.

THEY MOVE BEYOND


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

CONTINUOUS 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.

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.

I Op


Modern 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.

MODERN 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.

CONTINUOUSLY 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.

MODERN DEV TIP FOR SUCCESS:


CONTINUOUSLY MONITOR &
LEARN

Modern 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.

CONTINUOUSLY MONITOR & LEARN

MODERN DEVELOPERS
INSTRUMENT FOR TWO
REASONS:
MONITORING JUST THE SERVERS IS NOT ENOUGH
The 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 OPTION
Modern 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.

10

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.

2015 Microsoft
azure.microsoft.com

11

Вам также может понравиться