Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
DevOps, Agile methods and Continuous Improvement
in the
Software Development Lifecycle
Will cover BIG subjects in a
superficial way
What’s this Agile / DevOps thing all
about anyway …
Different things
to
Different people
Set of Values
Set of Principles
Set of Methods
Set of Practices
and
Set of Tools
CHANGE
“Is the only constant in life ”
Heraclitus
Mindset / Culture
“ Teams not process / planning / Tools deliver good
software and value”
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/
Principles
http://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.
At regular intervals, the team reflects on how to become
more effective, then tunes and adjusts its behaviour
accordingly.
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
The TOOLS
And What about
DevOps
DevOps, Agile methods and Continuous Improvement in the Software development lifecycle
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/
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/
Infrastructure is code and should be developed and
managed as such.
the agile admin - http://theagileadmin.com/2010/10/15/a-devops-manifesto/
“If you are doing the same thing more then
once manually, then you are doing
something wrong”
The PRACTISES
The TOOLS
Q&A

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
  • 2. Will cover BIG subjects in a superficial way
  • 3. What’s this Agile / DevOps thing all about anyway …
  • 5. Set of Values Set of Principles Set of Methods Set of Practices and Set of Tools
  • 6. CHANGE “Is the only constant in life ” Heraclitus
  • 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.
  • 13. Working software is the primary measure of progress.
  • 14. Continuous attention to technical excellence and good design enhances agility.
  • 15. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
  • 16. Measure stuff, data is the only “opinion” that matters. [PT Contribution]
  • 17. Manage your technical debt you are going to pay it sometime in the (not too distant) future. [PT Contribution]
  • 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”
  • 29. Q&A

Editor's Notes

  1. 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.
  2. 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.
  3. Change Management Project team requirement objectives Business context, etc
  4. They help but not ensure. Communication Shared goal / Shared responsibilities Goal understending Continues improvement Sustainable passe
  5. Refactoring
  6. Continues improvement , feedback loop For exemple : in scrum Sprint retrospective incident management in CD / DevOps
  7. 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.
  8. Ticket Management: JIRA CI: Jenkins / Bamboo Backlog management: JIRA Agile Code Quality: SonarQ Depedency Management : Artifactory
  9. API integration Tool Chain approach Repeatable system / processes
  10. (more general than “software”.)
  11. API integration Tool Chain approach Repeatable system / processes
  12. API integration Tool Chain approach Repeatable system / processes
  13. 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.
  14. 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.
  15. 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.