+ All Categories
Home > Documents > Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by...

Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by...

Date post: 09-Oct-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
20
Continuous Improvement via Continuous Integration Anurup Joseph Elegan Consulting
Transcript
Page 1: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Continuous Improvement via Continuous IntegrationAnurup Joseph Elegan Consulting

Page 2: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

About Anurup

- coding professionally since 1994

- working with Java since 1996

- different industries/sectors/geographies

- loves to explore

- enjoys fostering Agile development and Kaizen

Page 3: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

About You

- Agile? Waterfall? Other? Chaos?

- Continuous Integration? Continuous Delivery?

- Continuous Improvement process?

Page 4: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Kaizen- “change for the better” - Continuous Improvement - inspired TPS to LSD

Page 5: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Continuous Improvement Importance

- reduce tech debt

- learn of emergent discoveries/vulnerabilities

- identify and fix new issues

- team education

- CI teams yield competitive advantages

Page 6: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Continuous Integration Importance

- non-trivial software consists of disparate components

- components must be integrated

- integration points tend to cause issues

- Continuous Integration discovers issues early

- early discovery = lower cost in time and money

Page 7: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

But How?

Page 8: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Manual Review

- human inspection of all existing and new code

- requires varied expertise

- slow, boring, error-prone

- difficult with distributed teams

- human time gets more expensive

Page 9: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Manual Tools- static analysis software (CLI or IDE)

- regularly updated with new inspections

- never gets bored or sloppy

- must remember to run them — upon every change by anyone

- tends to be episodic

- no tool is as good as expert human inspectors

- machine time gets cheaper

Page 10: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Automatic Tools- integrate static analysis software with Continuous Integration

- each check-in/build results in full inspection

- team informed of new issues

- metrics tracked over time: “If you can’t measure it, you can’t manage it.”

- next best thing to human experts always reviewing everything

- machine time gets cheaper

Page 11: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

TMTOWTDI

- many tools available

- will present those that worked for my teams

- will not go in-depth into configuration specifics

Page 12: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Some Tools to Try- Maven & Jenkins

- FindBugs & PMD

- CPD

- Cobertura

- Checkstyle

- Open Tasks

Page 13: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Workflow Part 1

- checkin triggers Jenkins to run Maven build

- Maven build runs tests

- Maven build runs static analyzer via Maven plugins

- static analyzers generate prioritized reports

- Jenkins plugins present reports graphically

Page 14: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Workflow Part 2- team monitors analysis reports and emails

- new issues fixed in Iteration

- extant issues result in Stories/Defects in Backlog

- team continually pulls from Backlog in priority order

- leads/management monitors quality metrics

- Retrospectives result in learnings

- becoming a learning/improving organization

Page 15: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Fun with System.exit()

Page 16: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Continuous Integration yields

Continuous Improvement

Page 17: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Appendix

Page 18: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

TPS Principles- Continuous Improvement

- Respect for People

- Develop Long-term Vision (strategy)

- Focus on Short-term Process (tactics)

- Grow People

- Create Learning & Improving Organization

Page 19: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

LSD Principles- eliminate waste

- Continuous Improvement to enhance learning

- decide as late as possible

- deliver early and iteratively

- empower the team

- Continuous Integration builds integrity

- see the whole: “Think Big, Act Small, Fail Fast, Learn Rapidly”

Page 20: Continuous Improvement via Continuous Integration · Agile Principles - Customer satisfaction by early and continuous delivery of valuable software - Welcome changing requirements,

Agile Principles- Customer satisfaction by early and continuous delivery of valuable software

- Welcome changing requirements, even in late development

- Working software is delivered frequently (weeks rather than months)

- Close, daily cooperation between business people and developers

- Projects are built around motivated individuals, who should be trusted

- Face-to-face conversation is the best form of communication (co-location)

- Working software is the principal measure of progress

- Sustainable development, able to maintain a constant pace

- Continuous attention to technical excellence and good design

- Simplicity—the art of maximizing the amount of work not done—is essential

- Best architectures, requirements, and designs emerge from self-organizing teams

- Regularly, the team reflects on how to become more effective, and adjusts accordingly


Recommended