31
© 2009 IBM Corporation CRMA43 Agile Development Using the IBM Rational ClearCase Remote Client (CCRC) Sujeet Mishra IBM Rational Software [email protected]

Agile Developement Using CCRC - Sujeet Mishra

Embed Size (px)

Citation preview

Page 1: Agile Developement Using CCRC - Sujeet Mishra

© 2009 IBM Corporation

CRMA43

Agile Development Using the IBM Rational ClearCase Remote Client (CCRC)

Sujeet MishraIBM Rational [email protected]

Page 2: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

2CRMA43

Agenda

Software Configuration Management (SCM) issues important to agile teams

ClearCase object topologies and practices that support agile development

ClearCase Remote Client (CCRC) features that support agile development

Questions/Discussion

Page 3: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

3CRMA43

Agenda

What this presentation *is not* aboutAgile methodologies like scrum, xp, etc.How to connect build management tools to ClearCaseHow to kick off automated tests following a build

Page 4: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

4CRMA43

SCM Issues important to agile teamsRapid parallel development

IsolationResponse to changing requirementsGeographically distributed development

IntegrationContinuous integrationConflict resolutionAtomic commitContinuous consistent builds

Yes, all these, but primarily agile teams want to work faster and more efficiently

Page 5: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

5CRMA43

Respond to changing requirements

Ability to set aside in-progress changesNew high priority defectLowered priority of new featureNeed to be able to easily restore in-progress changes that are set-aside

Some SCM systems have inbuilt support

If notA system that makes it easy to do parallel development

Page 6: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

6CRMA43

Agile Globally Distributed Development

Additional challengesPlanningCommunicationArchitectureSCM

Page 7: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

7CRMA43

Continuous integration – definition

Continuous Integration is a set of software development practices, behaviors and principles for automating the integration and inspection of software continuously, so that engineers can detect and fix problems early and validate software quality.

Page 8: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

8CRMA43

Continuous integration – micro integration

File level integrationAvoid code divergenceFind integration issues earlyIntegrating changes within an active development branch

Deliver stable code on the active development branchApplication buildsManual or automated tests succeedNo regressions

Page 9: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

9CRMA43

Continuous integration – macro integration

Component level integrationPublished APIsIntegration between teams working on larger componentsPick up new staged derived objects – no mergingMerge in new version of libraries and full build

Integrating changes between active development branches

Integration Is for multiple active development branches

Not likely to be as frequent as micro integration

Page 10: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

10CRMA43

Atomic commit

Transactional support for creating a logical grouping of new versions

Beneficial for builds that are triggered by the commitGenerally irrelevant for nightly builds

Beneficial for keeping an active development branch stable

Compensate if atomic commit is unavailableBuild at designated timesUse time rules Avoid commits, deliveries and merges close to build time

Page 11: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

11CRMA43

Continuous build

Developer workspace buildvs.Active development branch build

vs.Integration branch build

Triggered builds

Scheduled builds

Nightly builds

Build toolsRational BuildForge automation

Page 12: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

12CRMA43

Agile using ClearCase

ClearCase is a great solution for agile in a large organizationSimple, flexible for the agile teamScales to support enterprise complexityCareful not to over use rich feature set – Keep it simpleAdd complexity above the active development branch to maintain agility

Or not at all

Agile topologies and practiceBase ClearCaseUCM

Page 13: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

13CRMA43

Base ClearCaseIsolation with checkouts, views and branches

Branches represent promotion levelsDevelopers share a branch for active developmentActive development branch merged with stabilization branch for releaseOptionally, branches for features lasting more than a dayOptionally, additional branches for testing, intermediate integration

IntegrationCheckout and CheckinView updateFindmergeNew Pending Changes view

Build ConsistencyTimed buildsConfig Spec time ruleLabel

Page 14: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

14CRMA43

Base ClearCase: View-based isolation

User B View

foo.java@@/active

1

2

3

User A View

bar.java@@/active

1

2

Page 15: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

15CRMA43

Base ClearCase: Branch-based isolation

User B View

foo.java@@/active

1

2

3

User A View

foo.java@@/private

1

2

Page 16: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

16CRMA43

Base ClearCase: Integration on the same branch

User B View

foo.java@@/active

1

2

3

User A View

bar.java@@/active

1

2

4

5

4

5

Checkin makes your changes visible to othersView update allows you to see other user’s changes

Page 17: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

17CRMA43

Base ClearCase: Integration between branches

User B View

foo.java@@/active

1

2

3

User A View

foo.java@@/private

1

2

34

Findmerge allows you to make your changes visible on the active branchFindmerge also allows you to get the latest changes from the active branch

Page 18: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

18CRMA43

Build Consistency – Time Ruletime

a.java

1

b.java

1

2

3

c.java

1

2

d.java

1

2

e.java

1

f.java

1

2 3 2 24

3 35

Page 19: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

19CRMA43

ClearCase Remote Client (CCRC)ClearCase over a Wide Area (high latency) Network

Pockets of remote users where MultiSite would not be cost effectiveWorking at homeWorking disconnected, traveling

Minimizes communication between CCRC client and serverCCRC server is the ClearCase “client”

May be used in a LAN environmentSupports Web views only – not Snapshot or Dynamic views

Integrated with Visual Studio

CCRC CLI

Page 20: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

20CRMA43

Recursive Add to Source ControlAdd to Source Control Dialog

Recursive add to source control

Filtering

Page 21: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

21CRMA43

Common Dialogs Checkout Dialog (Detailed)

Checkout Dialog (Simple)

Checkout Dialog (Customized)

Simple/Customized/Detailed

Last use remembered

Easy to change with preferences

Page 22: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

22CRMA43

AggregatedIndicators/Operations

Aggregated change indicator and operations

Checkin, Undo Checkout, Undo Hijack

Page 23: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

23CRMA43

PreferencesCheckout Dialog Preferences)

Customize appearance

Customize behavior

Checkout non-latest handling

Checkout reserved handling

Other behaviors: hijacks, logical resources

Page 24: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

24CRMA43

Streamlined Deliver/Rebase

One button deliver or rebase

Toolbar buttons remember last used type

Preferences control degree to which the operation is streamlined

Settable differently for each view

Default rebase can be to latest or recommended baselines

Page 25: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

25CRMA43

Working Sets

Save a named, persistent set of objects

Avoid repetitive navigation to reach those objects

Combine objects from different parts of the hierarchy into one working set

Edit working sets

Export/Import working sets to share with colleagues

Page 26: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

26CRMA43

Pending Changes View – Base ClearCaseBase ClearCase Pending Changes View

Combines many operations to display differences between developer’s view and the integration view

Single view for comparison and integration

Supports all ClearCase operations

Base CC and UCM, shared branch/stream, private branch, stream

Page 27: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

27CRMA43

Pending Changes View - UCMUCM Pending Changes View

Combines many operations to display differences between developer’s view and the integration view

Single view for comparison and integration

Supports all ClearCase operations

Base CC and UCM, shared branch/stream, private branch, stream

Page 28: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

28CRMA43

Notifications

Schedule polling for notifications of new baseline or pending view update

Schedule periodically or at specific days and times

Notification is subtle blinking of part of the toolbar button

Press the blinking button to perform the action

Hover to turn off the blinking and leave an acknowledgement indicator

Page 29: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

29CRMA43

Pending Changes Scheduled Refresh

Depending on the content, Pending Changes can be expensive to calculate

Provide a scheduled refresh for pending changes so information is available when needed

Improve Pending Changes to integrate local changes without requiring a refresh

Page 30: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

30CRMA43

Page 31: Agile Developement Using CCRC - Sujeet Mishra

IBM Rational Software Conference 2009

31CRMA43

© Copyright IBM Corporation 2009. 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, Rational, the Rational logo, Telelogic, the Telelogic 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.