SlideShare a Scribd company logo
1 of 81
SESSION: ENTER SESSION
SPEAKER: ENTER SPEAKER
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
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
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
Prepared by Eric Saperstein 5
Agenda
• Part II - Source Control
Implementation Goals
– Source Control Implementation
Goals
– Questions & Answers
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
Prepared by Eric Saperstein 7
Agenda
• Part IV - The Staircase
Methodology
– Introduction and Objective
– The Staircase Methodology
– Questions & Answers
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
Prepared by Eric Saperstein 9
Agenda
• Part VI - Conclusion
– SCM Implementation Goal Review
– Cost/Benefit Analysis
– Open Issues
– Closing - Total Commitment
– Open Floor
Prepared by Eric Saperstein 10
Part I
Sample Environment
Overview
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.
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
Prepared by Eric Saperstein 13
SOI Project Overview
• Supported Life Cycle Stages
– Design
– Development
– Unit Testing
– System Testing
– Production Pilot
– Production
Prepared by Eric Saperstein 14
SOI Project Overview
• Multiple Production Environments
– Various Sales Office Models
– Various Sales Force Rep Profiles
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
Prepared by Eric Saperstein 16
SOI Supported Platforms
• Servers
– Windows NT Server Version 4.0
• Development Systems
– Windows 95
– Windows NT 4.0
Prepared by Eric Saperstein 17
SOI Distributed
Development
• Development Sites
– Bridgewater, NJ
– Denver, CO
– Warwick, RI
– Telecommuters - 3 Team Members
– Third Party Sites
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
Prepared by Eric Saperstein 19
SOI Source Control
Tools
• Current
– PVCS Version Manager
• Version 6.0.10
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
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
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
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
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
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
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.
Prepared by Eric Saperstein 27
Pause for Questions &
Answers
Prepared by Eric Saperstein 28
Part II
Source Control
Implementation Goals
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.
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.
Prepared by Eric Saperstein 31
Source Control
Implementation Goals
• Consistent Directory Structures.
• Developers must understand the
directory structures and where to locate
resources.
Prepared by Eric Saperstein 32
Part III
Two-Tiered Archive
Structure
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.
Prepared by Eric Saperstein 34
Generic Promotion Model
• Basic Logical Promotion Model
– Follows the “Staircase” Approach.
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
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
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
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
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
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
Prepared by Eric Saperstein 41
PowerBuilder
Source 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)
Prepared by Eric Saperstein 42
PowerBuilder
Source 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.
Prepared by Eric Saperstein 43
PowerBuilder
Source 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
Prepared by Eric Saperstein 44
PowerBuilder
Source 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
Prepared by Eric Saperstein 45
PowerBuilder
Source Control Model
• Advantages of Two Tier Source
Control
– One Source Library for Repeatable
Releases
– Object Level Control & History
– Promotion Modeling
– Support for Branching
Prepared by Eric Saperstein 46
PowerBuilder
Source 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
Prepared by Eric Saperstein 47
Part IV
The Staircase
Methodology
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.
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.
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.
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.
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.
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.
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
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
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
Prepared by Eric Saperstein 57
The Staircase Methodology
• Applying the Staircase Practically:
– What happens when Wigits 1.0
requires resources from common
source?
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.
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.
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.
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.”
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.
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.
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
Prepared by Eric Saperstein 65
Part V
Supporting Directory Structure
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 ig it s 1 . 0
W ig it s 1 . 1
W ig it s 1 . 2
W ig it s 1 . 3
W ig it s 1 . 4
W ig it s
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 . 0
W i g i t s 1 . 1
W i g i t s 1 . 2
W i g i t s 1 . 3
W i g i t s 1 . 4
W i g i t s
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 ig it s 1 . 0
W ig it s 1 . 1
W ig it s 1 . 2
W ig it s 1 . 3
W ig it s 1 . 4
W ig it s
C o m m o n 1 . 0
C o m m o n 1 . 3
C o m m o n 1 . 5 . 1
C o m m o n 1 . 6
C o m m o n 1 . 7
W ig it s
Prepared by Eric Saperstein 69
Supporting Directory
Structure
• Example Workstation Directory
StructureD e v e lo p e r s P C o r H o m e D ir e c t o r y
C o m m o n S o u r c e
W i g i t s
F i g i t s
P B 5 D E V
C o m m o n S o u r c e
W i g i t s
F i g i t s
P B 5 S N A P S H O T
P B 5 W O R K IN G
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 e
W i g i t s
F i g i t s
P B 5 D E V
C o m m o n S o u r c e
W i g i t s
F i g i t s
P B 5 U N IT
C o m m o n S o u r c e
W i g i t s
F i g i t s
P R O M O T E
S O U R C E
Prepared by Eric Saperstein 71
Part VI
Conclusion
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
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
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
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
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.
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.
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.
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.
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
Prepared by Eric Saperstein 81
Open Floor
Eric Saperstein
Contact Number: (908) 253-1881
Email: esaperstein@metlife.com
Thank you!

More Related Content

What's hot

Embracing Git and Distributed Teams
Embracing Git and Distributed TeamsEmbracing Git and Distributed Teams
Embracing Git and Distributed TeamsPerforce
 
Year in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product UpdatesYear in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product UpdatesPerforce
 
FUG Agile software engineering practices
FUG Agile software engineering practicesFUG Agile software engineering practices
FUG Agile software engineering practicesSerena Software
 
How Mature is Your Infrastructure?
How Mature is Your Infrastructure?How Mature is Your Infrastructure?
How Mature is Your Infrastructure?Gary Stafford
 
Introducing Serena Dimensions CM 14, Discussion and product demonstration (We...
Introducing Serena Dimensions CM 14, Discussion and product demonstration (We...Introducing Serena Dimensions CM 14, Discussion and product demonstration (We...
Introducing Serena Dimensions CM 14, Discussion and product demonstration (We...Serena Software
 
Unlocking Faster Product Development Cycles
Unlocking Faster Product Development CyclesUnlocking Faster Product Development Cycles
Unlocking Faster Product Development CyclesPerforce
 
Challenges Scaling DevOps
Challenges Scaling DevOpsChallenges Scaling DevOps
Challenges Scaling DevOpsRachel Maxwell
 
Pain points of agile development
Pain points of agile developmentPain points of agile development
Pain points of agile developmentPerforce
 
FlexDeploy Product Technical Overview
FlexDeploy Product Technical OverviewFlexDeploy Product Technical Overview
FlexDeploy Product Technical OverviewDalibor Blazevic
 
Deploying and releasing applications
Deploying and releasing applicationsDeploying and releasing applications
Deploying and releasing applicationsMa Xuebin
 
8 implementation notes
8 implementation notes8 implementation notes
8 implementation notesjavadch
 
Kovair Migration Solution for ALM Tools
Kovair Migration Solution for ALM ToolsKovair Migration Solution for ALM Tools
Kovair Migration Solution for ALM ToolsKovair
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk NewsESUG
 
ClearCase Escape Plan
ClearCase Escape PlanClearCase Escape Plan
ClearCase Escape PlanPerforce
 
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API GatewaysDevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API GatewaysDaniel Bryant
 
NI Week 2019 Overview
NI Week 2019 OverviewNI Week 2019 Overview
NI Week 2019 OverviewDMC, Inc.
 

What's hot (20)

Embracing Git and Distributed Teams
Embracing Git and Distributed TeamsEmbracing Git and Distributed Teams
Embracing Git and Distributed Teams
 
Year in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product UpdatesYear in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product Updates
 
Walter_resume_PTM
Walter_resume_PTMWalter_resume_PTM
Walter_resume_PTM
 
FUG Agile software engineering practices
FUG Agile software engineering practicesFUG Agile software engineering practices
FUG Agile software engineering practices
 
How Mature is Your Infrastructure?
How Mature is Your Infrastructure?How Mature is Your Infrastructure?
How Mature is Your Infrastructure?
 
Introducing Serena Dimensions CM 14, Discussion and product demonstration (We...
Introducing Serena Dimensions CM 14, Discussion and product demonstration (We...Introducing Serena Dimensions CM 14, Discussion and product demonstration (We...
Introducing Serena Dimensions CM 14, Discussion and product demonstration (We...
 
Unlocking Faster Product Development Cycles
Unlocking Faster Product Development CyclesUnlocking Faster Product Development Cycles
Unlocking Faster Product Development Cycles
 
Challenges Scaling DevOps
Challenges Scaling DevOpsChallenges Scaling DevOps
Challenges Scaling DevOps
 
Pain points of agile development
Pain points of agile developmentPain points of agile development
Pain points of agile development
 
FlexDeploy Product Technical Overview
FlexDeploy Product Technical OverviewFlexDeploy Product Technical Overview
FlexDeploy Product Technical Overview
 
Deploying and releasing applications
Deploying and releasing applicationsDeploying and releasing applications
Deploying and releasing applications
 
8 implementation notes
8 implementation notes8 implementation notes
8 implementation notes
 
ENVI/IDL for HDF
ENVI/IDL for HDFENVI/IDL for HDF
ENVI/IDL for HDF
 
Kovair Migration Solution for ALM Tools
Kovair Migration Solution for ALM ToolsKovair Migration Solution for ALM Tools
Kovair Migration Solution for ALM Tools
 
Vishwanarayan Sriganesh (1)
Vishwanarayan  Sriganesh (1)Vishwanarayan  Sriganesh (1)
Vishwanarayan Sriganesh (1)
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk News
 
What's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode DeployWhat's New with IBM UrbanCode Deploy
What's New with IBM UrbanCode Deploy
 
ClearCase Escape Plan
ClearCase Escape PlanClearCase Escape Plan
ClearCase Escape Plan
 
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API GatewaysDevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
 
NI Week 2019 Overview
NI Week 2019 OverviewNI Week 2019 Overview
NI Week 2019 Overview
 

Viewers also liked

Unit Testing
Unit TestingUnit Testing
Unit TestingDotitude
 
Overcoming The Impedance Mismatch Between Source Code And Architecture
Overcoming The Impedance Mismatch Between Source Code And ArchitectureOvercoming The Impedance Mismatch Between Source Code And Architecture
Overcoming The Impedance Mismatch Between Source Code And ArchitecturePeter Friese
 
Revision control system (RCS)
Revision control system (RCS)Revision control system (RCS)
Revision control system (RCS)Abu Sufian
 
柏瑞週報20160301
柏瑞週報20160301柏瑞週報20160301
柏瑞週報20160301Pinebridge
 
Source code management
Source code managementSource code management
Source code managementWidoyo PH
 
Kewirausahaan
KewirausahaanKewirausahaan
KewirausahaanWidoyo PH
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UMLJürgen Mutschall
 
Source Code Control System (SCCS)
Source Code Control System (SCCS)Source Code Control System (SCCS)
Source Code Control System (SCCS)Saurabh Kumar
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLelliando dias
 
Version Control System
Version Control SystemVersion Control System
Version Control SystemTechAhead
 
Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2wahab13
 
JUnit- A Unit Testing Framework
JUnit- A Unit Testing FrameworkJUnit- A Unit Testing Framework
JUnit- A Unit Testing FrameworkOnkar Deshpande
 
Software (requirement) analysis using uml
Software (requirement) analysis using umlSoftware (requirement) analysis using uml
Software (requirement) analysis using umlDhiraj Shetty
 
Personas, Scenarios, User Stories, Use Cases (IxDworks.com)
Personas, Scenarios, User Stories, Use Cases (IxDworks.com)Personas, Scenarios, User Stories, Use Cases (IxDworks.com)
Personas, Scenarios, User Stories, Use Cases (IxDworks.com)Valeria Gasik
 
UML Case Tools
UML Case ToolsUML Case Tools
UML Case ToolsAshesh R
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
UML- Unified Modeling Language
UML- Unified Modeling LanguageUML- Unified Modeling Language
UML- Unified Modeling LanguageShahzad
 

Viewers also liked (20)

Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Overcoming The Impedance Mismatch Between Source Code And Architecture
Overcoming The Impedance Mismatch Between Source Code And ArchitectureOvercoming The Impedance Mismatch Between Source Code And Architecture
Overcoming The Impedance Mismatch Between Source Code And Architecture
 
Revision control system (RCS)
Revision control system (RCS)Revision control system (RCS)
Revision control system (RCS)
 
柏瑞週報20160301
柏瑞週報20160301柏瑞週報20160301
柏瑞週報20160301
 
Source code management
Source code managementSource code management
Source code management
 
Kewirausahaan
KewirausahaanKewirausahaan
Kewirausahaan
 
Ws002 use cases
Ws002 use casesWs002 use cases
Ws002 use cases
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UML
 
Source Code Control System (SCCS)
Source Code Control System (SCCS)Source Code Control System (SCCS)
Source Code Control System (SCCS)
 
ICSM08a.ppt
ICSM08a.pptICSM08a.ppt
ICSM08a.ppt
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
 
Version Control System
Version Control SystemVersion Control System
Version Control System
 
Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2
 
JUnit- A Unit Testing Framework
JUnit- A Unit Testing FrameworkJUnit- A Unit Testing Framework
JUnit- A Unit Testing Framework
 
Software (requirement) analysis using uml
Software (requirement) analysis using umlSoftware (requirement) analysis using uml
Software (requirement) analysis using uml
 
Personas, Scenarios, User Stories, Use Cases (IxDworks.com)
Personas, Scenarios, User Stories, Use Cases (IxDworks.com)Personas, Scenarios, User Stories, Use Cases (IxDworks.com)
Personas, Scenarios, User Stories, Use Cases (IxDworks.com)
 
UML Case Tools
UML Case ToolsUML Case Tools
UML Case Tools
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Types of UML diagrams
Types of UML diagramsTypes of UML diagrams
Types of UML diagrams
 
UML- Unified Modeling Language
UML- Unified Modeling LanguageUML- Unified Modeling Language
UML- Unified Modeling Language
 

Similar to CM10.2 Power Builder Source Control

Comp8 unit5 lecture_slides
Comp8 unit5 lecture_slidesComp8 unit5 lecture_slides
Comp8 unit5 lecture_slidesCMDLMS
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptxProvatMajhi
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.pptADARSHN40
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineeringmoduledesign
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor Nazmy
 
Software engineering Satish.pptx
Software engineering Satish.pptxSoftware engineering Satish.pptx
Software engineering Satish.pptxProvatMajhi
 
Broadcast Music Inc - Scaling Up, Doing More, Having More Fun!
Broadcast Music Inc - Scaling Up, Doing More, Having More Fun!Broadcast Music Inc - Scaling Up, Doing More, Having More Fun!
Broadcast Music Inc - Scaling Up, Doing More, Having More Fun!ghodgkinson
 
Lesson 2 software processes
Lesson 2   software processesLesson 2   software processes
Lesson 2 software processesanointon
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptxJAGADEESWARIS6
 
SE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.pptSE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.pptMahiDivya
 
DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?Marc Hornbeek
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAdam Getchell
 
software development life cycle
software development life cyclesoftware development life cycle
software development life cycleAnanthachethan
 

Similar to CM10.2 Power Builder Source Control (20)

Comp8 unit5 lecture_slides
Comp8 unit5 lecture_slidesComp8 unit5 lecture_slides
Comp8 unit5 lecture_slides
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptx
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
 
Day 1.pptx
Day 1.pptxDay 1.pptx
Day 1.pptx
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Rup
RupRup
Rup
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Software engineering Satish.pptx
Software engineering Satish.pptxSoftware engineering Satish.pptx
Software engineering Satish.pptx
 
Broadcast Music Inc - Scaling Up, Doing More, Having More Fun!
Broadcast Music Inc - Scaling Up, Doing More, Having More Fun!Broadcast Music Inc - Scaling Up, Doing More, Having More Fun!
Broadcast Music Inc - Scaling Up, Doing More, Having More Fun!
 
Unified process Model
Unified process ModelUnified process Model
Unified process Model
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 
Soa 1 7.ppsx
Soa 1 7.ppsxSoa 1 7.ppsx
Soa 1 7.ppsx
 
Lesson 2 software processes
Lesson 2   software processesLesson 2   software processes
Lesson 2 software processes
 
Chapter 3.pptx
Chapter 3.pptxChapter 3.pptx
Chapter 3.pptx
 
Software engineering.pptx
Software engineering.pptxSoftware engineering.pptx
Software engineering.pptx
 
SE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.pptSE 1a SDLC Session BCU.ppt
SE 1a SDLC Session BCU.ppt
 
DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?DevOps Evolution - The Next Generation ?
DevOps Evolution - The Next Generation ?
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
software development life cycle
software development life cyclesoftware development life cycle
software development life cycle
 

More from Eric Saperstein

Artisans quarterly review_vol6_issue3_2013
Artisans quarterly review_vol6_issue3_2013Artisans quarterly review_vol6_issue3_2013
Artisans quarterly review_vol6_issue3_2013Eric Saperstein
 
Artisans quarterly review_vol6_issue2_2013
Artisans quarterly review_vol6_issue2_2013Artisans quarterly review_vol6_issue2_2013
Artisans quarterly review_vol6_issue2_2013Eric Saperstein
 
Artisans Quarterly Review Volume 5 Issue 4 2012
Artisans Quarterly Review Volume 5 Issue 4 2012Artisans Quarterly Review Volume 5 Issue 4 2012
Artisans Quarterly Review Volume 5 Issue 4 2012Eric Saperstein
 
Artisans Quarterly Review Volume 6 Issue 2 2013
Artisans Quarterly Review Volume 6 Issue 2 2013Artisans Quarterly Review Volume 6 Issue 2 2013
Artisans Quarterly Review Volume 6 Issue 2 2013Eric Saperstein
 
Artisans quarterly review_vol5_issue2_2012
Artisans quarterly review_vol5_issue2_2012Artisans quarterly review_vol5_issue2_2012
Artisans quarterly review_vol5_issue2_2012Eric Saperstein
 
Artisans quarterly review_vol2_issue2_2009
Artisans quarterly review_vol2_issue2_2009Artisans quarterly review_vol2_issue2_2009
Artisans quarterly review_vol2_issue2_2009Eric Saperstein
 

More from Eric Saperstein (7)

IT Interview Summary
IT Interview SummaryIT Interview Summary
IT Interview Summary
 
Artisans quarterly review_vol6_issue3_2013
Artisans quarterly review_vol6_issue3_2013Artisans quarterly review_vol6_issue3_2013
Artisans quarterly review_vol6_issue3_2013
 
Artisans quarterly review_vol6_issue2_2013
Artisans quarterly review_vol6_issue2_2013Artisans quarterly review_vol6_issue2_2013
Artisans quarterly review_vol6_issue2_2013
 
Artisans Quarterly Review Volume 5 Issue 4 2012
Artisans Quarterly Review Volume 5 Issue 4 2012Artisans Quarterly Review Volume 5 Issue 4 2012
Artisans Quarterly Review Volume 5 Issue 4 2012
 
Artisans Quarterly Review Volume 6 Issue 2 2013
Artisans Quarterly Review Volume 6 Issue 2 2013Artisans Quarterly Review Volume 6 Issue 2 2013
Artisans Quarterly Review Volume 6 Issue 2 2013
 
Artisans quarterly review_vol5_issue2_2012
Artisans quarterly review_vol5_issue2_2012Artisans quarterly review_vol5_issue2_2012
Artisans quarterly review_vol5_issue2_2012
 
Artisans quarterly review_vol2_issue2_2009
Artisans quarterly review_vol2_issue2_2009Artisans quarterly review_vol2_issue2_2009
Artisans quarterly review_vol2_issue2_2009
 

CM10.2 Power Builder Source Control

  • 2. 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
  • 3. 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
  • 4. 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
  • 5. Prepared by Eric Saperstein 5 Agenda • Part II - Source Control Implementation Goals – Source Control Implementation Goals – Questions & Answers
  • 6. 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
  • 7. Prepared by Eric Saperstein 7 Agenda • Part IV - The Staircase Methodology – Introduction and Objective – The Staircase Methodology – Questions & Answers
  • 8. 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
  • 9. Prepared by Eric Saperstein 9 Agenda • Part VI - Conclusion – SCM Implementation Goal Review – Cost/Benefit Analysis – Open Issues – Closing - Total Commitment – Open Floor
  • 10. Prepared by Eric Saperstein 10 Part I Sample Environment Overview
  • 11. 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.
  • 12. 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
  • 13. Prepared by Eric Saperstein 13 SOI Project Overview • Supported Life Cycle Stages – Design – Development – Unit Testing – System Testing – Production Pilot – Production
  • 14. Prepared by Eric Saperstein 14 SOI Project Overview • Multiple Production Environments – Various Sales Office Models – Various Sales Force Rep Profiles
  • 15. 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
  • 16. Prepared by Eric Saperstein 16 SOI Supported Platforms • Servers – Windows NT Server Version 4.0 • Development Systems – Windows 95 – Windows NT 4.0
  • 17. Prepared by Eric Saperstein 17 SOI Distributed Development • Development Sites – Bridgewater, NJ – Denver, CO – Warwick, RI – Telecommuters - 3 Team Members – Third Party Sites
  • 18. 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
  • 19. Prepared by Eric Saperstein 19 SOI Source Control Tools • Current – PVCS Version Manager • Version 6.0.10
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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.
  • 27. Prepared by Eric Saperstein 27 Pause for Questions & Answers
  • 28. Prepared by Eric Saperstein 28 Part II Source Control Implementation Goals
  • 29. 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.
  • 30. 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.
  • 31. Prepared by Eric Saperstein 31 Source Control Implementation Goals • Consistent Directory Structures. • Developers must understand the directory structures and where to locate resources.
  • 32. Prepared by Eric Saperstein 32 Part III Two-Tiered Archive Structure
  • 33. 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.
  • 34. Prepared by Eric Saperstein 34 Generic Promotion Model • Basic Logical Promotion Model – Follows the “Staircase” Approach.
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. Prepared by Eric Saperstein 41 PowerBuilder Source 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)
  • 42. Prepared by Eric Saperstein 42 PowerBuilder Source 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.
  • 43. Prepared by Eric Saperstein 43 PowerBuilder Source 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
  • 44. Prepared by Eric Saperstein 44 PowerBuilder Source 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
  • 45. Prepared by Eric Saperstein 45 PowerBuilder Source Control Model • Advantages of Two Tier Source Control – One Source Library for Repeatable Releases – Object Level Control & History – Promotion Modeling – Support for Branching
  • 46. Prepared by Eric Saperstein 46 PowerBuilder Source 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
  • 47. Prepared by Eric Saperstein 47 Part IV The Staircase Methodology
  • 48. 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.
  • 49. 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.
  • 50. 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.
  • 51. 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.
  • 52. 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.
  • 53. 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.
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. Prepared by Eric Saperstein 57 The Staircase Methodology • Applying the Staircase Practically: – What happens when Wigits 1.0 requires resources from common source?
  • 58. 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.
  • 59. 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.
  • 60. 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.
  • 61. 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.”
  • 62. 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.
  • 63. 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.
  • 64. 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
  • 65. Prepared by Eric Saperstein 65 Part V Supporting Directory Structure
  • 66. 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 ig it s 1 . 0 W ig it s 1 . 1 W ig it s 1 . 2 W ig it s 1 . 3 W ig it s 1 . 4 W ig it s
  • 67. 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 . 0 W i g i t s 1 . 1 W i g i t s 1 . 2 W i g i t s 1 . 3 W i g i t s 1 . 4 W i g i t s
  • 68. 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 ig it s 1 . 0 W ig it s 1 . 1 W ig it s 1 . 2 W ig it s 1 . 3 W ig it s 1 . 4 W ig it s C o m m o n 1 . 0 C o m m o n 1 . 3 C o m m o n 1 . 5 . 1 C o m m o n 1 . 6 C o m m o n 1 . 7 W ig it s
  • 69. Prepared by Eric Saperstein 69 Supporting Directory Structure • Example Workstation Directory StructureD e v e lo p e r s P C o r H o m e D ir e c t o r y C o m m o n S o u r c e W i g i t s F i g i t s P B 5 D E V C o m m o n S o u r c e W i g i t s F i g i t s P B 5 S N A P S H O T P B 5 W O R K IN G
  • 70. 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 e W i g i t s F i g i t s P B 5 D E V C o m m o n S o u r c e W i g i t s F i g i t s P B 5 U N IT C o m m o n S o u r c e W i g i t s F i g i t s P R O M O T E S O U R C E
  • 71. Prepared by Eric Saperstein 71 Part VI Conclusion
  • 72. 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
  • 73. 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
  • 74. 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
  • 75. 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
  • 76. 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.
  • 77. 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.
  • 78. 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.
  • 79. 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.
  • 80. 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
  • 81. Prepared by Eric Saperstein 81 Open Floor Eric Saperstein Contact Number: (908) 253-1881 Email: esaperstein@metlife.com Thank you!