DevOps, Agile methods and Continuous Improvement in the Software development lifecycle

of 29/29
DevOps, Agile methods and Continuous Improvement in the Software Development Lifecycle
  • date post

    15-Apr-2017
  • Category

    Software

  • view

    341
  • download

    1

Embed Size (px)

Transcript of DevOps, Agile methods and Continuous Improvement in the Software development lifecycle

DevOps, Agile methods andContinuousImprovement in the Software Development Lifecycle

Will cover BIG subjects in asuperficial way

Vou cobrir dois assuntos - mtodos geis e DevOps - de uma maneira superficial. A ideia de ter uma viso global do que so, como encaixam e como o conjunto, com tudo o que englobam contribui para atingir o objectivo final - produzir software adaptvel, com qualidade, que responda com eficincia as mudanas do ambiente entregue valor ao cliente de uma maneira consistente.

Whats this Agile / DevOps thing all about anyway

Different things to Different people

Set of ValuesSet of PrinciplesSet of Methods Set of PracticesandSet of Tools

Agile Values Top level philosophy, usually agreed to be embodied in the Agile Manifesto. These are the core values that inform agile.

Agile Principles Generally agreed upon strategic approaches that support these values. The Agile Manifesto cites a dozen of these more specific principles. You dont have to buy into all of them to be Agile, but if you dont subscribe to many of them, youre probably doing something else.

Agile Methods More specific process implementations of the principles. XP, Scrum, your own homebrew process this is where the philosophy gives way to operational playbooks of how we intend to do this in real life. None of them are mandatory, just possible implementations.

Agile Practices highly specific tactical techniques that tend to be used in conjunction with agile implementations. None are required to be agile but many agile implementations have seen value from adopting them. Standups, planning poker, backlogs, CI, all the specific artifacts a developer uses to perform their work.

Agile Tools Specific technical implementations of these practices used by teams to facilitate doing their work according to these methods. JIRA Agile (aka Greenhopper), planningpoker.com, et al.

CHANGEIs the only constant in life Heraclitus

Change Management

Project teamrequirementobjectivesBusiness context, etc

Mindset / Culture Teams not process / planning / Tools deliver good software and value

They help but not ensure.

CommunicationShared goal / Shared responsibilities Goal understendingContinues improvementSustainable passe

The Agile ManifestoIndividuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planThat is, while there is value in the items on the right, we value the items on the left more.http://agilemanifesto.org/

Principleshttp://agilemanifesto.org/principles.html

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.

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.

Working software is the primary measure of progress.

Continuous attention to technical excellence and good design enhances agility.

Refactoring

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.

Continues improvement , feedback loop

For exemple : in scrum Sprint retrospective incident management in CD / DevOps

Measure stuff, data is the only opinion that matters.[PT Contribution]

Manage your technical debt you are going to pay it sometime in the (not too distant) future.[PT Contribution]

The PRACTISES

StandupBacklog / Backlog groomingPlanning PokerCI

Agile Practices highly specific tactical techniques that tend to be used in conjunction with agile implementations. None are required to be agile but many agile implementations have seen value from adopting them. Standups, planning poker, backlogs, CI, all the specific artifacts a developer uses to perform their work.

The TOOLS

Ticket Management: JIRACI: Jenkins / BambooBacklog management: JIRA AgileCode Quality: SonarQDepedency Management : Artifactory

And What about DevOps

API integrationTool Chain approachRepeatable system / processes

Much of the same Values and Principles as Agile

Our highest priority is to satisfy the customer through early and continuous delivery of valuable functionality. the agile admin - http://theagileadmin.com/2010/10/15/a-devops-manifesto/

(more general than software.)

Software functionality can only be realized by the customer when it is delivered to them by sound systems. Nonfunctional requirements are as important as desired functionality to the users outcome.the agile admin - http://theagileadmin.com/2010/10/15/a-devops-manifesto/

Infrastructure is code and should be developed and managed as such.the agile admin - http://theagileadmin.com/2010/10/15/a-devops-manifesto/

API integrationTool Chain approachRepeatable system / processes

If you are doing the same thing more then once manually, then you are doing something wrong

API integrationTool Chain approachRepeatable system / processes

The PRACTISES

DevOps Methods Some of the methods here are the same; you can use Scrum with operations, Kanban with operations, etc. (although usually with more focus on integrating ops with dev, QA, and product in the product teams). There are some more distinct ones, like Visible Ops-style change control and using the Incident Command System for incident reponse. The set of these methodologies are growing; a more thoughtful approach to monitoring is a hot topic right now.

DevOps Practices Specific techniques used as part of implementing the above concepts and processes. Continuous integration and continuous deployment, Give your developers a pager and put them on call, using configuration management, metrics and monitoring schemes, a toolchain approach to tooling Even using virtualization and cloud computing is a common practice used to accelerate change in the modern infrastructure world.

The TOOLS

Ticket Management: JIRACI: Jenkins / BambooBacklog management: JIRA AgileCode Quality: SonarQDepedency Management : Artifactory

DevOps Tools Tools youd use in the commission of these principles. In the DevOps world theres been an explosion of tools in release (jenkins, travis, teamcity), configuration management (puppet, chef, ansible, cfengine), orchestration (zookeeper, noah, mesos), monitoring, virtualization and containerization (AWS, OpenStack, vagrant, docker) and many more. While, as with Agile, its incorrect to say a tool is a DevOps tool in the sense that it will magically bring you DevOps, there are certainly specific tools being developed with the express goal of facilitating the above principles, methods, and practices, and a holistic understanding of DevOps should incorporate this layer.

Q&A

DevOps Methods Some of the methods here are the same; you can use Scrum with operations, Kanban with operations, etc. (although usually with more focus on integrating ops with dev, QA, and product in the product teams). There are some more distinct ones, like Visible Ops-style change control and using the Incident Command System for incident reponse. The set of these methodologies are growing; a more thoughtful approach to monitoring is a hot topic right now.

DevOps Practices Specific techniques used as part of implementing the above concepts and processes. Continuous integration and continuous deployment, Give your developers a pager and put them on call, using configuration management, metrics and monitoring schemes, a toolchain approach to tooling Even using virtualization and cloud computing is a common practice used to accelerate change in the modern infrastructure world.