Title: Software Customization and the Need For Version Control
1Software Customization and the Need For Version
Control
By David Langschied
2ABOUT INERGY
- INERGY AUTOMOTIVE SYSTEMS WAS FOUNDED AS A JOINT
VENTURE BETWEEN SOLVAY AND PLASTIC OMNIUM IN
EUROPE - THE NEW COMPANY CONSOLIDATED THE BLOW MOLDED FUEL
SYSTEM MANUFACTURING OF BOTH COMPANIES - INERGY HAS OVER 20 FACILITIES ON 6 CONTINENTS
- INERGY AUTOMOTIVE SERVICES A WIDE CUSTOMER BASE
3ABOUT INERGY - AMERICAS
12/5/2020
- INERGY AUTOMOTIVE SYSTEMS AMERICAS HEADQUARTERS
IS IN LOCATED TROY MICHIGAN - THE AMERICAS TEAM HAS PLANTS IN THE US, MEXICO,
BRAZIL AND AREGENTINA - THE US AND MEXICO FACILITIES OPERATE WITH QAD
Eb2.1 AS THEIR ERP SYSTEM IN A MULTI-DOMAIN
ENVIRONMENT
3
4ABOUT THE PRESENTER
12/5/2020
- DAVID LANGSCHIED
- EDUCATION
- MICHIGAN TECHNOLOGICAL UNIVERSITY SCIENTIFIC
AND TECHNICAL COMMUNICATIONS - WORK EXPERIENCE
- 8 YEARS AS AN ENVIRONMENTAL CHEMIST
- SETUP LOCAL AREA NETWORK IN 1986
- DEVELOPED LABORATORY INFORMATION MANAGEMENT
SYSTEM (LIMS) IN 1988 - PROGRESS DBA SINCE 1995
- CONSULTANT SINCE 1999
- PERSONAL
- MARRIED JILL
- CHILDREN MATTHEW 22 LAUREN 13
- RESIDENCE ROSEVILLE
- BOWLED TWO 300 GAMES AND THREE 800 SERIES
4
5BACKGROUND
- WHY WAS VERSION CONTROL AN ISSUE FOR INERGY?
- MOVEMENT OF DEVELOPERS THROUGH THE COMPANY LEFT A
POOR RECORD OF CHANGES TO CODE - AUDITING OF CODE PROMOTION FROM DEVELOPEMNT TO
PRODUCTION WAS NOT POSSIBLE - INEFFECTIVE TO ROLL BACK FROM CHANGES IN CODE OR
DATABASES - UNEXPECTED ISSUES WITH INCORRECT CODE BEING
COMPILED DURING UPGRADE FROM eB TO eB2.1 - INCONSISTENCIES BETWEEN CODE COMPILED IN
DIFFERENT LANGUAGES
6ENVIRONMENT TO BE CONTROLLED
12/5/2020
- RED HAT LINUX 2.3 AS
- CRON JOBS
- PROGRESS 9.1D
- BATCH JOBS
- DATABASE ADMINISTRATION
- Custom Database
- Reporting Database
-
- QAD Eb2.1 SP4
- BATCH JOBS
- QAD SOURCE (UNENCRYPTED)
- QAD CUSTOMIZATIONS
- EDI MAPS
- EDI FUNCTIONS
- MLS 11
- BATCH JOBS
6
7VERSION CONTROL OPTIONS
12/5/2020
- LOCAL (SERVER BASED LINUX)
- SOURCE CODE CONTROL SYSTEM (SCCS)
- REVISION CONTROL SYSTEM (RCS)
- DISTRIBUTED (INDIVIDUAL REPOSITORIES WITH SYNC
CAPABILITIES) - AEGIS
- MERCURIAL
- CLIENT-SERVER (CLIENT LOGIN TO SERVER
APPLICATION) - VISUAL SOURCESAFE
- ROUNDTABLE
7
8LOCAL VERSION CONTROL
12/5/2020
-
- SOURCE CODE CONTROL SYSTEM
- Based on interleaved deltas, can construct
versions as arbitrary sets of revisions. - Cumbersome and not interface driven
- No database control
- REVISION CONTROL SYSTEM (RCS)
- Features separate backward deltas for faster
access to the trunk tip compared to SCCS and an
improved user interface, at the cost of slow
branch tip access and missing support for
included/excluded deltas. - Still no interface or database control
8
9DISTRIBUTED VERSION CONTROL
12/5/2020
-
- AEGIS
- Supports a strongly test-driven development
workflow on top of any number of different
underlying revision control systems, such as RCS
or SCCS. - MERCURIAL
- Features separate backward deltas for faster
access to the trunk tip compared to SCCS and an
improved user interface, at the cost of slow
branch tip access and missing support for
included/excluded deltas. - Still no interface or database control
9
10CLIENT-SERVER VERSION CONTROL
12/5/2020
- VISUAL SOURCESAFE
- Microsoft product that allows for flexibility
to control all files types. - No database control.
- Pricey for what you get.
- No longer distributed by Microsoft.
- ROUNDTABLE (TUGBOAT)
- Control of code of all types.
- Progress based, so code can be compiled and used
right from application. - Database control is excellent.
- Character and GUI options (though character is to
be retired). - Very reasonably priced.
- Selected as the software control application.
10
11DEVELOPMENT STRATEGY
12/5/2020
DEVELOPMENT PROCESS FLOW
TEST
DEVELOPMENT
PRODUCTION
- Least Stable Environment - Newest
Codebase -Unit Testing - Poor Data - Highest Rate
of Change
- Moderately Stable - Regression Testing - System
Flowthrough Testing - Good Data - Slower Rate of
Change
- Very Stable - Stress Testing - Live Testing -
Real-World Data - Scheduled Changes
11
12ENVIRONMENT SETUP
12/5/2020
- EXISTING SYTEM WAS TEST AND PRODUCTION ONLY
- NEW SERVER BUILT AS A DEVELOPMENT SERVER
- DEVELOPMENT SERVER WAS A COPY OF PRODUCTION
- ROUNDTABLE APPLICATION LOADED ON DEVELOPMENT
- ROUNDTABLE DATABASE CREATED ON THE PRODUCTION
ENVIRONMENT FOR BACKUP AND LOAD PURPOSES - SETUP A DEVELOPMENT USER (RTBDEV) AND AN
ADMINISTRATION USER (RTBADMIN) ON LINUX - SETUP SCP CONNECTIVITY BETWEEN DEVELOPMENT AND
TEST/PRODUCTION
12
13ROUNDTABLE CONSTRUCTION
12/5/2020
- CREATE PRODUCTS AND PRODUCT MODULES
- CREATE WORKSPACE MODULES
EAM PRO
EDI QAD
Linux WIN
Custom Lscript pstruct
Efunc mpf qpf
Database mproc qproc
Emap mscript qscript
html play scource
lcron pscript vscript
13
14ROUNDTABLE CONSTRUCTION
12/5/2020
- CREATE CODE SUBTYPES
- CREATE WORKSPACES
All Parameter vscript
Cron Procedure Window
Environment Script
Function Structure
Html Trigger
include Validation
SOURCE TEST
DEVELOPMENT PRODUCTION
14
15ROUNDTABLE CONSTRUCTION
12/5/2020
- CREATE SECURITY GROUPS
- CREATE USERS
- ASSIGN USERS TO WORKSPACE AND GROUP
- ASSIGN WORKSPACE SOURCES FOR EACH PRODUCT
- LOAD QAD SOURCE CODE AND DATABASE OBJECTS INTO
THE SOURCE WORKSPACE - RELEASE SOURCE WORKSPACE OBJECTS AND IMPORT THEM
INTO DEVELOPMENT/TEST/PRODUCTION - LOAD INERGY CUSTOM CODE AND DATABASE OBJECTS FROM
PRODUCTION INTO THE DEVELOPMENT WORKSPACE - RELEASE DEVELOPMENT WORKSPACE OBJECTS AND IMPORT
THEM TO TEST/PRODUCTION - UPDATE INERGY CUSTOM CODE AND DATABASE OBJECTS
FROM TEST INTO THE DEVELOPMENT WORKSPACE
RTBDEV RTBADMIN
15
16ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- CREATE PRODUCTS AND ASSOCIATED MODULES
16
17ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
17
18ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
18
19ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
19
20ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
20
21ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
21
22ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- ASSIGN USER TO WORKSPACE AND GROUP
22
23ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
23
24ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- LOAD DATABASES QADS HELP DATABASE
- OPEN A TASK TO BEGIN LOADING DATABASE OBJECTS
24
25ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- LOAD DATABASES QADS HELP DATABASE
- ADD PDBASE OBJECT
25
26ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- LOAD DATABASES QADS HELP DATABASE
- UPDATE SCHEMA
26
27ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- LOAD DATABASES QADS HELP DATABASE
- UPDATE SCHEMA
27
28ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- LOAD DATABASES QADS HELP DATABASE
- CREATE A RELEASE OF SCHEMA OBJECTS
28
29ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- LOAD INERGY CUSTOM CODE
- FROM CUSTOM MODULE, PERFORM MODULE LOAD
- SCAN FOR CODE AND SELECT WHAT TO LOAD
29
30ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- LOAD INERGY CUSTOM CODE
- LOAD SELECTED CODE
30
31ROUNDTABLE SETUP AND CONFIGURATION
12/5/2020
- LOAD INERGY CUSTOM CODE
- FROM CUSTOM MODULE, PERFORM MODULE LOAD
- SCAN FOR CODE AND SELECT WHAT TO LOAD
31
32MOVING FORWARD
12/5/2020
- FUTURE OF DEVELOPMENT AT INERGY
- ROUNDTABLE GUI INTERFACE (2011)
- QAD .NETUI (2011)
- OPENEDGE ARCHITECT WITH ROUNDTABLE ADD-ON (2012)
- QEXTEND (2012)
- QAD APPLICATION UPGRADE (2012)
32
33QUESTIONS