SlideShare a Scribd company logo
1 of 28
Enhancing Agility with Jazz
Source Code Management



     (and Muppets?)
Not Another SCM…
Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
Jazz SCM and RTC




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
Parliamo Jazz?




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
1: Changes




(File Created)




           Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
2: Change Sets




                                                                                        Refactored the
                                                                                        domain model
                                                                                         man. Groovy



(File Created)
(File Edited)
(File Renamed)

           Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
Projects in Components


  FOS Models                             FOS Models




 UI Wireframes                          UI Wireframes




Proof of Concepts                     Proof of Concepts



    Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
3: Repository Workspace




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
Components in Workspaces


                                     FOS Models




                                    UI Wireframes              Floyd’s Repository
                                                                  Workspace




                                  Proof of Concepts



Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
4. Flowing Changes (I)




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
4. Flowing Changes (II)




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
5. Streams




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
https://band-server/jazz



               A Muppet Christmas                               A Kind of Green



Next Album
                    Covers     New Tunes Team
 Integration
                    Team
                              “Accept”
           “Deliver”
                                      Zoot’s
      Floyd’s
                                      Repository
      Repository
                                      Workspace
      Workspace
           “Load”        “Check In”



                                               Legal Notice: All Muppets and related images are
                                               copyright of The Walt Disney Company
6. But What About Conflicts? (And
            Merges)?




   Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
Baselines and Configurations
•   To save an immutable state of a change history you create a
    baseline. Baselines can also flow between flow targets using
    deliver and accept.
•   Baselines are chained together to allow change history re-use in all
    streams and repository workspaces. This avoids having to copy
    change histories for each new stream or repository workspace.
•   Configurations are also shared between streams and repository
    workspaces.

•   When two streams or repository workspaces share a component at
    baseline 3, their histories are harmonized and both the change sets
    and configurations are shared.
•   New changes are built on top of the shared state and over time new
    baselines flow and re-harmonize into streams and repository
    workspaces.

          Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
7. Snapshots




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
Making a Change (Just for You)
Femma’s
Repository
Workspace


Requirements
Team Stream



               Baseline 1
Andrew’s
Repository
Workspace
                “Check In”

                                             Change Set
                            Andrew’s Local
                            Workspace        Baseline
Sharing a Change (Delivering)
Femma’s
Repository
Workspace

                       Baseline 1
Requirements
Team Stream

                            “Deliver”

               Baseline 1
Andrew’s
Repository
Workspace


                                               Change Set
                              Andrew’s Local
                              Workspace        Baseline
Getting Changes from Others
                 (Accepting)       Change Set

     Femma’s Local                                    Baseline
     Workspace


                                             (Load)
                                Baseline 1
Femma’s
Repository
Workspace
                                    “Accept”
                       Baseline 1
Requirements
Team Stream



Andrew’s       Baseline 1
Repository
Workspace
Agility through Parallel
           Development




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
How Our Team Works




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
How Can I Screw Up?
• Don’t Check In frequently
• Don’t Deliver frequently
• Deliver to the wrong (non-default) Stream
  for your workspace
• Use cryptic Change Set comments
• Associate Change Sets with wrong Work
  Items
• Check in temporary artefacts
     Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
8. Teams of Teams

• This simple model allows scaling to teams
  of teams.
• Provides isolation when needed at both
  the individual and team level.




     Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
Jazz Repository & Project Areas
• RTC has a concept of
  Project Areas
   – These control access to all
     services RTC provides
• First connect to the Jazz
  Repository
• From there, connect to
  your Project Area
   – Observe the services
     available:
       • Builds, Plans, Reports,
         Source Control, Work
         Items


        Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
Advanced Topics
•   Baselines and Snapshots
     –   How do I remember the state of a Component or a set of Components at a given point in
         time?
           •    To save an immuatable state of a change history you create a Baseline
           •    Baselines can flow between flow targets using Deliver and Accept
           •    Baselines are chained together to allow change history re-use in all Streams and Repository
                Workspaces
     –   Snapshots save the immutable state of a Repository Workspace or Stream
           •    They can be promoted between streams
           •    They are used to seed new Streams or repository Workspaces
           •    They are created at important points in the development process: Milestone builds, releases, etc.
•   Merging
     –   What happens when an Incoming Change Set conflicts with some changes I’ve made?
           •    Deliver won’t create a conflict, but Accept and Resume may
           •    Conflicts are stored as meta data in the Repository Workspace
           •    They can be resolved by either accepting more Change Sets, Discarding, or Merging
           •    All types of structural conflicts (e.g. moves, renames) are tracked and can be merged
•   Locking
•   Suspend and Resume




               Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
Summary




Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
More Information?
• IBM’s Jazz SCM FAQ:
  http://jazz.net/library/article/126
• And everything else Jazz Related: http://jazz.net
• My Blog: http://the-music-of-time.blogspot.com
• Twitter: @al94781
Questions?

More Related Content

Viewers also liked

Effectiveness of fraud prevention and detection techniques in malaysian islam...
Effectiveness of fraud prevention and detection techniques in malaysian islam...Effectiveness of fraud prevention and detection techniques in malaysian islam...
Effectiveness of fraud prevention and detection techniques in malaysian islam...arsalanr
 
Flyer GeoCensus
Flyer GeoCensusFlyer GeoCensus
Flyer GeoCensusRoel_Luis
 
1.2 opportunity cost and factors of production
1.2 opportunity cost and factors of production1.2 opportunity cost and factors of production
1.2 opportunity cost and factors of productionmsanne
 
1.4 stakeholders objectives and conflicts
1.4 stakeholders objectives and conflicts1.4 stakeholders objectives and conflicts
1.4 stakeholders objectives and conflictsmsanne
 

Viewers also liked (6)

Ing vysay bank
Ing vysay bankIng vysay bank
Ing vysay bank
 
Career day
Career dayCareer day
Career day
 
Effectiveness of fraud prevention and detection techniques in malaysian islam...
Effectiveness of fraud prevention and detection techniques in malaysian islam...Effectiveness of fraud prevention and detection techniques in malaysian islam...
Effectiveness of fraud prevention and detection techniques in malaysian islam...
 
Flyer GeoCensus
Flyer GeoCensusFlyer GeoCensus
Flyer GeoCensus
 
1.2 opportunity cost and factors of production
1.2 opportunity cost and factors of production1.2 opportunity cost and factors of production
1.2 opportunity cost and factors of production
 
1.4 stakeholders objectives and conflicts
1.4 stakeholders objectives and conflicts1.4 stakeholders objectives and conflicts
1.4 stakeholders objectives and conflicts
 

Similar to Agility with Jazz SCM

Difference between team foundation server and subversion
Difference between team foundation server and subversionDifference between team foundation server and subversion
Difference between team foundation server and subversionUmar Ali
 
GWAVACon 2013: Filr Pilot
GWAVACon 2013: Filr PilotGWAVACon 2013: Filr Pilot
GWAVACon 2013: Filr PilotGWAVA
 
Mining Component Repositories for Installability Issues
Mining Component Repositories for Installability IssuesMining Component Repositories for Installability Issues
Mining Component Repositories for Installability IssuesRoberto Di Cosmo
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Tomas Doran
 
Television news search and analysis with lucene solr
Television news search and analysis with lucene solrTelevision news search and analysis with lucene solr
Television news search and analysis with lucene solrlucenerevolution
 
Television News Search and Analysis with Lucene/Solr
Television News Search and Analysis with Lucene/SolrTelevision News Search and Analysis with Lucene/Solr
Television News Search and Analysis with Lucene/Solrlucenerevolution
 
Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!Stuart Charlton
 
Data Virtualization: Revolutionizing data cloning
Data Virtualization: Revolutionizing data cloningData Virtualization: Revolutionizing data cloning
Data Virtualization: Revolutionizing data cloning Kyle Hailey
 
The influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsThe influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsKris Buytaert
 
BGOUG "Agile Data: revolutionizing database cloning'
BGOUG  "Agile Data: revolutionizing database cloning'BGOUG  "Agile Data: revolutionizing database cloning'
BGOUG "Agile Data: revolutionizing database cloning'Kyle Hailey
 
file+not+too+large
file+not+too+largefile+not+too+large
file+not+too+largetodai951
 
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000'sDevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000'stechopsguru
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
CASPUR Staging System II
CASPUR Staging System IICASPUR Staging System II
CASPUR Staging System IIAndrea PETRUCCI
 

Similar to Agility with Jazz SCM (20)

Difference between team foundation server and subversion
Difference between team foundation server and subversionDifference between team foundation server and subversion
Difference between team foundation server and subversion
 
Subversion
SubversionSubversion
Subversion
 
GWAVACon 2013: Filr Pilot
GWAVACon 2013: Filr PilotGWAVACon 2013: Filr Pilot
GWAVACon 2013: Filr Pilot
 
Meier us
Meier usMeier us
Meier us
 
Mining Component Repositories for Installability Issues
Mining Component Repositories for Installability IssuesMining Component Repositories for Installability Issues
Mining Component Repositories for Installability Issues
 
Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)Test driven infrastructure development (2 - puppetconf 2013 edition)
Test driven infrastructure development (2 - puppetconf 2013 edition)
 
Television news search and analysis with lucene solr
Television news search and analysis with lucene solrTelevision news search and analysis with lucene solr
Television news search and analysis with lucene solr
 
Television News Search and Analysis with Lucene/Solr
Television News Search and Analysis with Lucene/SolrTelevision News Search and Analysis with Lucene/Solr
Television News Search and Analysis with Lucene/Solr
 
Git
GitGit
Git
 
Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!
 
Data Virtualization: Revolutionizing data cloning
Data Virtualization: Revolutionizing data cloningData Virtualization: Revolutionizing data cloning
Data Virtualization: Revolutionizing data cloning
 
The influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devopsThe influence of "Distributed platforms" on #devops
The influence of "Distributed platforms" on #devops
 
Dmk audioviz
Dmk audiovizDmk audioviz
Dmk audioviz
 
BGOUG "Agile Data: revolutionizing database cloning'
BGOUG  "Agile Data: revolutionizing database cloning'BGOUG  "Agile Data: revolutionizing database cloning'
BGOUG "Agile Data: revolutionizing database cloning'
 
file+not+too+large
file+not+too+largefile+not+too+large
file+not+too+large
 
P05-slides
P05-slidesP05-slides
P05-slides
 
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000'sDevOps Naughties Style - How We  DevOps at MP3.com in the Early 2000's
DevOps Naughties Style - How We DevOps at MP3.com in the Early 2000's
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
Database History From Codd to Brewer
Database History From Codd to BrewerDatabase History From Codd to Brewer
Database History From Codd to Brewer
 
CASPUR Staging System II
CASPUR Staging System IICASPUR Staging System II
CASPUR Staging System II
 

Recently uploaded

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Agility with Jazz SCM

  • 1. Enhancing Agility with Jazz Source Code Management (and Muppets?)
  • 2. Not Another SCM… Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 3. Jazz SCM and RTC Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 4. Parliamo Jazz? Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 5. 1: Changes (File Created) Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 6. 2: Change Sets Refactored the domain model man. Groovy (File Created) (File Edited) (File Renamed) Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 7. Projects in Components FOS Models FOS Models UI Wireframes UI Wireframes Proof of Concepts Proof of Concepts Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 8. 3: Repository Workspace Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 9. Components in Workspaces FOS Models UI Wireframes Floyd’s Repository Workspace Proof of Concepts Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 10. 4. Flowing Changes (I) Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 11. 4. Flowing Changes (II) Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 12. 5. Streams Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 13. https://band-server/jazz A Muppet Christmas A Kind of Green Next Album Covers New Tunes Team Integration Team “Accept” “Deliver” Zoot’s Floyd’s Repository Repository Workspace Workspace “Load” “Check In” Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 14. 6. But What About Conflicts? (And Merges)? Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 15. Baselines and Configurations • To save an immutable state of a change history you create a baseline. Baselines can also flow between flow targets using deliver and accept. • Baselines are chained together to allow change history re-use in all streams and repository workspaces. This avoids having to copy change histories for each new stream or repository workspace. • Configurations are also shared between streams and repository workspaces. • When two streams or repository workspaces share a component at baseline 3, their histories are harmonized and both the change sets and configurations are shared. • New changes are built on top of the shared state and over time new baselines flow and re-harmonize into streams and repository workspaces. Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 16. 7. Snapshots Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 17. Making a Change (Just for You) Femma’s Repository Workspace Requirements Team Stream Baseline 1 Andrew’s Repository Workspace “Check In” Change Set Andrew’s Local Workspace Baseline
  • 18. Sharing a Change (Delivering) Femma’s Repository Workspace Baseline 1 Requirements Team Stream “Deliver” Baseline 1 Andrew’s Repository Workspace Change Set Andrew’s Local Workspace Baseline
  • 19. Getting Changes from Others (Accepting) Change Set Femma’s Local Baseline Workspace (Load) Baseline 1 Femma’s Repository Workspace “Accept” Baseline 1 Requirements Team Stream Andrew’s Baseline 1 Repository Workspace
  • 20. Agility through Parallel Development Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 21. How Our Team Works Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 22. How Can I Screw Up? • Don’t Check In frequently • Don’t Deliver frequently • Deliver to the wrong (non-default) Stream for your workspace • Use cryptic Change Set comments • Associate Change Sets with wrong Work Items • Check in temporary artefacts Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 23. 8. Teams of Teams • This simple model allows scaling to teams of teams. • Provides isolation when needed at both the individual and team level. Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 24. Jazz Repository & Project Areas • RTC has a concept of Project Areas – These control access to all services RTC provides • First connect to the Jazz Repository • From there, connect to your Project Area – Observe the services available: • Builds, Plans, Reports, Source Control, Work Items Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 25. Advanced Topics • Baselines and Snapshots – How do I remember the state of a Component or a set of Components at a given point in time? • To save an immuatable state of a change history you create a Baseline • Baselines can flow between flow targets using Deliver and Accept • Baselines are chained together to allow change history re-use in all Streams and Repository Workspaces – Snapshots save the immutable state of a Repository Workspace or Stream • They can be promoted between streams • They are used to seed new Streams or repository Workspaces • They are created at important points in the development process: Milestone builds, releases, etc. • Merging – What happens when an Incoming Change Set conflicts with some changes I’ve made? • Deliver won’t create a conflict, but Accept and Resume may • Conflicts are stored as meta data in the Repository Workspace • They can be resolved by either accepting more Change Sets, Discarding, or Merging • All types of structural conflicts (e.g. moves, renames) are tracked and can be merged • Locking • Suspend and Resume Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 26. Summary Legal Notice: All Muppets and related images are copyright of The Walt Disney Company
  • 27. More Information? • IBM’s Jazz SCM FAQ: http://jazz.net/library/article/126 • And everything else Jazz Related: http://jazz.net • My Blog: http://the-music-of-time.blogspot.com • Twitter: @al94781

Editor's Notes

  1. I want to tell you the story of my current project. We’ve been using Jazz SCM (and RTC) on our project for over a year now since 1.0.0.1, (we’re now on 2.0.0.1) and think it’s given us real agility . I’d like to explain to you a little about how Jazz SCM works , And after that tell you how we use it , and have as a result become more agile .
  2. When we started off the project over a year ago now there were a few things you need to know: The plan was to use Clear Case, Clear Quest , etc. etc. But there was one guy on the project who’d seen some stuff about the new “Jazz” thing from IBM, and proposed to the team that they use it instead (It was cheaper too – he did the sums) But there was a guy who, whenever he heard folks say “lets use this nice shiny new thing” he’d reply “ Why? What’s so much better about it than Clear Case etc.? We know about Clear Case. We know how to use it, we know how it works, and we know when it breaks. Why rock the boat? ” But because it was cheaper , and because of the enthusiasm of guy who proposed it, it was decided to try Jazz and see how it went. But the critic (lets call him Statler) reserved judgement . He was yet to be convinced.
  3. (Picture of something with richness of experience – integration. Piece in a jigsaw? Spoke in a wheel? ) It's no longer simply about the files or the SCM system – we’re on the Jazz platform so we get all the integration richness Leverage linking as much as possible between artifacts: builds, defects, plans... => Rich integration into the application life cycle.
  4. Firstly, I need to be honest . Jazz is different . It’s not your dad’s Clear Case, but it is simple . Its become clear to me that if you get familiar with the Jazz terminology, you’ll get the concepts too . I want to do this in a slightly different way. Lets consider it from one person’s point of view to begin with. Lets call our man “Sergeant Floyd Pepper”. That’s Floyd up there with the bass guitar . He loves to make music. He plays Jazz in a band with a whole bunch of other talented folks. But usually he starts off on his own. He has the basic stuff to start with, and he knows what the problems he needs to solve are. Lets see the simplest things he deals with first . Some call them “notes” but Floyd calls them “changes” .
  5. The simplest thing that Floyd works with is a “change” A change is a single action on a single file. What Floyds “Jazz” considers a change is pretty broad: Edits Additions Removals (deletion) Moves Renames [Renaming the 'scripts' directory is a name change in the change set. Moving a file is a parent update.] A change (set) records the before and after states of each file . [Content is stored separately and is delta-compressed.]
  6. But Floyd is too good a Jazz man to be satisfied with just a single “change”. Frequently, he puts a bunch of them together into a riff, or as Floyd says: Changes are “checked into” a change set . Change sets have a comment: “Cool”, “Yeah Man”, “Smooth”, or as we can see here: “Refactored the Domain Model Man. Groovy” Change sets are owned by a component . This is just a logical group of files (i.e. synonymous with an Eclipse or Visual Studio project) Each component instance has a current configuration . This is the set of directories and files that results from applying the change sets in a chronological order. The collection of these modifications into a series of change sets is called the change history . Change sets can be discarded , suspended , and resumed . They are the base currency in the SCM model
  7. Components are created in order to logically group collections of code and other artefacts. These are the basic units of interaction with RTC SCM and contain elements which are closely related. Each component contains a single Eclipse or Visual Studio project with the same name as the Component itself [That’s our team’s convention]
  8. Floyds not super great at remembering things And neither is his equipment (bass and amp) too reliable Luckily he, and every other band member have places on the Jazz server to save their change sets. These are called repository workspaces . [A repository workspace contains one or more components.] This repository workspace is Floyds (yours.) He uses it to back up his work, and also keep a version history of all the change stes without having to leverage a shared (code) repository But he’s even cleverer than that. When he has to change equipment he connects to Jazz and “loads” his repository workspace to get a copy. In this way you can also move from one set of equipment to another But there’s more. He can even let others see it (its on the server) All without pushing it into a shared area. Its still all Floyds
  9. Streams and Workspaces contain a set of Components
  10. So Floyds been working away. But now he’s got some “change sets” he want to share with his band mate, Zoot To do this he can “flow” his changes directly to him, to Zoot’s Repository Workspace Floyd can do this because Repository Workspaces have “ Flow Targets ” He flows his Change Sets from his Repository Workspace to their “ flow target” using “ deliver” and “ accept” And he can change the flow target to point wherever he likes Branches are no longer part of his vocabulary. Floyd found that the word scared people. Instead, he talks about “making and flowing changes”. Parallel jamming (development) is intrinsic in the design of Jazz. You can deliver your changes sets to wherever your flow target is pointing. You can deliver to and accept change sets from either a stream, another repository workspace, or cherry pick them from a work item or chat session.
  11. In truth, it’s not often that Floyd directly flows his change sets directly to Zoot. What he much prefers is to lay them down, and then flow them to an area which all his band mates can see. This is what they call the “ Stream ” and its owned by the whole band. Floyd delivers his changes to it, and all the band mates can accept them from it as and when they like. Very occasionally Floyd gets really clever and does things like cherry picking change sets from an old piece of vinyl (work item) or even from a chat session. But this is pretty infrequent. Most changes go via the Stream.
  12. Streams are important, so lets talk about them some more. While a Repository Workspace is writable only by its owner (generally). Streams are owned by a whole team. In Floyd’s case a Stream is used by the whole band to store their shared change history of all the files they’ve worked on At any given point in time, the Stream has all the files that a new band member (developer) needs to get started. It is as easy for them to join as creating themselves a personal Repository Workspace from the current state of the Stream and loading it down to their equipment
  13. Putting it all together – a static view (Use if needed)
  14. Everyone in the band is aware, in such a parallel, agile, Jazz world, conflicts will happen and so must also be easy to resolve In Jazz SCM “Deliver” won't create a conflict , but “Accept” (or “Resume”) can This happens on the Jazz Server , in your Repository Workspace, not on your local equipment Conflicts are stored as meta data in your Repository Workspace Conflicts can be resolved by either accepting more change-sets, discarding change sets, or merging (manual) All types of structural conflicts (e.g., moves, renames) are tracked and can be merged Floyd would be the first to admit, with someone like Animal in the band, manual merging is still painful , but not as painful as in older systems And if you structure your codebase, teams and ways of working to separate things as much as possible, reduce the shared elements, and deliver and accept frequently then there should be little problem. What do you mean you don’t do all this already?
  15. There is one more power move which Floyd uses in order to get the most out of his use of Jazz. To remember where he or the band were with work they save an immutable state of a repository workspace or stream by creating a snapshot Floyd creates Snapshots manually when he wants They are also automatically created by and associated with Jazz builds You can promote a snapshot between streams just like you do a change set Snapshots are the baselines used to seed new streams or repository workspaces Floyd recommends you create snapshots for all important points in your development process. This means Milestone builds, releases, important builds... , other memorable moments. Etc. etc.
  16. Make a change to a file locally When you’ve finished the changes you “check in” the group of changed files into your Repository Workspace It’s like backing them up to the server It’s still private to you But it’s also going to record the change history Files are “checked in” into a Change Set This records the before and after states of each file This includes additions, deletions, moves and renames Change Sets are owned by a Component Each Component instance has a current configuration . This is the file tree that results from applying the Change Sets in chronological order If you change files across more than one Component, Jazz will create multiple Change Sets for you For reference, give your Change Set a meaningful comment which describes it Change Sets can be discarded, suspended, resumed, or delivered They are the base currency in the RTC SCM model
  17. When you have a collection of Change Sets you want to share with the Team They will show as “Outgoing” in your Pending Changes view Deliver them You need to associate a Work Item(s) with your Change Sets Usually a Task This ties your work into the Planning aspect of RTC As well as Requirements and Defects Which allows us to trace from top to bottom You also need to add a comment – select the change set and press “F2” Then “deliver” to the current Flow Target of your Repository Workspace
  18. Someone else has delivered their Change Sets to the shared Stream You’ll see these as “Incoming” in your Pending Changes View They’re not yet in your Repository Workspace “ Accept” them when you’re ready for them This will add the changes to your Repository Workspace… … and load them onto your local disk
  19. So that’s the tour. Hopefully Floyd’s explanation has given you an idea how Jazz works. Now, how does it help you be more agile? The model supports several levels of parallel development: Repository workspaces – Provides constant isolation. You don't have to make your changes visible to the team just to backup or use the repository features. Suspend and Resume – Provides task level isolation for personal work. Work Item links – Provides light weight task level isolation for personal of team work. Work on a feature, attach to a work item and discard from your workspace. You or someone else continues the work by accepting the change sets back into their repository workspace. Streams – Provides team isolation. Development Lines – Provides process isolation. Isolate work not people . Agile Development : enable quick iteration less upfront stream design simple mechanisms to collaborate within the SCM tool Benefit: teams focus on their domains and less on the SCM tool this makes it easier to incrementally evolve your development and encourages transparent planning and flexible isolation
  20. We create a Stream for each “configuration” of your product or project that has to be built. We do one for each feature team, and another for integration between them all We also create more Streams as required when bug fixing for a previous release (from the release snapshot) When it’s been unclear which features will make it into a new release, we have even created one per feature But, because Jazz SCM is so flexible, you can start small, even with just one stream and one component Then you can grow it as your projects grows by moving files/folders into new components and creating more streams. Additionally: Each Stream has a CI Build Engine Therefore each team has a CI Build Each build references a snapshot of the artifacts that were built. Reproducing a build or patching a build is as simple as creating a new stream from the snapshot. There is no planning needed to tag or baseline, builds take care of that for us A Developer has one or more Repository Workspaces per Stream – in this way a developer can work on multiple Streams at once Developers deal mainly with accepting and delivering to their team stream Flowing changes to and from the integration streams is the responsibility of one person on each team And using Suspend and Resume, a developer can safely interleave work on new features and bug fixes
  21. Don’t Check In frequently – your change sets contain changes for more than one thing Don’t Deliver frequently – conflicts will be more likely, and your code won’t get CI built Deliver to the wrong (non-default) Stream for your workspace – Change sets in the wrong place Use cryptic Change Set comments – when people accept and merge they read these. Make them descriptive Associate Change Sets with wrong Work Items – These group change sets logically and tie into the rest of RTC. Leverage the power! Check in temporary artefacts – don’t mess up the SCM and make checkouts longer So ask the CM team when you’re stuck We’re here to help
  22. The Jazz SCM is entirely Change Set based. There is no file level branching or tagging. Focuses on user level simplification with the added power of parallel development. Conscious effort to never use the word branch in the UI. People are afraid of branches, but want isolation and the features they provide So… Modern SCM model : Change sets, streams, components, GDD support, and simple parallel development. Benefit: Makes it a lot easier to collaborate in an SCM tool, exchange changes, suspend, resume, cherry-pick changes Agile Development : enable quick iteration, less upfront stream design, simple mechanisms to collaborate within the SCM tool. Benefit: Allows team to focus on their domains and less about the SCM tool. Make it easier to incrementally evolve your products.