This document summarizes a presentation on lean enterprise and software development methodologies. It discusses:
1) The chaotic nature of software development and how 66% of projects are unsuccessful or 30% cancelled due to unpredictable nature, leading many to adopt agile/lean methods.
2) An overview of agile methods like Scrum and Kanban, as well as DevOps and Continuous Delivery approaches.
3) How the target methodology selection is DevOps combined with Scrumban for management, to increase efficiency and push increments to production just in time, unlike sprints in Scrum.
4) The final section discusses tactical DevOps adoption through continuous testing and visible business value at each step to encourage practitioners
4. Chaotic Nature of Software Development
In software production business, many of the projects are considered unsuccessful
(%66), or even cancelled (%30) in the end.
Due to the unpredictable
nature of software
development, many
looking to use LEAN/AGILE
methodologies to mitigate
the risks as much as
possible in last few years.
Source: Standish Group Chaos Report - 2014
7. Agile
Agile methods are focused on different
aspects of the software development life
cycle. Some focus on the practices (e.g. XP,
pragmatic programming, agile modeling),
while others focus on managing the
software projects (e.g. scrum).
Yet, there are approaches providing full
coverage over the development life cycle
(e.g. DSDM, RUP), while most of them are
suitable from the requirements
specification phase on (FDD, for example).
Thus, there is a clear difference between
the various agile methods in this regard.
Source: Abrahamson P, Salo O, Ronkainen J, Warsta J (2002). Agile software development methods:
Review and analysis (PDF)(Technical report)
8. Lean
Lean is the basis of Agile
Lean tells you to optimize the end-to-end process which creates value for your customer
from the initial idea to collecting cash. Lean principles focus on flow more than anything
else: bottlenecks in the process must be removed and wasteful activities need to be
identified and avoided.
Source: http://www.agileweboperations.com/lean-agile-devops-related
9. Scrum
Scrum is a management framework for incremental product development using one
or more cross-functional, self-organizing teams of about seven people each.
It provides a structure of roles, meetings, rules, and artifacts. Teams are responsible
for creating and adapting their processes within this framework.
Scrum uses fixed-length iterations, called Sprints, which are typically 1-2 weeks long
(never more than 30 days). Scrum teams attempt to build a potentially shippable
(properly tested) product increment every iteration.
Source: http://scrumreferencecard.com/scrum-reference-card/
10. Kanban
The Kanban Method is a set of principles and practices that are applied to
an existing process to help an organization solve problems it may be
experiencing.
Core Practices
Visualize
Limit WIP
Manage Flow
Make Process Policies Explicit
Implement Feedback Loops
Improve Collaboratively, Evolve
Experimentally
Source: http://www.leankanban.com/node/10
11. DevOps / Continuous Delivery
DevOps – a combination of Development & Operations – is a software development
methodology which looks to integrate all the software development functions from
development to operations within the same cycle.
This calls for higher level of coordination within the various stakeholders in the
software development process
So an ideal DevOps cycle
would start from:
The dev writing code
Building & deploying of
binaries on a QA
environment
Executing test cases and
finally
Deploying on to
Production in one
smooth integrated flow Source: http://www.softwaretestinghelp.com/devops-and-software-testing/
12. DevOps / Continuous Delivery
Continuous Delivery is a software development discipline where you build software in
such a way that the software can be released to production at any time.
You’re doing when
Your software Continuous Delivery are is deployable throughout its lifecycle
Your team prioritizes keeping the software deployable over working on new features
Anybody can get fast, automated feedback on the production readiness of their systems
any time somebody makes a change to them
You can perform push-button deployments of any version of the software to any
environment on demand
Source: http://martinfowler.com/bliki/ContinuousDelivery.html
14. Enterprise Agile/Lean Adoption
Enterprise Agile… Governance?“…clients told me of their plans to use Scrum
on a $5 million project with 400 developers in three countries…
“Its not the engineering practices that will trip us up, continuous integration,
test first, refactoring – these things are understood. Its governance that’s
going to be the problem.”
Source: Ken Schwaber Index
http://blogs.gartner.com/david_norton/2010/01/20/enterprise-agile-in-2010/
16. DevOps with Scrumban
Scrumban is an Agile management
methodology describing hybrids
of Scrum and Kanban and was
originally designed as a way to
transition from Scrum to Kaban.
Today, Scrumban is a management
framework that emerges when
teams employ Scrum as their chosen
way of working and use the Kanban
Method as a lens through which to
view, understand and continuously
improve how they work.
Scrumban is a pull-based system where
the team, in addition to planning out the
work that was committed to during the
initiation, continually grooms the
backlog. The same Scrum meetings which
include that of Planning, Review, and
Retrospection can and should still take
place, but with the pace of such meetings
being more context-driven. The real key
for opting for Scrumban is to ensure that
work in progress (WIP) is still limited.
Source:
https://en.wikipedia.org/wiki/Scrumban
http://www.agilerecord.com/scrumban-%E2%80%92-differently-agile/
18. DevOps with Scrumban
Scrumban enables DevOps to increase software efficiency
better than the other management frameworks. Pushes each
increment to production just in time in case of business
approval. Unlike sprints in Scrum, does not wait every task to be
accomplished.
DevOps enables development and operation units work
together in a harmony. Makes technical aspects robust,
regression free and most importantly repeatable
19. Motivations Behind
• Enabling project teams to manage themselves. (Scrumban)
• Single point of contact in sense of product quality (Scrumban)
• Focus on existing problems through WIP limits (Scrumban)
• Decreasing interaction cost between units. (Scrumban)
• Visualizing project metrics (Scrumban)
• Decrasing the lead/cycle time of the software production from months to
hours. (DevOps)
• Making software development/deployment step precise and repetable
though ‘Code as Infrastructure’ (DevOps / Continuous Delivery)
• Increasing collaboration between Development and Operational units for
better (DevOps)
21. Tactical DevOps Adoption
DevOps Tactical Adoption Theory tries to make the transition process as
smooth as possible. It hypothesis each step towards DevOps maturity should
bring a visible business value empowering management and team
commitment for the next step. The innovative idea here, it is not required to
add the tools/processes to stack from sequential beginning to end, but
seeking benefit.
The reason behind the theory is to encourage practitioners to apply each step
one-by-one and then having the benefits in projects. Consequently, each step
is tested in terms of utility and proved method validity for the further steps.
In contrast to previous adoption models, for example the one publish by
Inedo[1], our model indicates concrete activities rather than general
statements.
Copyright @2016 Berk Dülger, E. Zafer Güney
22. Tactical DevOps Adoption (Prelude)
DevOps Tactical Adoption Theory: Continuous Testing
Business Facing
Technology Facing
Test Pyramid by Mike Cohn