lean enterprise, a definitive approach in software development production

23
Boğaziçi University E. Zafer Güney - Berk Dülger Lean Enterprise: A Definitive Approach in Software Development Production

Upload: berk-duelger

Post on 14-Jan-2017

480 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Lean Enterprise, A Definitive Approach in Software Development Production

Boğaziçi UniversityE. Zafer Güney - Berk Dülger

Lean Enterprise: A Definitive Approach in

Software Development Production

Page 2: Lean Enterprise, A Definitive Approach in Software Development Production

Presentation Agenda

• Chaotic Nature of Software Development

• Agile, Scrum, Lean, Kanban and DevOps Methodologies

• Target Methodology Selection

• Next Step: Enterprise Transformation

Page 3: Lean Enterprise, A Definitive Approach in Software Development Production

Chaotic Nature of Software

DevelopmentChapter I

Page 4: Lean Enterprise, A Definitive Approach in Software Development Production

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

Page 5: Lean Enterprise, A Definitive Approach in Software Development Production

Lean/Agile Adoption

Source: QA Intelligence Survey

Page 6: Lean Enterprise, A Definitive Approach in Software Development Production

Agile, Scrum, Lean, Kanban and

DevOpsChapter II

Page 7: Lean Enterprise, A Definitive Approach in Software Development Production

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)

Page 8: Lean Enterprise, A Definitive Approach in Software Development Production

Lean

Lean is the basis of AgileLean 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

Page 9: Lean Enterprise, A Definitive Approach in Software Development Production

ScrumScrum 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/

Page 10: Lean Enterprise, A Definitive Approach in Software Development Production

KanbanThe 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

Page 11: Lean Enterprise, A Definitive Approach in Software Development Production

DevOps / Continuous DeliveryDevOps – 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/

Page 12: Lean Enterprise, A Definitive Approach in Software Development Production

DevOps / Continuous DeliveryContinuous 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 demandSource: http://martinfowler.com/bliki/ContinuousDelivery.html

Page 13: Lean Enterprise, A Definitive Approach in Software Development Production

Target Methodology Selection

Chapter III

Page 14: Lean Enterprise, A Definitive Approach in Software Development Production

Enterprise Agile/Lean AdoptionEnterprise 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 Indexhttp://blogs.gartner.com/david_norton/2010/01/20/enterprise-agile-in-2010/

Page 15: Lean Enterprise, A Definitive Approach in Software Development Production

DevOps with Scrumban

Scrumban for Management

DevOps for Engineering

Page 16: Lean Enterprise, A Definitive Approach in Software Development Production

DevOps with ScrumbanScrumban 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/Scrumbanhttp://www.agilerecord.com/scrumban-%E2%80%92-differently-agile/

Page 17: Lean Enterprise, A Definitive Approach in Software Development Production

DevOps with Scrumban

Page 18: Lean Enterprise, A Definitive Approach in Software Development Production

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

Page 19: Lean Enterprise, A Definitive Approach in Software Development Production

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)

Page 20: Lean Enterprise, A Definitive Approach in Software Development Production

Enterprise Transformation

Chapter IV

Page 21: Lean Enterprise, A Definitive Approach in Software Development Production

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

Page 22: Lean Enterprise, A Definitive Approach in Software Development Production

Tactical DevOps Adoption (Prelude)DevOps Tactical Adoption Theory: Continuous Testing

Business Facing

Technology Facing

Test Pyramid by Mike Cohn

Page 23: Lean Enterprise, A Definitive Approach in Software Development Production

Boğaziçi UniversityE. Zafer Güney - Berk Dülger

THANK YOU