81
SESSION: ENTER SESSION SPEAKER: ENTER SPEAKER

CM10.2 Power Builder Source Control

Embed Size (px)

Citation preview

Page 1: CM10.2 Power Builder Source Control

SESSION: ENTER SESSION

SPEAKER: ENTER SPEAKER

Page 2: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 2

Introduction• Eric Saperstein

– Software Configuration Manager for the MetLife Sales Office Infrastructure (SOI) Project

• Joined MetLife in March of ‘97.• Reviewed the Existing Source Control

Procedures.• Designed & Implemented New Source Control

Procedures.

– PVCS Administrator NJ State Medical Underwriters

– Business Admin/CIS Degree Rider University

Page 3: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 3

Introduction - Objective

• Provide practical solutions for two issues common to PowerBuilder development projects.– Accurate and Reliable Source

Control– Managing Shared Resources

Page 4: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 4

Agenda• Part I - Sample Environment

Overview– SOI Project Overview– PowerBuilder 5.X and 6.X Overview– What Makes up a PowerBuilder

Application?– PVCS Version Manager Overview– Environment Review– Questions & Answers

Page 5: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 5

Agenda

• Part II - Source Control Implementation Goals– Source Control Implementation

Goals– Questions & Answers

Page 6: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 6

Agenda• Part III - Two-Tiered Archive

Structure– Two-Tiered Archive Structure

Objective– Generic Promotion Model– PowerBuilder Promotion Model– PowerBuilder Source Control Model

-Two-Tiered Archive Structure– Questions & Answers

Page 7: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 7

Agenda

• Part IV - The Staircase Methodology– Introduction and Objective– The Staircase Methodology– Questions & Answers

Page 8: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 8

Agenda

• Part V - Supporting Directory Structure– Applying the Staircase to a Directory

Structure– Example Workstation Directory

Structure– Example Server Directory Structure

Page 9: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 9

Agenda

• Part VI - Conclusion– SCM Implementation Goal Review– Cost/Benefit Analysis – Open Issues– Closing - Total Commitment– Open Floor

Page 10: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 10

Part ISample Environment

Overview

Page 11: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 11

SOI Project Overview

• The primary objective of the MetLife Sales Office Infrastructure (SOI) project is to provide the field and sales office team members with a reliable system that offers all required business functionality.

Page 12: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 12

SOI Project Overview

• SOI Project Scale– 6,000 Field Laptops– 2,000 Sales Office Desktops– 420 Sales Office Servers– 23 Database Servers

Page 13: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 13

SOI Project Overview

• Supported Life Cycle Stages– Design– Development– Unit Testing– System Testing– Production Pilot– Production

Page 14: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 14

SOI Project Overview

• Multiple Production Environments– Various Sales Office Models– Various Sales Force Rep Profiles

Page 15: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 15

SOI Supported Platforms

• Field Rep Laptops

– Windows 95

• Sales Office Desktops– Windows NT 4.0– Windows 95

– DOS / Windows 3.1

Page 16: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 16

SOI Supported Platforms• Servers

– Windows NT Server Version 4.0

• Development Systems– Windows 95– Windows NT 4.0

Page 17: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 17

SOI Distributed Development

• Development Sites– Bridgewater, NJ– Denver, CO– Warwick, RI– Telecommuters - 3 Team Members– Third Party Sites

Page 18: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 18

SOI Primary Development Tools

• PowerBuilder Client/Server Development• Version 5.0.02, 5.0.04, 6.5

• Visual C++– Version 5.0, 6.0

• Visual Basic– Version 3.0, 4.0, 5.0, 6.0

• Sybase SqlAnywhere– Version 5.0.3

Page 19: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 19

SOI Source Control Tools

• Current– PVCS Version Manager

• Version 6.0.10

Page 20: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 20

PowerBuilder 5.X and 6.X Overview

• Rapid Application Development & Deployment

• Object Oriented Development

• Tiered Architecture

• Two Levels of Source Files

• Proprietary Development Environment

• Supports/Encourages Common Components

Page 21: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 21

What Makes up a PowerBuilder application?

• Application Specific PowerBuilder Libraries, Source Code, & Resource Files

• Common PowerBuilder Libraries, Source Code, & Resource Files

• Third Party PowerBuilder Libraries, Source Code, & Resource Files

Page 22: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 22

What Makes up a PowerBuilder application?

• Application Specific PowerBuilder Libraries, Source Code, & Resource Files

• Each application performs a specific business function. Source related to this function is maintained by the business unit teams in application proprietary PCVS archives.

• Examples:

• Printing Sales Illustrations

• Save/Load Sales Illustrations

• Sales Illustration Solves

Page 23: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 23

What Makes up a PowerBuilder application?

• Common PowerBuilder Libraries, Source Code, & Resource Files

• Some application functions may be similar to the functions of other applications. To reduce duplicate efforts, these functions may be developed and maintained as common components.

• Examples:• Database Interface• Error Handling• GUI Standards

Page 24: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 24

What Makes up a PowerBuilder application?

• Third Party Applications– Applications purchased or

commissioned by MetLife that are maintained by third parties. Third party applications may be used as common components.

• Examples:• EZ Data Client Data System• Sterling Wentworth Fact Finding & Needs

Analysis• Lotus Notes Email

Page 25: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 25

PVCS Version Manager - Overview

• Source Code Library

• Check-out/Check-in Library Functions

• Revision Tracking & History

• Version Labeling

• Branching & Multiple Development Paths

• Source Code Integrity

• Archive Security

Page 26: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 26

Environment Review - End Part I

• We are supporting applications that:– Have proprietary

resources.

– Share resources.

– Have multiple development paths.

– Are developed, built, and maintained in a distributed environment.

– Are at various stages of their life cycle.

Page 27: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 27

Pause for Questions & Answers

Page 28: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 28

Part IISource Control

Implementation Goals

Page 29: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 29

Source Control Implementation Goals

• Clear & Measurable Increments.• Measurable increments allow Project

Managers to accurately plan time lines & resource allocation.

• Reliable Repeatable Releases.• We must be able to accurately

reconstruct any version of an application on demand.

• Isolated Development Environments.

• Development, Unit Test, System Test, EDM, and Production will be logically separated and secured.

Page 30: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 30

Source Control Implementation Goals

• Accurate Control of Shared Resources.• Shared resources must be clearly and

permanently labeled to ensure proven compatibility with Laptop applications.

• Support All Stages of the Software Life Cycle.

• Developers must have the ability to perform maintenance on applications during any phase of their life cycle.

Page 31: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 31

Source Control Implementation Goals

• Consistent Directory Structures.• Developers must understand the

directory structures and where to locate resources.

Page 32: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 32

Part III

Two-Tiered Archive Structure

Page 33: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 33

Two Tier Archive Structure

• The objective of creating a Two Tier Archive structure is to provide source control at the most granular level possible while still producing releases from a single source.

Page 34: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 34

Generic Promotion Model

• Basic Logical Promotion Model– Follows the “Staircase” Approach.

Page 35: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 35

Generic Promotion Model

• Logical Model– All Source Code in One PVCS

Archive– Each Stage of the Life Cycle Is

Isolated – Clear Concise Version Labeling– No Physical Promotion Is Required

Page 36: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 36

Generic Promotion Model• Development

– Coding in Progress (PowerBuilder Splits Into Three Levels)

• Unit Testing– Development Team Testing of Compiled

Application

• System Testing– Formal QA, Functionality, Integration, & Regression

Testing

• Production Pilot / Production– Applications Currently In Use in the Users Systems

Page 37: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 37

PowerBuilder Promotion Model

• PowerBuilder Development Model– The Development Step of the

Promotion Model Is Split Into Three Levels:

• PBWORKING• PBDEV• PBUNIT

– Breaks The Rules of Logical Promotion

– Requires Redundant Archival

Page 38: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 38

PowerBuilder Promotion Model

• PowerBuilder Development Model– PBWORKING - Developer’s

Personal Working Directory • Object Level / File Level Source Control

• On Local System or Share Server• Accessible Only by Individual

Developers

Page 39: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 39

PowerBuilder Promotion Model

• PowerBuilder Development Model – PBDEV - Development Team

PowerBuilder Library• Object Level Source Control (First

PVCS Archive)

• Located on PVCS Server• Accessible by All Team Members for

Checkout/checkin Only

Page 40: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 40

PowerBuilder Promotion Model

• PowerBuilder Development Model– PBUNIT - Read Only Development Team

Reference Library• File Level Source Control (Second PVCS

Archive)

• Contains Individual Developer Tested Source Code for Reference by All Team Members

• The “Staircase” Methodology Applies• Located on PVCS Server

• Accessible to All Developers That Require Access

Page 41: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 41

PowerBuilderSource Control Model

• PowerBuilder Development Model -Promotions from PBDEV to PBUNIT– Physical Promotion– Bridges the Gap Between File and

Object Level Archives– Requires Planning and

Communications– Requires a Staging Directory

(PBPROMOTE)

Page 42: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 42

PowerBuilderSource Control Model

• Two Tier Source Control– File Level - PBL’s, Help Files, Images,

etc.• File level version control allows applications

to be recreated from one source library.

• Does not provide version control on PB objects.

– Object Level - PowerBuilder Objects• Provides version control for PB objects.

• Does not provide the ability to recreate applications from one source library.

Page 43: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 43

PowerBuilderSource Control Model

• File Level Source Control.– Branching

– Multiple Version Labels

– Promotion Models

– Recreate Applications From One Source

– File Level History– Locking at the PBL

Level

Page 44: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 44

PowerBuilderSource Control Model

• Object Level Source Control.– Object Level History

– Locking at the Object Level

– Branching in PB 6.5 only

– No Source Control Tool Promotion Models

– Can Not Recreate Complete Applications From One Source

Page 45: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 45

PowerBuilderSource Control Model

• Advantages of Two Tier Source Control– One Source Library for Repeatable

Releases– Object Level Control & History– Promotion Modeling– Support for Branching

Page 46: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 46

PowerBuilderSource Control Model

• Disadvantages of Two Tier Source Control– Redundant Archival of Objects– No Object Level Source Control on

Branches Created at the File Level– Difficult to Track Which Version of an

Object Is in Which Version of a PBL

Page 47: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 47

Part IV

The Staircase Methodology

Page 48: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 48

The Staircase Methodology

• The Objective of the Staircase Methodology is to provide a consistent, stable, and accurate means of sharing resources between multiple applications.

Page 49: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 49

The Staircase Methodology• Introduction - The

“staircase” is an easily visualized physical representation of the our source control methodology.

– The Goal: Climb the staircase.

– The Catch: The staircase is always under construction.

Page 50: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 50

The Staircase Methodology• A staircase provides an

incremental path from point A to point B.– Each increment, or step, is

a visible physical target.

– The increments are a constant; they remain in place before, during, and after use.

– Gaps between Increments are measurable.

Page 51: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 51

The Staircase Methodology• Measurable

increments allow for accurate planning.

• Accurate planning is key if deadlines are to be met and resources accurately allocated.

Page 52: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 52

The Staircase Methodology• How does a

“Staircase” Apply to Development?– The staircase

represents an application.

– The Step represents a version of an application.

– The rise represents a measurable increment between versions.

Page 53: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 53

The Staircase Methodology

• The Developers both build the staircase, and climb the steps.

• Steps can be added to a staircase without effecting current climbers.

Page 54: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 54

The Staircase Methodology

• Managing Business Unit Applications– Each Can Have Only One Revision

Per System – Each Has a Staircase – Each Has a Versioning Scheme– Each Version Has Release Notes

Page 55: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 55

The Staircase Methodology• Managing Common Components

– Support Other Applications As Customers– Each Can Have Multiple Revisions on One

System – Each Has a Staircase– Each Has a Versioning Scheme– Each Version Has Release Notes

Page 56: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 56

The Staircase Methodology

• Managing Third Party Applications– Support Other Applications As Customers– Can Have Only One Revision on a

System– Must Be Compatible With All Applications

on the on the Laptop at the Time of Their Deployment

– Each Has a Staircase– Each Has a Versioning Scheme– Each Version Has Release Notes

Page 57: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 57

The Staircase Methodology

• Applying the Staircase Practically:– What happens when Wigits 1.0

requires resources from common source?

Page 58: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 58

The Staircase Methodology• Practical

Application: – A step is a repeatable

version of an application.

– The Wigits team will choose a version of the Common Source to reference, in this case 1.2.

– The chosen version of Common Source is a fixed reproducible reference point.

Page 59: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 59

The Staircase Methodology

• What happens when things go wrong with a step? There are three possible situations:– The step is not in use, and may be fixed with no

impact.– The step is in use, and the user can climb to the

next step.

– The step is in use, and the user can not climb to the next step.

Page 60: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 60

The Staircase Methodology• The step is not in use, and may be

fixed with no impact.– The step is replaced, and the old one

removed from the staircase for safety. Climbers below are routed to the new step.

• The step is in use, and the user can climb to the next step.– The user climbs to the next step and

climbers below are notified to skip the broken step.

Page 61: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 61

The Staircase Methodology

• The step is in use, and the user can not climb to the next step.– A step in between the broken step and the

next step must be built to move the climber to safety. The source control term for this is “branching.”

Page 62: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 62

The Staircase Methodology

• Branching occurs when there is an enhancement or bug in a fixed version.– A new step is created

between existing steps.– Application teams may

choose to use this step or skip it as they can any other step.

Page 63: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 63

The Staircase Methodology

• Branching should be used sparingly. The cost can be high. Branching can:– Trigger duplicate bug &

enhancement fixes.

– Impede historical version tracking if not handled carefully.

– Result in rogue applications that are difficult to route back towards the trunk.

Page 64: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 64

The Staircase Methodology

• Key Items to Remember When Fixing Steps– Notify stair climbers of the repairs in progress.

– Notify stair climbers of any available detours.

– Notify stair climbers upon repair completion.– Check the other steps above and below the

broken step for the same problem.– Documentation– Release Notes

Page 65: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 65

Part V

Supporting Directory Structure

Page 66: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 66

Supporting Directory Structure

• Applying the Staircase to a Directory Structure– Each Staircase Gets a Directory

• Each Step Gets a Subdirectory• Each Rise Gets a Release Notes Document

W i g i t s 1 . 0W i g i t s 1 . 1W i g i t s 1 . 2W i g i t s 1 . 3W i g i t s 1 . 4

W i g i t s

Page 67: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 67

Supporting Directory Structure

• Applying the Staircase to a Directory Structure– One Directory Per Application

• One Sub-Directory Per Version

• One Document Per Version

W i g i t s 1 . 0W i g i t s 1 . 1W i g i t s 1 . 2W i g i t s 1 . 3W i g i t s 1 . 4

W i g i t s

Page 68: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 68

Supporting Directory Structure

• All applications exist with this directory structure• Applications can reference any version of any

other application to obtain required resources

W i g i t s 1 . 0W i g i t s 1 . 1W i g i t s 1 . 2W i g i t s 1 . 3W i g i t s 1 . 4

W i g i t s

C o m m o n 1 . 0C o m m o n 1 . 3C o m m o n 1 . 5 . 1C o m m o n 1 . 6C o m m o n 1 . 7

W i g i t s

Page 69: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 69

Supporting Directory Structure

• Example Workstation Directory Structure

D e v e l o p e r s P C o r H o m e D i r e c t o r y

C o m m o n S o u r c eW i g i t sF i g i t s

P B 5 D E V

C o m m o n S o u r c eW i g i t sF i g i t s

P B 5 S N A P S H O T

P B 5 W O R K I N G

Page 70: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 70

Supporting Directory Structure

• Example Server Directory Structure

P V C S S e r v e r

C o m m o n S o u r c eW i g i t sF i g i t s

P B 5 D E V

C o m m o n S o u r c eW i g i t sF i g i t s

P B 5 U N I T

C o m m o n S o u r c eW i g i t sF i g i t s

P R O M O T E

S O U R C E

Page 71: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 71

Part VI

Conclusion

Page 72: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 72

Conclusion

• SCM Implementation Goal Review– Established Clear & Measurable Increments

• The “Staircase” Methodology• Release Documents

– Provided Reliable Repeatable Releases• PVCS Version Manager• Version Labeling

– Isolated the Development Environments• PVCS Version Manager• Version Labeling• Promotion Modeling

Page 73: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 73

Conclusion• SCM Implementation Goal Review

– Accurately Versioned Shared Resources

• PVCS Version Manager• Release Documents

– Provided Support Structure Throughout the Software Life Cycle

• The “Staircase” Methodology• Reliable Repeatable Releases • Version Labeling• Promotion Modeling

Page 74: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 74

Conclusion

• SCM Implementation Goal Review – Provided Consistent Directory

Structures• The “Staircase” Methodology• Reliable Repeatable Releases• Version Labeling• Promotion Modeling• Distinct Directory Names

Page 75: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 75

Conclusion

• Cost Benefit Analysis - The Costs– Increased Load Common Objects

Team• Must Support Multiple Releases

• Must Handle Branching and the Resulting Duplicate Bug Fixes & Enhancements

– Increased Configuration Management Effort

• Support Two-Tiered Archive

• Physical Promotions

Page 76: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 76

Conclusion

• Cost Benefit Analysis - The Benefits:

– Fixed versions are not impacted by the requirements of other applications.

– The Project Managers can plan based on measurable increments.

– The Common Source team can continue development and build new top steps without impacting existing steps.

Page 77: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 77

Conclusion

• Cost Benefit Analysis - The Benefits:– Assurance that the correct versions are

tested and deployed.– The advantage of Common Components

without the disadvantage of being chained to the schedules of other teams.

– Provides the option of branching.

Page 78: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 78

Conclusion• Bottom Line:

– By Increasing The Load The Common Objects and Configuration Management Teams, We Decreased The Load on 16 Business Unit Application Teams.

Page 79: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 79

Conclusion

• Closing– Source control can be successfully

implemented for PowerBuilder Projects.

– Source control can be an invaluable part of the development infrastructure that reduces overall development costs.

– Total commitment to success is required, without it, your source control effort will fail.

Page 80: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 80

Conclusion• Closing - Total Commitment Includes:

– An Individual Dedicated to Source Control– Support of Project Managers– Support of Management– Source Control Training for All

Development Team Members & Management

– Policing Yourself: Strict Enforcement of Source Control Procedures for All Team Members and Management With No Exceptions

Page 81: CM10.2 Power Builder Source Control

Prepared by Eric Saperstein 81

Open Floor

Eric Saperstein

Contact Number: (908) 253-1881

Email: [email protected]

Thank you!