This document discusses DevOps, Agile methods, and continuous improvement in the software development lifecycle. It covers these topics at a superficial level. Agile and DevOps can mean different things to different people, involving a set of values, principles, methods, practices, and tools. The Agile Manifesto prioritizes individuals and interactions, working software, customer collaboration, and responding to change. Agile principles include satisfying customers through early delivery, welcoming changing requirements, measuring progress through working software, collaboration between business and developers, and continuously improving effectiveness. DevOps similarly values early delivery and working software, and treats infrastructure as code.
1 of 29
More Related Content
DevOps, Agile methods and Continuous Improvement in the Software development lifecycle
1. DevOps, Agile methods and Continuous Improvement
in the
Software Development Lifecycle
7. Mindset / Culture
“ Teams not process / planning / Tools deliver good
software and value”
8. The Agile Manifesto
• 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”.
http://agilemanifesto.org/
10. • 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.
11. Our highest priority is to satisfy the customer through early
and continuous delivery of valuable software
12. Welcome changing requirements, even late in
development.
Agile processes harness change for the customer's
competitive advantage.
22. Much of the same Values and
Principles as Agile
23. 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/
24. 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 user’s outcome.
the agile admin - http://theagileadmin.com/2010/10/15/a-devops-manifesto/
25. Infrastructure is code and should be developed and
managed as such.
the agile admin - http://theagileadmin.com/2010/10/15/a-devops-manifesto/
26. “If you are doing the same thing more then
once manually, then you are doing
something wrong”
Vou cobrir dois assuntos - métodos Ágeis e DevOps - de uma maneira superficial.
A ideia de ter uma visão global do que são, como encaixam e como o conjunto, com tudo o que englobam
contribui para atingir o objectivo final - produzir software adaptável, com qualidade, que responda com eficiência as mudanças do ambiente entregue valor ao cliente de uma maneira consistente.
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 don’t have to buy into all of them to be Agile, but if you don’t subscribe to many of them, you’re 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.
Change Management
Project team
requirement
objectives
Business context, etc
They help but not ensure.
Communication
Shared goal / Shared responsibilities
Goal understending
Continues improvement
Sustainable passe
Refactoring
Continues improvement , feedback loop
For exemple : in scrum Sprint retrospective
incident management in CD / DevOps
Standup
Backlog / Backlog grooming
Planning Poker
CI
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.
API integration
Tool Chain approach
Repeatable system / processes
(more general than “software”.)
API integration
Tool Chain approach
Repeatable system / processes
API integration
Tool Chain approach
Repeatable system / processes
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.
Ticket Management: JIRA
CI: Jenkins / Bamboo
Backlog management: JIRA Agile
Code Quality: SonarQ
Depedency Management : Artifactory
DevOps Tools – Tools you’d use in the commission of these principles. In the DevOps world there’s 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, it’s 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.
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.