December 10, 2016 | Author: ksnraju_15 | Category: N/A
DevOps Pushes Agile to IT’s Limits Implementing DevOps Where Agile Rules
DevOps Pushes Agile to IT’s Limits Software engineering is changing and DevOps is at the heart of it. The demands of today’s always-on always- on business depends on the ability of IT to be more nimble & responsive to the needs of the customer. An organization’s ability abilit y to be responsive requires better collaboration, communication and integration across all key stakeholders inside and outside of IT.
E S V ICE D E SI G S E R N
S
E R
ITIL
V
I
C E
S
P
E
R
A T I
O N
The principals of the both the Agile and DevOps approaches fosters holistic thinking, heightened engagement, and communication and problem solving skills. This style of work results in a greater understanding of practice areas among the larger team and encourages individuals to consider varying points of view, even when they work in isolation.
N O I
Y
T
G R E V I T C E E S T R A S T
E
O
I
S
N A R T
E C I
V R S E R
DEVOPS Agile and DevOps are related ideas who share a common Lean ancestry, but work on dierent planes. While Agile deep dives into improving one major IT function (delivering software), DevOps works on improving the interaction and ow across IT functions stretching the length of the entire development to operations lifecycle.
DevOps Pushes Agile to IT’s Limits
Many enterprises over the last decade have undergone a radical change as a methodology known as “Agile” was introduced, gained rapid acceptance and proliferated throughout the enterprise. One key tenet of the Agile development process is to deliver working software in smaller and more frequent increments, as opposed to the the “big bang” approach of the waterfall method.
When the shift to Agile development was made, it required development to change the way the entire organization operated. Agile has been instrumental for development to produce higher-quality sof tware that is more in tune with user needs and oers swifter release cycles.
DevOps Pushes Agile to IT’s Limits
Today, we’ve reached another infection point. In response to market pressures and new technology like cloud computing, the DevOps movement has been born to improve IT service delivery agility and quality. As Agile gained momentum over the years, it unintentionally left IT operations behind due to the piled up deployments waiting for operations to deploy, manage and control. When code is not promoted into production as it is developed, deployments will pile up, customers don’t get value and the deployments often result in chaos and disruption. This is where DevOps principles come in—not as a new approach as much as an enhanced one that builds o the Agile principles founded in the Agile Manifesto.
DevOps Pushes Agile to IT’s Limits
Some say DevOps is the new-age version of Agile development. DevOps, which is a relatively new movement (rst mentions can be tracked back to 2009) occurring within IT, promotes collaboration & automation among development and operations to increase the velocity of code into production while improving it’s resiliency, availability and stability. Sounds pretty familiar to Agile in fact. Both share many common traits, however implementing DevOps to increase speed and innovation requires adopting Agile development methodologies, and Agile development requires quicker and more frequent release cycles.
Agile and DevOps share many common traits, however DevOps enables a far more continuous ow of work into IT Operations, which is critical to increasing velocity while improving quality of software.
Agile vs. DevOps Practical Dierences in Methodology The goals of DevOps sounds similar to the goals of Agile, but the two approaches are dierent. The goals of Agile are to: • develop software faster • be responsive to changes • and get higher quality results
The goals of DevOps are similar in that it strives to: • accelerate time to market • improve IT’s value by more closely aligning development, IT operations and the business • increase IT productivity
Agile vs. DevOps — Practical Dierences in Methodology
Just because their goals are similar, each methodology has its uniqueness. Agile stresses frequent releases of software with an emphasis on collaboration between development and the business. However, Agile development tends to produce releases faster than they can be deployed leaving IT Operations with a backlog of productionready code that has to be tested, deployed and managed. These short release cycles followed by delays in deployment can prevent IT and the business from achieving their goals. DevOps, on the other hand, stresses collaboration, communication and culture between development and IT operations which help in building timely, reliable and high quality software. The fear of change, evolving roles & responsibilities, and organizational behavior & incentive structures make DevOps transformation dicult to say the least.
The fear of change, evolving roles & responsibilities, and organizational behavior & incentive structures make DevOps transformation dicult to say the least.
Agile vs. DevOps — Practical Dierences in Methodology
DevOps is as much a technical problem as it is a business and people problem. DevOps creates visibility between development and operations team. • It is concerned more about the product rather than the project. • It is about automation rather than documentation.
DevOps ensures that good software does not end wit h it’s release. • It is about ensuring a continual feedback loop between development and operations team.
DevOps principles aim to extend development into production, create production feedback loops into development, plus embedding development into IT operations and vice versa.
What Are Agile’s Limitations? • You may not identify a software defect until late in the lifecycle or in the production. • Gains of Agile methodology evaporate once the application goes into production. • Delays when developers and testers wait for resources they want to access. • Hard to pinpoint problems in development, testing or production phases. • Development views their job as done once the code is in production. • When problem arises, everyone starts pointing ngers laying blame at each other.
Agile vs. DevOps — Practical Dierences in Methodology
DevOps works a lot better if operations teams adopt Agile methods. DevOps enables realization of the benets of continuous and faster delivery of functionality achieved through Agile. DevOps has two approaches that change how Agile methodology is implemented. • The rst approach is the removal of team silos between Dev and Ops. • The other approach is the use of continuous integration/continuous delivery and automation tools in order to achieve a very lean value stream and reduced batch sizes.
Agile vs. DevOps — Practical Dierences in Methodology
You don’t have to choose between Agile or DevOps, they are compatible. But you do need to design an implementation that aligns them appropriately as you undergo this business transformation.
A recent survey of 110 CIOs conducted by IDG Research Services found the following as the greatest obstacles to implementing DevOps: Source: ca technogies Report — Market Pulse Research: The State of DevOps (link)
Need to understand what technologies can help
There will certainly be some challenges along the way and you’ll likely hear things like:
37%
IT organization and environment are too complex
34%
Lack of right skills within development and operations
31%
Lack of an executive mandate
29%
Benefits/ROI are difficult to quantify
“DevOps is just another buzzword.” “It’s not new. We’re already ‘doing DevOps.’” “Our managers don’t allow us to do DevOps.” “Our employees don’t take responsibility.”
28% 26%
Organization is resistant to change
22%
Not sure where to start Other
5%
None
5%
Agile + DevOps How DevOps Compliments Agile Development DevOps is a response to the fact that there exists a disconnect between development and operations team. Across most enterprises, there exists: • need for greater collaboration between development and operations team • need for simultaneous deployment across multiple platforms • pressure from the business to release applications more quickly to meet customer demands • need to improve end customer experience • need to develop and deploy cloud-based apps for scale and to reduce costs
Agile + DevOps — How DevOps Compliments Agile Development
DevOps is stretching Agile principles beyond the limits of the code to the entire value chain. DevOps builds on Agile to deliver quick, high quality releases by streamlining development and operations. DevOps inherits principles of Agile development, but extends service delivery and team interactions to increase the value of the product delivered to customers. DevOps involves embracing automation that speeds up and smooths out the ows across and within the various silos. Plus, DevOps is tackling the cultural & behavioral aspects of IT that when solved improve quality of code, quality of releases and better job satisfaction.
Time spent per week on key activities: Source: zeroturnaround.com — DevOps/ITOps Productivity Report 2013 (link)
Agile + DevOps — How DevOps Compliments Agile Development
DevOps is simply Agile best practice that software development teams should aim for—whether you’re doing Agile, DevOps, ITIL, CoBIT, ISO, Lean, cloud or whatever. Call it what you will, DevOps promotes continuous ow of work into IT Operations and in turn continuous deployment and integration. In Agile methods, if the development team delivers code every t wo weeks, but it’s deployed only every two months, customers don’t get value and the deployments often result in chaos and disruption. DevOps, on the other hand, empowers developers to test and automate their code before releasing it to the operations stakeholders and in some cases just bypass this step altogether. Developers discover defects early in the SDLC and also test whether the code will work properly in production early in the SDLC which enables quick and timely releases.
Agile + DevOps — How DevOps Compliments Agile Development
The key indicators of a successful Agile to DevOps implementation are: + an increase in the number of releases
+ exploration of new software
+ less time taken in production
+ reduced time to market software
+ increase in release date adherence
+ an increase in revenue
+ low/no defects in the application
+ software made available across multiple platforms
+ increased collaboration between departments + improved quality of deployed applications
+ increased frequency of deployments of software
Moving from Agile to DevOps Key Challenges and Considerations So you’re thinking about transforming from Agile to DevOps? Agile means that developers can issue more releases, more frequently, to keep applications fresh and in line with user requests and with marketplace trends. With DevOps you can enable developers and operations personnel to work better— together—and the whole company benet s. But, both methodologies are chock-full of challenges. Whether it be a complexity, culture, roles & responsibilities, or a skills gap, you’re sure to run into them.
For the business at large, the culture of DevOps ensures that developers and operations people are working together so that Agile development can occur without reams of crappy code that make user’s cringe.
Moving from Agile to DevOps — Key Challenges and Considerations
Key Challenges If you’re considering transforming from Agile to DevOps, here are some of the key challenges to be mindful of: Organization Complexity
Fear of Change
DevOps is a people problem and enterprises by nature are complex. If the organization has too many people, too many departments, pockets of automation, poor communication between teams and incentive structures that drive a particular behavior, then implementing DevOps can be a challenge.
Who moved my cheese!? Many organizations, teams and individuals tend to be rigid and resistant to change. Adoption of DevOps may take time before organizations fully understand and embrace it.
Roles Unaligned and Misunderstood
In many organizations, there exists invisible barriers between silo’d independent teams. Whether it is a turf war, a lack of understanding or ‘just the way it has always been’, this poses a problem when adopting DevOps since it requires interdepartmental coordination, collaboration and communication. It is hard to break old habits and there could be competing goals at work all at once. Many existing IT enterprise processes, tasks and workows are not representative of the needs of DevOps. In addition, by adopting DevOps, development & operations teams are assigned roles previously done by others which can create a lack of clarity surrounding who is responsible for what.
Security
When adopting DevOps, an organization may have security concerns especially when data is moved to the cloud. The organization may be reluctant adopting DevOps and cloud computing. However, DevOps should be considered an opportunity to address security requirements early and often. Tone at the Top
DevOps is par tially about transforming and changing your business and without the proper buy-in and tone from senior leadership, having long-term success will be very dicult. Also, having clear expectations to drive accountability and results should be required.
Moving from Agile to DevOps — Key Challenges and Considerations
Key Considerations Below are some key considerations when transitioning from Agile to DevOps in the enterprise: Development Culture vs Operations Culture
The culture of an organization is crucial before jumping into automation. Automation is a noble goal, but is secondary to solving the cultural aspects of your business. The development team and the operations team must change their way of operations for DevOps to be implemented. Continuous Involvement of the Operations Team
The IT Operations team should be continually involved in the development of the application. Participating in discussions, decisions and execution of things involving the technical and schedule feasibility of the solution should become commonplace. IT operations (as well as Quality Assurance, InfoSec, Service Management and Enterprise Architecture) related requirements should be taken into account as early in the SDLC as possible to create trust, break down silos and improve speed & quality. Stability vs Change
Pushing speed versus stability is a delicate balance in the SDLC, but enterprises must strike a balance to achieve its goals. Careful coordination between development and operations is a start, but getting end-to-end visibility and creating accountability & collaboration across previously separate teams is crucial to making progress with the DevOps implementation. But sometimes not changing and keeping things much the same is the right decision—only you know the answer to what is best for your organization.
Moving from Agile to DevOps — Key Challenges and Considerations
Key Considerations (continued) Demand for Increased Number of Releases
If business owners are demanding an increase in the number of releases compared to your current velocity, then at least proof-of-concepting a DevOps initiative for a specic project or program should be considered. Experimenting with org struc tures, incentive structures, and working on building a winning culture across disparate teams can help prove whether more widely deploying DevOps in your enterprise makes good sense or not. Cost of Change
The organization must consider if there are enough resources to invest in DevOps. To implement DevOps, an organization must investment in tools, training, and the hiring of new skills. Going Mainstream with the Cloud
The business is demanding the agility that both cloud computing and DevOps provides. Whether public, private or hybrid—cloud is foundational to helping scale at mach speed. Cloud and DevOps are not mutually exclusive, however the availability and power of the cloud enhances your ability to practice DevOps by oering a dynamic platform to develop and run applications.
Implementing DevOps Where Agile Rules The motivation driving the DevOps movement is the frustration involved in releasing and maintaining software systems across teams with opposing goals. In the end, what DevOps hopes to bring to Agile is the understanding and practice that soft ware isn’t done until it’s successfully delivered to the user and meets their expectations around performance, availability, reliability, and faster delivery. On the following pages are some recommendations for consideration if implementing DevOps in an organization where Agile is the norm:
Implementing DevOps Where Agile Rules
Step 1
Tone at the top is key.
Get buy in early from senior leadership and be sure to collaborate with middle management to ensure alignment. The organization must commit wholly for DevOps to be a success. It is not a one-o investment; it is a process that involves people, communication and integration. Step 2
Employ ‘services thinking’ and ‘systems thinking’
...to help in the breakdown of complex systems into simple components and modular services allowing rapid and incremental changes. Step 3
Identify the waste, bottlenecks and delays in the SDLC.
This process involves mapping all the stages and handos and measuring how long work takes to move through the cycle. Once you have identied the main points of failure and waste, begin automating individual components appropriately. Use automation tools to test the software, practice conguration automation, consider leveraging continuous integration and deployment tools to integrate work done in a given period of time, and scan for integration errors early and often.
Implementing DevOps Where Agile Rules — Key Challenges and Considerations Step 4:
You must invest in your people.
Sta in DevOps needs to augment their skills for better collaboration among each other, with project managers and business programs. The Dev and Ops sta need to build new skills to add to their core skills in a DevOps environment. And as this cross-pollination begins to occur, new skills will emerge that you will need to identify and plan for. Step 5:
Focus beyond the lower costs and high speed that is brought by DevOps.
Recognize that there are more substantial benets possible with successful implementation of DevOps. Here are some interesting stats:
Devops produces
Devops results in
Devops reduces
63% 33% 60% more frequent software releases
more time devoted to improving infrastructure
Statistics sources: http://www.theserverside.com/discussions/thread.tss?thread_id=78446 (link) https://puppetlabs.com/wp-content/uploads/2013/03/2013-state-of-devops-report.pdf (link)
of time spent handling support cases
Conclusion As DevOps adoption continues to rise, organizations who have not implemented DevOps are at continual risk of being left behind. DevOps encourages faster release of features, more stable operational environment and production of high quality products with more value to the customer.
For these reasons, your biggest bump in the road may be shear resistance and fear of the unknown—some of which may even be your own.
Making the transition from Agile to DevOps means leaving behind many of the comforts you and your team have gotten used to. Both approaches stand for iterating and improving, discussing and redening— many things that pose challenges within a traditional, entrenched IT enterprise.
But these obstacles should not stand in your way from making the transition since it is one way you can make a true step-change in your IT department, regain the trust of your business and begin to align your entire product lifecycle to take advantage of the many talented resources and tools available to all of us. Want to learn more about how ScriptRock can unlock DevOps for your IT Enterprise? Get to know us better. Visit Us:
www.scriptrock.com
Email Us:
[email protected]
Calls Us:
(888) 882-3223
Follow Us:
@scriptrock