Saturday, 18 February 2017

DevOps Agile Culture

DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.

DevOps is methodology and a culture, not a product. It takes time.

 

 

The primary goal of any DevOps setup within an organisation is to improve the delivery of value for customers and the business, not in itself to reduce costs, increase automation, or drive everything from configuration management; this means that different organisations might need different team structures in order for effective Dev and Ops collaboration to take place. DevOps helps to unite the development and operational teams by implementing automation and standardisation of business processes, such as infrastructure deployment, software development, testing, quality assurance and business continuity.

Culture
Devops culture is all about shared responsibilities which means a shift toward communication and collaboration across development, IT/ops and the business. It does not majorly focus intently on the tools but also how the team can work together for a great result.

A lot of organizations think DevOps is a problem that you can solve with tools by modernizing the development and operations teams without joining them. We more rarely see the cultural aspects of DevOps, where the ops and dev concerns are actually on the same team working toward the same goal and sharing the same accountability. Devops culture start by team integration for a collaborative environment and setting of common goals. It is essential as part of Devops culture to strive to continually improving and constantly evaluating the improvement of the set goals

To do Devops, it takes an understanding of the culture from the beginning and focus on improvement. Cultural change takes time and tends to stem from grassroot efforts. One of the best ways to amplify these efforts is to do a good job of finding champions among engineers and helping them evangelize among peers. their DevOps culture is characterized by increased collaboration, decreasing silos, shared responsibilities, autonomous teams, improving quality, valuing feedback and increasing automation. Many of the DevOps values are agile values as DevOps is an extension of agile.

Tools
Devops tools plays an important role to achieve great result and good use of Devops tools bring efficiency and productivity. The DevOps model relies on effective tooling to help teams rapidly and reliably deploy. These tools automate manual tasks, help teams manage complex environments at scale, and keep engineers in control of the high velocity that is enabled by DevOps.

DevOps tools consist of configuration management, test and build systems, application deployment, version control and monitoring tools. Continuous integration, continuous delivery and continuous deployment require different tools. While all three practices can use the same tools, you will need more tools as you progress through the delivery chain.

The process management and automation tools used within DevOps creates a predictable growth strategy, in a proactive manner. Teams can focus on future objectives with less reactive “fire fighting”. It promotes sales and marketing departments to communicate their objectives, which are then factored into the DevOps strategy.

Using DevOps tools, quickly spin up research labs and test environments. Try new ideas and build proof of concepts quicker and more cost effectively.

Automation
Automation is the backbone of Devops strategy. It helps to reduce the manual effort and speed up the processes to release the software continuously. It is the process of scripting environments — from installing an operating system, to installing and configuring servers on instances, to configuring how the instances and software communicate with one another, and much more. By scripting environments, you can apply the same configuration to a single node or to thousands. Devops automation goes by: configuration management, IT management, provisioning, scripted infrastructures, system configuration management.

The first step to DevOps automation is to be agile and aimed at reducing manual hand-offs between development and operations.

DevOps automation isn’t something that is done once and forgotten about. Just like security and performance, it’s something you need to continuously monitor and improve as long as the DevOps pipeline is still active.

Automating a task requires a substantial level of understanding by all involved of the processes, technologies, and complexities of deployments of the software in question. This requisite increase in understanding makes it likely that teams moving towards automated DevOps and continuous deployment capabilities also see a positive impact in the reliability, testability, security, and other quality attributes of their software. To achieve automation at this level, the team must study and deeply consider the needs of the entire project, from inception to deployment, which will result in a superior product due to increased focus on implementation details and operational realities. There are various automation tools in the market which fits at each stage of the SDLC, for version control, build and test, configuration management, deployment and monitoring. True outcome of the DevOps can be accomplished through automation.

Communication and Collaboration
The success of DevOps automation hinges on effective communication and collaboration. Strong communication between team members is vital if those common goals are going to stay relevant for all parties going forward and embracing true collaboration in the workplace can drive positive change in how people work together. Communication and collaboration makes paying serious attention to how team work together smartly and cutting back on the not-my-job problem by putting departments in close contact with one another and focusing them all on the same goal.

Working together as a team improves interaction and communication between different teams. This helps in working in a more coordinated way with prompt action to the tasks or issues, which reduces the turnaround time. The primary goal of collaborative and close communication is to avoid conflicts and escalations between the teams. This helps in proper handover of the tasks at every stage of the SDLC hence it simplifies overall process in delivery.

Conclusion
DevOps is one of the movements that emerged to bridge the gap between software operations and software developers and ensure harmonious working environment and flexible communication. Organizations and individuals are consuming a lot of time due to the traditional way of communication and in some organizations, it might be difficult to ask other people for help outside the official channels. DevOps enhance a healthy communication to allow all teams to communicate and eliminate the communication obstacles. Encouraging a communicative culture is a key to having a productive environment.

The DevOps movement emphasizes continuous integration and improved collaboration to ensure IT capabilities align with business requirements. Communication is key to any strategy. Your team won’t communicate well if they are so bogged down that they can’t find time to collaborate


Change of Culture

The ADKAR model is one of the most important models in ensuring the change process occurs efficiently. The model focuses on the ‘people’ element of change, specifically how to ensure the employees involved support and believe in the change. Once this has been done, the model moves to look at the business dimension, as once the people are behind it the processes must then be focused on. The model is developed from a study of 900 organisations across 59 countries over a 14-year period, carried out by the US research organisation, Prosci.

The research found that getting employees to support a change strategy was the key to its success, and there are 5 key steps to ensuring employee support.

Awareness – Employees need to be aware of exactly what change is occurring and why it is necessary. If employees are not aware of these things, they can lose motivation and direction within the strategy. The manager has a crucial role in ensuring employees are fully aware of every element of the change process.

Desire – Support for the change strategy should come naturally from the employees. Rather than forcing the change upon your employees, including them in developing the project and vision will ensure their support for the final outcome.

Knowledge – Change will likely bring a change in routine and skills for your employees, as well as the overall organisation change. For this reason, employees should be fully supported in their acquisition and development of these skills.

Ability – This knowledge must then de developed, but this can only happen if the individuals have the necessary ability.

Reinforcement – The change process, and rewards for individuals changing their methods, should be reinforced long after the change has occurred. This ensure employees resist the temptation of slipping back into old habits.

https://en.wikipedia.org/wiki/Agile_software_development
http://agilemanifesto.org/

Manifesto for Agile Software Development

We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.

Principles behind the Agile Manifesto

We follow these principles:
Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
Welcome changing requirements, even late in
development. Agile processes harness change for
the customer's competitive advantage.
Deliver working software frequently, from a
couple of weeks to a couple of months, with a
preference to the shorter timescale.
Business people and developers must work
together daily throughout the project.
Build projects around motivated individuals.
Give them the environment and support they need,
and trust them to get the job done.
The most efficient and effective method of
conveying information to and within a development
team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development.
The sponsors, developers, and users should be able
to maintain a constant pace indefinitely.
Continuous attention to technical excellence
and good design enhances agility.
Simplicity--the art of maximizing the amount
of work not done--is essential.
The best architectures, requirements, and designs
emerge from self-organizing teams.
At regular intervals, the team reflects on how
to become more effective, then tunes and adjusts
its behaviour accordingly.

No comments:

Post a Comment