supercharged agility with kanban - the eap story
TRANSCRIPT
![Page 1: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/1.jpg)
Supercharged Agilitywith Kanban - the EAP story
Dimitris AndreadisEngineering Director
@dandreadis
![Page 2: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/2.jpg)
@dandreadis2
Disclaimer
We are not an Agile Coaches, neither Kanban Experts
![Page 3: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/3.jpg)
@dandreadis3
![Page 4: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/4.jpg)
@dandreadis4
● Code first● Release early, release often● Test Driven Development● Continuous Integration● Coding Standards● Minimal documentation● Peer review● ...● Meritocracy● Collaboration
Once upon a time (c. 2000) there wasan Open Source project
![Page 5: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/5.jpg)
@dandreadis5
● Introduction● Defining the problem● Introducing Kanban in EAP● Kanban Revisited● Kanban Returns● Tooling & Demo● Q/A
AgendaSupercharged Agility with Kanban - The JBoss EAP Story
![Page 6: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/6.jpg)
Defining the Problem
![Page 7: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/7.jpg)
@dandreadis7
● Red Hat's 2nd biggest product after Red Hat Enterprise Linux● Opensource Downstream for upstream WildFly community project● Integrating 150+ components, about 50 owned by the team● About a dozen other Red Hat products built on or depend on JBoss EAP● Multiple delivery methods (.zip, rpm, installer, container images)● Plus Quickstarts, Maven repos, Sources, Docs, etc.● Multiple supported release streams, [5.x,] 6.x, 7.x● Supported on 4 JDKs, 8 OSes, 4 Chipsets, 19 DBs● Testing for Performance, Interoperability, Compliance, Security, etc.● Most of team is remote, across different timezones
A Very Complex ProductRed Hat JBoss Enterprise Application Platform - JBoss EAP
![Page 8: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/8.jpg)
@dandreadis8
● Pretty much Waterfall-like○ Planning - commit on features○ Development - do the work○ Testing - fix bugs
● Series of builds handed off to QE every 2-3 weeks used as checkpoints○ Developer builds (Alphas)○ Engineering builds (Betas)○ Release Candidate builds (potential GAs)
● Major.next releases running in parallel with previous.minor
EAP 7.0 ProcessIn a nutshell
![Page 9: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/9.jpg)
@dandreadis9
● Long release cycles leading to insane planning times● Misunderstood/miscommunicated requirements● Tracking the release progress was hard● Sticking to release schedules even harder
Defining the ProblemSometime after EAP 7 was released, May/2016
![Page 10: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/10.jpg)
@dandreadis10
We need to go Agile
![Page 11: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/11.jpg)
@dandreadis11
● How to deal with the process resourcing?● Coordination of a large, distributed team● Highly Specialized (veteran) Developers● Typical lead time for feature development in the order of months
Scrum ChallengesIt's not all rosy
![Page 12: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/12.jpg)
@dandreadis12
● Simplify planning and reduce planning time● Reduce context switching, avoid overloading● Be very specific about hand-off points & deliverables● Improve requirements analysis and prioritization● Provide enhanced visibility into the state of features
Which problems we want to solve?Tell me what you want, what you really really want
![Page 13: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/13.jpg)
Introducing Kanbanin EAP
![Page 14: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/14.jpg)
@dandreadis14
● It can enhance an existing process○ Respecting roles and team dynamics○ Taking less resources to implement
● Forces you to accurately model your existing workflow○ How you actually do the job?○ States, inputs, outputs, handoffs, definition of Done
● Helps you visualize and track work in progress● Iterate and continuously improve your process
Benefits of Kanban for EAPA true Pull Model
![Page 15: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/15.jpg)
@dandreadis15
● Get rid of lengthy detailed planning phase● Agree on what will be delivered before implementing - Analysis Doc● Promote earlier QE involvement● Encourage developers to write community documentation
Going Agile 1.0JBoss EAP 7.1 (WildFly 11)
![Page 16: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/16.jpg)
@dandreadis16
When people think about Kanbanthis comes to mind
![Page 17: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/17.jpg)
@dandreadis17
Kanban states in the real worldInitial EAP Workflow
BacklogAnalysis DevAnalysis HandoffAnalysis QEDev TODOPOC / DesignDev In ProgressDev DocsReview
AnalysisDoc
UpstreamDev
Test Dev TODOTest DevTest ReviewBackport TODOBackportBackport ReviewAwaiting Build
ProductDev
QA TODOQA In ProgressAwaiting DocsQA Docs TODOQA DocsVerified!!
Queue/Buffer/Handoff
Engineering
Product Docs team works asynchronously
QE
Merger (merges to branch)
![Page 18: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/18.jpg)
@dandreadis18
Breakthrough #1 - OverbårdMake working with complex projects possible (and pleasant)
![Page 19: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/19.jpg)
Kanban Revisited
![Page 20: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/20.jpg)
@dandreadis20
● Kanban is very "Serial"○ Reality is more "Parallel"
● Introduce Parallel Tasks, for example:○ Upstream, Downstream
Test Development, Community Docs● Each Parallel Task has is own states, like:
○ TODO, In Progress,Review, Merged / Done
Going Agile 1.1Still during EAP 7.1 (WildFly 11)
EAP7-123 KK
Implement the new improved killer feature!
US DS TD CD
![Page 21: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/21.jpg)
@dandreadis21
Going Agile 1.1Revised Workflow
BacklogAnalysis DevAnalysis HandoffAnalysis QEDev TODOPOC / DesignDev In ProgressReviewAwaiting Build
QA In ProgressAwaiting DocsQA Docs TODOQA Docs
POC / DesignDev In ProgressDev DocsReviewTest Dev TODOTest DevTest ReviewBackport TODOBackportBackport ReviewAwaiting Build
Collapsed - Detail is in the Parallel Tasks
Chance for PTs to catch up. Once all done QA can start.
Verification TODO
Verified!!
Flexibility in which PTs must be done. E.g test dev does not need to delay merging.
![Page 22: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/22.jpg)
@dandreadis22
Breakthrough #2 - Parallel TasksIntroduce a 3rd dimension to the board
![Page 23: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/23.jpg)
@dandreadis23
● Planning went smoother● Analysis phase/document helped● More visibility into what is being worked on● Move to Parallel Tasks gave a truer representation of the state of features● In many cases test development happened earlier
EAP 7.1 RetrospectiveImprovements in some areas
![Page 24: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/24.jpg)
@dandreadis24
EAP 7.1 RetrospectiveStill not perfect
● Dev cycle still quite short compared to testing● Once something is merged, very hard to remove● Testing still came late for some features● Still too many handoffs in the process causing delays
![Page 25: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/25.jpg)
Kanban Returns
![Page 26: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/26.jpg)
@dandreadis26
● New EAP delivery stream based off of WildFly quarterly releases● Targeting primarily OpenShift Cloud based deployments● Every 3rd or 4th release rolls into a traditional EAP release
JBoss EAP continuous delivery (EAP-CD)Cloud first!
![Page 27: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/27.jpg)
@dandreadis27
● WildFly gets released every three months● Work happens on feature branches by feature teams
○ Developer (Engineering), Tester (QE) and a Writer (Docs)● WildFly master needs to be stable and always releasable
○ Pre-merge requirements○ Final components only○ On-going regression tests of master
Timeboxed releasesTimeboxed means timeboxed
![Page 28: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/28.jpg)
@dandreadis28
● To keep master always releasable, nothing gets merged until all the pre-merge requirements are met
○ Analysis Document○ Implementation○ Community Documentation○ Test Plan○ Test Implementation○ Pre-Verification
● Despite our efforts if something breaks○ Nothing is reverted○ Treat it like a normal bug
Stable releasespre-checks
![Page 29: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/29.jpg)
@dandreadis29
Breakthrough #3 - Timeboxed Releases,Pre-test as much as possible & Merge when Done - Really Done
![Page 30: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/30.jpg)
@dandreadis30
Feature deliveryDevelopment is iterative & parallel, not sequential
Analysis
POC Design
Test Plan
Impl
Tests
Verification
CommunityDocs
PRs
Review
Not really a linear process!
OptionalRequired DeliverableAction
![Page 31: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/31.jpg)
Tooling & Demo
![Page 32: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/32.jpg)
@dandreadis32
● Continuing to use Jira a hard requirement● Some external tools integrate with Jira, but not satisfactory enough● Evaluated Jira Agile - main problems:
○ Jira Agile cannot visualize too many states into the viewport○ Filter and swimlane views are too static○ It doesn't understand our parallel tasks
ToolingBeating Jira into shape
![Page 33: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/33.jpg)
@dandreadis33
● In-house developed Jira plugin -○ Current: https://github.com/overbaard/overbaard
■ For 7.1: https://github.com/jirban/jirban-jira ● Designed to solve problems in Jira Agile● Apart from the board’s config, uses only data from the Jira issues● Deals with a lot of states, supports horizontal scrolling & collapsible states● Supports arbitrary dynamic filtering with zero config● Understands our parallel tasks extensions● Caches data in the client so it's super fast!
OverbårdTo the rescue
![Page 34: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/34.jpg)
@dandreadis34
Demo….
![Page 35: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/35.jpg)
Recap
![Page 36: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/36.jpg)
@dandreadis36
● Community project (WildFly) released Quarterly● New EAP-Continuous Delivery stream for OpenShift (EAP-CD)● Improvements for traditional bare metal EAP releases● Our Agile Process was run by ONE person (who did the tooling, too)
Is it really working?Let's look at the results
![Page 37: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/37.jpg)
@dandreadis37
● Kanban can work with very complex projects (with some tweaks)
● Kanban helps focusing on improving how you actually work
● Tooling is necessary to make it work (we'd happily share ours - Overbård)
Wrap upPull model FTW!
![Page 38: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/38.jpg)
@dandreadis38
Call To Action:try Overbård!
https://github.com/overbaard/overbaard
![Page 39: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/39.jpg)
Q&A
![Page 40: Supercharged Agility with Kanban - the EAP story](https://reader031.vdocuments.mx/reader031/viewer/2022012017/615b7d69587aaf65da18ac35/html5/thumbnails/40.jpg)
THANK YOU
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHatNews