ibm rational software development conference 2008 - jazz.net · 2017. 6. 23. · the jazz scm –...

20
SDP22 IBM Rational Software Development Conference 2008 © 2008 IBM Corporation. All rights reserved. ® Parallel Development with IBM Rational Team Concert Jean-Michel Lemieux Jazz Source Control Lead, Jazz Project Management Committee, IBM [email protected]

Upload: others

Post on 13-May-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

SDP22

IBM Rational SoftwareDevelopment Conference

2008

© 2008 IBM Corporation. All rights reserved.

®

Parallel Development with IBM Rational Team Concert

Jean-Michel LemieuxJazz Source Control Lead, Jazz Project Management Committee, [email protected]

Page 2: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 2© Copyright 2008 IBM Corporation. All rights reserved.

Overview

� Why another SCM?

� The basic building blocks

� Product level parallel development

Page 3: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 3© Copyright 2008 IBM Corporation. All rights reserved.

SCM in the Open Source community

Git and Linus' popular Git presentation at Google

�Really, really fast! Easy to merge, and happens to be distributed.

�Simple: git init, git commit, git add.

�The cool tool on the block, but mostly for OS and small personal projects.

� Subversion is growing up with 1.5

�Better merge support in 1.5

�A lot of industry adoption, easy to setup and lowadministration.

� However, neither of the OS tools have focusedon ALF integrations or process support. Theirmain focus in on developer productivity andless on organizational productivity.

* http://www.youtube.com/watch?v=4XpnKHJAok8

Page 4: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 4© Copyright 2008 IBM Corporation. All rights reserved.

SCM in commercial organizations

� Most commercial projects are now being developed by distributed teams.

�Transparency between teams is essential.

� Isolation and coordination is important.

�WAN friendly tooling is critical.

� Agile small teams

�Many teams are small and focused on specific short lived projects.

�They need access to planning, SCM, Defect Tracking, and Builds.

� Usability and getting started are important aspect whereas in the Open Source world features can often outweigh usability.

Page 5: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 5© Copyright 2008 IBM Corporation. All rights reserved.

Why another SCM?

Our need to address both forces:

� Integration: Rich data model integrations with defect tracking, builds, process, and other ALM tools.

� Modern SCM model: change sets, streams, components, GDD support, and simple parallel development.

� Easy of install and administration: use standard middle ware, single zip install for tire kickers and small teams.

The freedom to experiment with tight integrations at the data and UI levels.

Page 6: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 6© Copyright 2008 IBM Corporation. All rights reserved.

The Jazz SCM

� It's no longer simply about the files or the SCM system.

� Leverage linking as much as possible between artifacts: builds, defects, plans...

� Rich integration into the application life cycle.

Page 7: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 7© Copyright 2008 IBM Corporation. All rights reserved.

The Jazz SCM – Building Blocks

� Start with files on your local disk.

CS1

before: noneafter: .classpath (1) before: noneafter: .project (1) before: noneafter: build.properties...

Load

� Files are checked into a change set. The change set records the before and after states of each file. Content is stored separately and is delta-compressed.

� Every user gets a sandbox on the server called a repository workspace. Load the repository workspace to get a copy on disk.

� Change sets are owned by a component. A repository workspace can contain one or more components.

Check in

Page 8: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 8© Copyright 2008 IBM Corporation. All rights reserved.

The Jazz SCM – Building Blocks

� Modifications collect into a series of change sets calledthe change history.

� Renaming the 'scripts' directory is a namechange in the change set. Moving a file is a parentupdate.

CS1

before: noneafter: .classpath (1) before: noneafter: .project (1) before: noneafter: build.properties...

� Each component instance has a current configuration. This is the file tree that results from applying the change sets in chronological order.

� Change sets can be discarded, suspended, and resumed. They are the base currency in the SCM model.

CS2

before: .classpath (1) after: .classpath (2)

CS3

before: build.properties (1) after: build_2.properties (2) before: scripts (1) after: scripts-NAME (2)

Page 9: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 9© Copyright 2008 IBM Corporation. All rights reserved.

The Jazz SCM – Building Blocks

� Change sets flow between repository workspaces and a flow target using deliverand accept.

� A stream is used to store a shared change historywhile the repository workspace is writable only by itsowner. Streams are owned by a team.

� You can accept change sets from either a stream, anotherrepository workspace, or cherry pick them from a workitem or chat session.

Parallel development is intrinsic in the design.

Branches are not part of our vocabulary. The word scares people. Instead, we talk about making and flowing changes.

Page 10: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 10© Copyright 2008 IBM Corporation. All rights reserved.

The Jazz SCM – Building Blocks

� In a parallel world, conflicts will happen and must be easy to resolve. Deliver won't create a conflict, but accept or resume can.

� Conflicts are stored as meta data in the repository workspace and can be resolved by either accepting more change-sets, discarding, or merging.

� All types of structural conflicts (eg, moves, renames) are tracked and can be merged.

Page 11: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 11© Copyright 2008 IBM Corporation. All rights reserved.

© Copyright IBM Corporation 2008. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

DEMO 1The basics

Page 12: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 12© Copyright 2008 IBM Corporation. All rights reserved.

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 acomponent at baseline 3, their histories are harmonizedand 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.

baseline 1 baseline 2 baseline 3

Change historypidgin (3) include/ (2) main.h (8) jabber.h (2)

doc/ (2) readme.html (6)

Makefile (2) ...

Configuration

Page 13: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 13© Copyright 2008 IBM Corporation. All rights reserved.

Snapshots

� To save an immutable state of a repository workspace or stream create a snapshot.

� Snapshots don't flow, but are associated with streams, builds, or repository workspaces. You can promote a snapshot between streams.

� Snapshots are used to seed new streams or repository workspaces.

� Create snapshots for all important points in your development process. Milestone builds, releases, important builds...

Page 14: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 14© Copyright 2008 IBM Corporation. All rights reserved.

Teams of teams

� This simple model allows scaling to teams of teams.

� Provides isolation when needed at both the individual and team level.

Page 15: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 15© Copyright 2008 IBM Corporation. All rights reserved.

Summary

� 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

Page 16: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 16© Copyright 2008 IBM Corporation. All rights reserved.

Parallel Development

� 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. Encourage transparent planning and flexible isolation.

Page 17: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 17© Copyright 2008 IBM Corporation. All rights reserved.

It's not just about SCM

� There is much more to product level parallel development then patching the code.

� Team level productivity and turn around time for delivering fixes is impacted by the tooling of the entire process.

� Consider the number of tasks involved in patching a release that aren't related to SCM, but are tooled in Rational Team Concert.

Patch 1.0with critical bug

fixes

Project area hasa list of releases

linked to the associated builds

Build has a link to the 1.0 snapshot.

Create a new streamfrom the snapshot.

Associate the streamwith a new maintenance

team.

Ensure that all change setsdelivered to the maintenance

stream have approvals.

Start a new build for thepatch stream. Clone integrationbuild but build from new stream.

Create a plan for the new patchrelease outlining the candidate

fixes.

Declare the build green withteam lead and QA approvals.

Promote the build and snapshot as release 1.1. Work items can now be created against this release.

Put the build on the websitefor customers to download.

Page 18: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 18© Copyright 2008 IBM Corporation. All rights reserved.

How the Jazz team works

Repository Workspace(Private Builds)

good buildfailed build

Weekly Integration Stream(Product Builds)

deliver/accept

� 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.

� 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.

RC2

RC2 Stabilization Stream

Team Stream(Team Builds)

deliver and accept change sets

Continuous Integration Stream(Product Builds)

deliver and accept baselines

suspend/resume

Page 19: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 19© Copyright 2008 IBM Corporation. All rights reserved.

© Copyright IBM Corporation 2008. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

DEMO 2Fixing a bug in a previous release

Page 20: IBM Rational Software Development Conference 2008 - Jazz.net · 2017. 6. 23. · The Jazz SCM – Building Blocks Change sets flow between repository workspaces and a flow target

IBM Rational Software Development Conference 2008

SDP22 20© Copyright 2008 IBM Corporation. All rights reserved.

© Copyright IBM Corporation 2008. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

Learn more at:

� IBM Rational software

� IBM Rational Software Delivery Platform

� Process and portfolio management

� Change and release management

� Quality management

� Architecture management

� Rational trial downloads

� Leading Innovation Web site

� developerWorks Rational

� IBM Rational TV

� IBM Rational Business Partners

THANKYOU