37
XP PRACTICES AS SCAFFOLDING FOR BREAKTHROUGH COMPANIES Vu Tung Lam XP Day VN 2015

[XPday.vn] XP practices as scaffolding for breakthrough companies (presentation) {at} [XP Day Vietnam 2015]

Embed Size (px)

Citation preview

XP PRACTICES AS SCAFFOLDING FOR

BREAKTHROUGH COMPANIES

Vu Tung Lam

XP Day VN 2015

Vu Tung Lam

Agile Coach, Engineering Director

Certified Scrum Master

Certified Scrum Professional

Certified SAFe Agilist

Expert in Agile Training & Coaching, Agile Transformation & Scaling, Leadership, IT Organization & Management.

Scrum Alliance Profile

Have successfully guided companies of varied size (from a single team to multiple teams geographically distributed) through their transformation to higher Agile fluency level.

Experiences scaling Agile transformation to multiple teams, multiple departments beyond IT.

Practical approach for Agile implementation with a combination Scrum, XP, Kanban, Lean, DevOps, LeSS and SAFe.

Decade of experience managing, building engineering team and implementing best technical practices such as pair-programming, unit testing, test driven, automation, CI/CD.

OUTLINE

Breakthrough Companies, their challenges & required “scaffolding”

Answering big questions

Keep delivering business value while addressing legacy engineering challenges

Sustain the changes

BREAKTHROUGH COMPANIES

☑Have built successful innovative products, typically with large user base

☑Have beach-headed and captured their market niches

☑Well positioned financially (profitable or well funded)

☐Prepare to expand horizontally and/or vertically

SCAFFOLDING

“Scaffolding, also called staging, is the basis of most construction projects it is a temporary structure used to support a work crew and materials to aid in the construction, maintenance and repair of buildings, bridges and all other man made structures.” –Wikipedia

In software engineering context, it is a metaphor for practices & processes required to be in place for companies to sustain theirhigh innovation pace.

CHALLENGES BREAKING-THROUGH

Product

o Adapt the successful formula to similar areas

o Keep out-pace competitors in terms of innovation and new feature development

o Figure the right things to build

IT

o Rapid expansion of engineering team

o Career transition, “new blood” infusion

o Legacy code base – enough said

o Curse of scalability –exponential cost

o Pace of technological changes

o Pressure to deliver from business

Legacy code looking like this

With engineering best practices

BIG QUESTIONS

Q1. How to keep delivering business value

while addressing legacy engineering challenges?

Q2. How to sustain the changes

and avoid falling back to old habits?

HOW TO KEEP DELIVERING BUSINESS VALUE WHILE

ADDRESSING LEGACY CHALLENGES?

IMPLEMENT AN AGILE FLAVOR

Scrum, XP, DevOps, Lean, whatever…

My opinions

o Start small, think about a MVP for process

o Don’t be purists – make Agile works for organizations

o Pick and choose appropriate tools from your Agile toolbox based on business value, regardless of flavors

o Maturity of technical practices is more important than processes

12 Valtech Confidential

ACKNOWLEDGE PUBLICLY THAT YOU HAVE LEGACY PROBLEMSo It requires a lot of courage to acknowledge this publicly

o Helps business to understand, gain support (time, resources, roadmap)

o Encourage team members to speak up, they know best what wrong and how to fix

o Focus energy to drive changes, improve the situation and avoid “blaming the ex-”

o Opportunities for big achievements

GAME-STORMING TO EMPOWER TEAM MEMBERS TO CHANGE

GAME-STORMING TO EMPOWER TEAM MEMBERS TO CHANGE

MAINTAIN A TECHNICAL DEBT BACKLOG

MAINTAIN A TECHNICAL DEBT BACKLOG

ITERATIVELY ADDRESS DEBT STRICTLY DRIVEN BY BUSINESS VALUE & REFINE BACKLOG

ARCHITECTURE FORUM

A community of volunteers who care about the technical quality aspect of software development

o Ultimate owner of technical debt

o Drive problem discovery, solutions, proof-of-concept

o Consensus-based decision making (coding standard, technology choices, etc.)

o Favor team autonomy over standardization

o Promote de-coupling and reducing of inter-team dependencies

BUILD “SCAFFOLDING”

o Light weight automation tools that quickly give feedback (e.g. link checker)

o Unit testing core functionalities (20/80)

o High coverage with unit testing

o GUI automation

CONTINUOUS IMPROVEMENTS

Development environments (server, db)

AUTOMATION – WEB SITESQ2

AUTOMATION – MOBILE LITE SITES

AUTOMATION – MOBILE APPS

Q2

BUGS CAUGHT WITH AUTOMATION (WEB)

RECAP

1. Implement an Agile flavor…

2. Manage technical debto Acknowledge publicly that you have legacy problems

o Empower team members to suggest changes and to drive solution

o Maintain a technical debt backlog

o Prioritizing debt repayment based on $ value & effort

o Repay technical debt as part of development

o Architecture forum as the driver of this process

3. Build scaffolding to safe-guard technical changes

o Automation, automation, automation

o CI/CD => super fast feedback loop

HOW TO SUSTAIN THE GOOD CHANGES?

UNDERSTAND HUMAN PSYCHOLOGY WITH RESPECT TO CHANGES1. Understand why people resist changes

2. Understand what drive & motivate people

3. Bottom-up approach in driving changes

4. Talk value, measure value, track progress, show wins

5. Reinforce positive feedback

STRENGTHEN YOUR SCAFFOLDING WITH EXTERNAL HELP

Benefits

o Know-how experiences from multiple implementation

o Expert opinions/assessments

o Objective, unbiased views

o Benefits as an outsider who is less affected by an organization’s “political minefield”

31 Valtech Confidential

PATTERN 1: BOOTSTRAPPING

Kick start Agile: Train all team members and stakeholders, advise on setting up appropriate organizational structure, and facilitate Sprint 0 for pioneering team.Duration: 1 iteration, typically 2-4 weeks.

Preparation

Training/Setting Up

• Training: Agile Fundamentals

• Training: Scrum Essentials

• Assessment of Agile readiness for the organization

• Advice of optimal organizational setup for succeeding Agile adoption

• Logistical preparation: tooling, artifacts

Executing the First Sprint

• Play the role of an Agile Coach or Scrum Master to execute the first Sprint

• Facilitate standard Scrum ceremonies: huddle, planning, review, retrospective

• Remove impediments and coach the team situational problem solving

• Deliver role-specific coaching with team members: product owner, scrum master and the team

Week 1

Deliverables

• Knowledge transfer to team members

• Advices of optimal implementation strategy for Agile adoption

Deliverables

• Successful first sprint and readiness to continue Scrum process

• Report of recommended practices

Week 2-4

Sprint 0

32 Valtech Confidential

PATTERN 2: ACCELERATING

Accelerating Agile adoption: Ideal for teams are trying Agile but inexperienced. Designed to speed up adoption and achieve concrete, tangible improvements.Duration: 3-4 iterations, typically 6-8 weeks

Overall Assessment

• Retrospective workshop

• Technical debt workshop

• One-to-one interview with team members

• Agile/Scrum assessment

• Observation of existing Agile practices

• Agree on success criteria

Bridging the gaps

• Identify skill/knowledge gap and prepare workshops

• Deliver role-specific training/coaching with team members

Team Coaching

• Coincide with the current sprint/iteration cadence

• Product management skills for Product Owners

• Facilitation techniques for Scrum Masters/Project Managers

• Pair with technical team members to help on engineering best practices

Week 1-2

Deliverables

• Assessment report & recommended course of actions

• Gap analysis & Engagement plan

Deliverables

• Training/workshop help team members bridging identified gaps

• Report of recommendedpractices

Deliverables

• Skills transferred

• Measurable improvements

Weeks 3-4 Weeks 5-8

33 Valtech Confidential

PATTERN 3: CONTINUOUS IMPROVEMENT

Break that Barrier: Ideal for teams who are comfortable with Agile but face several challenges of a fluent Agile team: e.g. speed & predictability of deliveryDuration: Depends on topic & context, typically 4-6 weeks

Problem Defined

• Agile/Scrum assessment

• Investigate deep under the surface to identify symptoms and problem.

• Define problem and measurable success criteria

• Consultancy approach with team members to come up with solution

Problem Solved

• Iteratively tackle the problem while maintaining metrics to guide progress.

• Collaboratively work with team members and other relevant stakeholders for a comprehensive solution.

• Depending on the nature of the challenge at hand, coaching team members to address the underlying issues and prevent them from occur again in the future.

Week 1

Deliverables

• Assessment report of the problem and recommended course of actions

• Gap analysis & action plan

Deliverables

• Agree success criteria met

• Report of recommended practices & skills/knowledgetransfer.

Weeks 2-6

BUILD SUSTAINABLECOMMUNITIES OF PRACTICE

Agile

Practitioners

Agile Product

Management

Agile Technical

Practices

Agile Testing

DevOps

Architecture

Forum

Lean

Management

Build Communities Around Interests

o Start with a community of Agile practitioners/supporters

o Core groups: Product, Technical, Testing

o Other more specialized groups: Security, Architecture, DevOps.

Changes are sustainable when people believe in and continuously seek for ways to advance status quo, without much management interventions.

RECAP

1. Understand human psychology with respect to changes

2. Strengthen your scaffolding with external help

o Pattern 1: Bootstrapping

o Pattern 2: Accelerating

o Pattern 3: Continuous Improvement

3. Build communities of practices to carry the torch

Q&AVu Tung Lam

Agile Coach, Engineering Director

THANK YOU!