Offering Software Maintenanceas an Offshore Service
Keynote Address by
Harry M. SneedANECON GmbH, Wien
Universität Regensburg
24th International Conference on Software MaintenanceICSM 2008
Beijing, September 2008
Offering Software Maintenanceas an Offshore Service
1. What is Software Maintenance
2. The Legacy Software Trap
3. Rationale for outsourcing Maintenance
4. Negotiating a Service Level Agreement
5. Establishing a Maint. Infrastructure
6. Setting up a Maintenance Process
7. Automating the Maintenance Process
8. Servicing Multiple Customers
9. International Competition for OutsourcedSoftware Services
ICSM2008 Sneed-1
Maintenanceand
evolution
InitialDevelopment
usable?
outdated?
30%
70%
Grave
yes
no
Live Cycle of a Software Productaccording to N. Zwegintzov
ICSM2008 Sneed-21. What is Software Maintenance
Life Cycle of a Software Productaccording to Gerish Parikh
Birth Death
God of conservation
Reencarnation =Recycling
Development Redemption
God of creation
Brahmathe developer
God of re-use
Shivathe reengineer
Vishnuthe maintainer
Hindu teaching of the Holy Trinity
Evolution Conservation
ICSM2008 Sneed-31. What is Software Maintenance
CnceptionPhase
DevelopmentPhase
EvolutionPhase
ConservationPhase
Redem-ption
Phase
Time
Costs
Birth
Burial
Product Management
Corrections,changes,
Improvements,Enhancements
5%
10%
10%
20%
25%
40%
55%
25%
5%
5%
Corrections,Changes
Phase outDisplacement
FirstRelease
The Software Life Cycle Model
ICSM2008 Sneed-4
according to Bennett and Rajlik
1. What is Software Maintenance
Maintenance Activites
according to Lientz and Swanson
ICSM2008 Sneed-5
Enhancement Change
Perfection Stabilization
FunctionalEvolution
ProgressiveActivities
Stabilization ConservingActivities
1. What is Software Maintenance
The Legacy Software Trap
• Organization has lost the knowledgecontained in the application and youngdevelopers do not comprehend the code;
• Organization cannot afford to maintain theexisting systems and, at the same time,develop new ones;
• Organization has neither the capacity notthe funds to redevelop the software
• Scientific community has so far offered noreal solution to the problem.
ICSM2008 Sneed-62. The Legacy Software Trap
48 MillionStatements
80 MillionLOCs
20 %Assembler
20 %PL/I
10 %4GLs
30 %COBOL
10 %C++
10 %Java
Software Profile of a Financial Service Provider
Sneed-7
360Programmers
ICSM20082. The Legacy Software Trap
Metrics from the Legacy Code Base• 7,854 PLI Programs• 13,530 PLI Includes• 17,151 COBOL Programs• 24,712 COBOL Copies• 8,975 Assember Programs• 9,597 Assembler Macros• 3,077 Easytrieve Programs• 3,353 Pseudo Code Modules• 3,270 IMS Datenbanken• 4,416 DB2 Tables• 31,476 IMS-DC Maps• 22,090 JCL Procedures• 2,977 C++ Classes• 1,977 Java Classes
2. The Legacy Software Trap
+--------------------------------------------------------------+| C O D E Q U A N T I T Y M E T R I C S || Number of Sources analyzed =======> 93321 || Number of Source Lines in all =======> 70752999 || Number of Genuine Code Lines =======> 52048897 || Number of Comment Lines =======> 26349104 || S T R U C T U R A L Q U A N T I T Y M E T R I C S || Number of Modules =======> 33616 || Number of Copy/Includes =======> 430028 || Number of Entry Points =======> 102645 || Number of Exit Points =======> 209614 || Number of Sections/Procedures =======> 633900 || Number of Labels/Paragraphs/Code Blocks =======> 1365186 || Number of Reusable Code Blocks =======> 583818 || Number of Data Structures/Objects =======> 2098429 || Number of Reusable Data Objects =======> 778125 || P R O C E D U R A L Q U A N T I T Y M E T R I C S || Number of Statements =======> 42677337 || Number of Macro Statements =======> 591353 || Number of Procedural Statements =======> 22760888 || Number of Convertable Statements =======> 18913227 || Number of Input Operations =======> 88742 || Number of Output Operations =======> 266829 || Number of Foreign Modules called =======> 114236 || Number of Call Statements =======> 644132 || Number of Perform Statements =======> 1738020 || Number of Selections (If & Case) =======> 3567905 || Number of Loop Statements (Until/While) =======> 398877 || Number of GOTO Branches =======> 789364 || Number of all Control Statements =======> 7498184 || Number of Control Flow Branches =======> 7103089 || Number of Literals in Statements =======> 5362729 || Number of Constants in Statements =======> 4723285 || Number of Test Cases required =======> 1173467 || Number of Function-Points =======> 704918 |+--------------------------------------------------------------+
Sneed-8ICSM2008
009210 VERA. DGREORG009220 IF ANTWORT NOT = '1' PERFORM UPDGSEQ THRU EXDGSEQ DGREORG009230 GO TO AUS-VERA. DGREORG010010 IF ZSTORNO NOT = LOW-VALUE GO TO VERA-DSTNR. DGREORG010020 IF EDSTNR NOT = ZERO GO TO VERA-FEHLER. DGREORG010030 MOVE ESTORNO TO ZSTORNO. DGREORG010040 IF ESTORNO = HIGH-VALUE GO TO VERA-STORNO. DGREORG010050 IF EAUSL = SPACE GO TO VERA-AUSG. DGREORG IF EAUSL = '4' DGREORG010070 MOVE 'D1' TO ASART DGREORG010080 MOVE '05' TO AVSTR DGREORG010090 MOVE ZERO TO AUNR1 DGREORG010100 MOVE EUNR TO AUNR2 DGREORG010110 MOVE EAUSL TO AAUSL DGREORG010120 MOVE EGVTR TO AGVTR DGREORG010130 PERFORM UPHVBAND THRU EXHVBAND DGREORG010140 MOVE SPACE TO EAUSL DGREORG
1 GO TO VERA-AUSG. DGREORG
012190 VERA-DSTNR. DGREORG012200 IF EDSTNR = ZERO GO TO VERA-FEHLER. DGREORG012210 IF ZSTORNO = HIGH-VALUE ADD 1 TO RFANZ (5) DGREORG012220 GO TO AUS-VERA. DGREORG012230 IF ESTORNO = HIGH-VALUE ADD 1 TO RFANZ (5) DGREORG012240 GO TO AUS-VERA. DGREORG013010 VERA-AUSG. DGREORG013020 PERFORM UPDGSEQ THRU EXDGSEQ. DGREORG013030 AUS-VERA. DGREORG013040 PERFORM UPDGALT THRU EXDGALT. DGREORG013050 IF EUNR = ZUNR GO TO VERA. DGREORG013060 GO TO GRBEG. DGREORG013070 VERA-FEHLER. DGREORG013080 DISPLAY 'ORD = ' EUNR EDSTNR UPON CONSOLE. DGREORG013090 STOP 'SATZFOLGE FALSCH PROG. WIRD ABGEBROCHEN' DGREORG013100 STOP RUN. DGREORG EOF-SICHERN. DGREORG
Legacy COBOL Code of Austrian State Pension Fund ICSM2008 Sneed-9
2. The Legacy Software Trap
Status of Information Technology in Germany
According to Chairman of German Software Initiative:• 70% of all business applications are in a legacy
language• Daily more than 30 billion transactions are made with
legacy systems• In Germany 10 billion Euros are spent per year on
the maintenance of legacy systems• The number of COBOL code lines in Germany is
estimated to be 240 billion• To upgrade this code base would cost at least 960
billion Euros, more than the economy can afford• There is no alternative to maintaining this code.
2. The Legacy Software TrapSneed-10ICSM2008
Programmer Distribution according to Capers Jones
Year Programmers in Programmers in % in Maint.
Development Maintenance
1950 90 10 10%
1960 8,500 1,500 13%
1970 65,000 35,000 38%
1980 1,200,000 800,000 40%
1990 3,000,000 4,000,000 57%
2000 4,000,000 6,000,000 60%
2010 5,000,000 9,000,000 64%
2020 7,000,000 14,000,000 67%
2. The Legacy Software TrapSneed-11ICSM2008
Alternate Solutionsto the Maintenance Problem
• Standard Software (ERP)
• Renovation / Reengineering
• Redevelopment
• Outsourcing the Maintenance Operation
• Migration and Wrapping do not solvethe Maintenance Problem, they onlycompound it.
Sneed-12ICSM20083. Rationale for outsourcing Maintenance
UserDepartment
UserDepartment
UserDepartment
UserDepartment
UserDepartment
Enterprisedata
Host
ChangeRequests
Endless QueueBottleneck
IT-DepartmentSet of disgruntled oldAssembler-, PL/I-, COBOLProgrammers
Adding new functions Changing existing functions
outdated, complex,monolithic, unstructured,intertwined Programs
Complex, hierarchical,interwoven Data structures
Legacy Systems
centralistic,host-oriented,
unflexibleSystems
Overloaded Databases
3. Rationale for outsourcing MaintenanceICSM2008 Sneed-13
User
IT
Operations
Outsourced
Software
Maintenance
Operation
ServiceLevel
Agreement
Rights
Obligations
Outsourcing as a long range Solution
Sneed-14ICSM20083. Rationale for outsourcing Maintenance
Request for ChangeRegistration, RfC ID
EstimationInfluence, Consequences
Resources, Costs
AuthorizedChange
ImplementationTests und Quality
Assurance necessary
Review afterImplementation
Expectations satisfied?
Change Completion
End
ChangeManagement
CM
DB
Def
init
ive
So
ftw
are
Lib
rary
(D
SL
)
Release Building andSW Distribution
HW Versions withDocumentation
Reports andConfiguration Audits for
Environment Check
Reports aboutaffected Cls,
Documents and Roles
Update of CMRecords
Release of SWfrom DSL UND
Update DSL andCM Records
Check of all CMRecords after
Update
ReleaseManagement
ConfigurationManagement
4. Negotiating a Service Level Agreement
Defining Maintenance Services
ICSM2008 Sneed-15
Points covered in a Maintenance SLA
• Release Intervals (3, 6, 12 months)
• Error correction times (8, 24, 48 hours)
• System recovery times (15, 30, 60 minutes)
• System availability (22 hours a day)
• Maximum error rates (3 errors per kilo Trans.)
• Charging change requests (by impactdomain)
• Charging additional functionality (by FCPT)
• Help Desk Availability (18 hours per day)
4. Negotiating a Service Level AgreementICSM2008 Sneed-16
APLA
APLB
APLC
Application Areas
User ITOperations
ProjectA
ProjectB
ProjectC
Projects
MaintenanceOperations
NewRequs
ChangeRequs
ErrorReports
Common Workflow Components
Common Service Components
Software Architecture
ProductA
ProductB
ProductC
Maintenance Orders
Software Maintenance Organisation
5. Establishing a Maintenance InfrastructureSneed-17ICSM2008
SoftwareProduct Management
ProductSupport
Product Maintenanceand Evolution
ProductTest
Config.Mgt.
ProductService
Customer Service
Bug Tracking
Emergency Fixes
Hot Fix Release
Routine Fixes
Changes
Enhancements
Renovations
Analysis
Measurement
Test
Retest
Configuration
Documentation
Data Administration
Rollout
Repository Metric datenbank Quality Mgt. Tools
Structure of a Software Maintenance Shop
5. Establishing a Maintenance InfrastructureSneed-18ICSM2008
Significance of the Software Architecturefor Software Maintenance
• Division in application components and technicalcomponents
• Framework for communication and data storage• Separation of data access logic from application logic• Separation of user interfaces from application logic• Hierarchical structure of application components• Collection of common functions in a service level• Separation of global and local functions• Implementation of self contained components with a
minimum of dependence on other components• Restricted use of inheritance
Sneed-19ICSM20085. Establishing a Maintenance Infrastructure
Release-Implemen-
tatonCode
CodeDocument
ation
ArchitecturalEvolution Release
RegressionTest
ReleaseRollout
Test Cases
SoftwareMetrics
ReleaseSpecification
Release-Planning
ChangeRequests
ProblemReports
NewRequire-
ments
Software Maintenance Process
CodeAnalysis
Data
6. Setting up a Maintenance ProcessSneed-20ICSM2008
Use Case
Test Case
ChangeRequest
Function/Method
Function/Methodaffects
invokes
Component
GUI
DB-Table
HeadersImports
includes
is implemented by
is tested by
tests
ImpactDomain ofRequest
Dialog,Batch,Service,Report,Interface
includes
contains
Impact Analysis of Change Requests
accesses
uses
MaintenanceCost
Estimation
6. Setting up a Maintenance ProcessSneed-21ICSM2008
MaintenanceRequest A
CodeExtractor
Maintenance Request B
CodeExtractor
TotalSource Code
ImpactedCode
ImpactDomain
ImpactAnalysis
ImpactAnalysis
25.000Stmts
10.000Stmts
Change
Correction
Use CaseA
UseCaseB
Use Cases
Extracting the impacted Code
6. Setting up a Maintenance ProcessSneed-22ICSM2008
Software
Doc
umen
tatio
nT
ools
Reengineering
Tools
Maintenance
Environment
CM QS
Off-Loaded Maintenance
Main-WS
Main-WS
Main-WS
Main-WS
Regression Test Tools
Software Repository
Software Maintenance Workbench
7. Automating the Maintenance Process Sneed-23ICSM2008
RequestAnalysis
FunktionalSpec.
Retest
TestProtocols
MaintenanceRequests
MaintenanceStatistics
Analysis
EffortEstimation
SoftwareAnalysis
ImpactDocuments
Design
Techn.Spec.
Acceptance
AcceptanceReports
Contents of a Software Maintenance Repository
7. Automating the Maintenance Process Sneed-24ICSM2008
Dash Board for monitoring Software Status
Growth Rate
10%
20%
0%16%
5% 15%
8%
4% 12%
0%Change Rate
8
4
2 6
0Error DensitySystem Availability
90%
100%80%
85% 95%
System Volatility
0,1
0,201
0,5
0System Complexity
1
0,5
0System QualitySystem Size
1500
20001000
Product Status
sufficient
topAlarm
goodpoor
System Functionality
Fcpts
Ist
Soll
System Stability
Soll
Ist
CorrectlyexecutedTrans-actions
redArea
Planned
Maintenance Costs
Actual
Errors Reports
Correction Status
Corrections
Change Requests
Change Status
Changes
New Requirements
Requirement Status
Implemented
GreenArea
YellowArea
7. Automating the Maintenance ProcessSneed-25ICSM2008
Synergie of a Software Maintenance Shop
• Common Hardware Plattform
• Common Software Tools
• Common Pools of Specialists
• Common Technical Infrastructure
• Common Technical Knowledge Base
• Common Help Desk
• Unified Maintenance Process
8. Servicing Multiple CustomersICSM2008 Sneed-26
Indian Offshore Vendors grow and growTransaction volume with Software and Services
(in Billions of Dollars)
16,7
22,530,3
39,5
52,0
34,7%34,6%
30,4%31,6%
2004 2005 2006 2007 2008
9. International Competition for
Outsourced Software Services
ICSM2008 Sneed-27
80 Percent of Indian Software and Services are exportedDevelopment of the Indian IT-Industry from 2004 to 2008
9. International Competition for
Outsourced Software Services
ICSM2008 Sneed-28
Distribution of Indian Exports
0,0 % 5,0 % 10,0 % 15,0 % 20,0 %
Comparison of competing Countries as of 2004Export percentage of IT and other business oriented services
9. International Competition for
Outsourced Software Services
ICSM2008 Sneed-29
Proportion of IT Services of total Exports
Rating of Offshore Partners by perceived Competence( 210 German companies asked, in Percent)
9. International Competition for
Outsourced Software Services
ICSM2008 Sneed-30
Rating of Offshore Suppliers by Competence
Only in regard to innovation is India ahead of China( 210 German companies asked, in Percent)
9. International Competition for
Outsourced Software Services
ICSM2008 Sneed-31
Satisfaction with Offshore Suppliers
World employment marketDevelopment of the number of employees and the global real gross domestic product within
the Industry and Service Areas (2006)
1970Still mostlyisolated markets
265,5
1,2Trillion
85,5 62,0 30,4
1990Collapse of the EasternacceleratedGlobalization, Pressureof Competition foremostfrom China
362,626,2
Trillion
85,5 62,0 30,4
2005The global employmentMarkets are in directcompetition
416,944,4
Trillion
412,5
220,6 41,0
China IndiaEasternEurope
IndustrialCountries
World Economyglobal grossdomestic productin Dollar
9. International Competition for Outsourced Software Services
ICSM2008 Sneed-32
Keynote Conclusion
• Most money is earned by relieving others of theirdire problems
• Software Maintenance has become for many IT usersin the old industrialized countries a dire problem.They cannot cope with it.
• Taking over the maintenance for these users willrelieve them of their problem and promise a steadyflow of income.
• Users will become dependent on the outsourcingpartner for the continuity of their IT service.
• At the same time the outsourcing partner will be ableto absorb the knowledge encapulated in the software.
• The user will be freed of the burden of maintenanceand the outsourcing partner will become rich andknowlegable.
• Today‘s Servants will become tomorrow’s Masters.
10. Capitalizing on Other‘s ProblemsICSM2008 Sneed-33
Top Related