SlideShare a Scribd company logo
beyond software evolution:
software environmentalism
@girba
an E-type system must be
continually adapted or it becomes
progressively less satisfactory
as an E-type system evolves, its
complexity increases unless work is
done to maintain or reduce it
Lehman, Belady 1974
074 0 -74 5 9/12 / $ 31.0 0 © 2 012 I E E E J U LY/AUGU S T 2012 | IE E E S O F T WA R E 19
IMPACT
Editor: Michiel van Genuchten
Open Digital Dentistry
genuchten@ieee.org
Editor: Les Hatton
Kingston University
l.hatton@kingston.ac.uk
IMPACT
Compound Annual
Growth Rate for Software
Michiel van Genuchten and Les Hatton
Six impact columns published over the past three years
and a couple of precisely measured products let us
calculate the compound annual growth rate.
MANY OF US subscribe to the belief
that software is growing. This is gen-
erally fueled by apocryphal stories, rea-
soning that as hardware speeds up, the
software seems to slow down almost in
proportion, and because software can’t
just slow down, there must be more
instructions for it to carry out; there-
fore, it must be growing. But how fast?
Statements such as “software doubles
every two years” are still sufficient for
many audiences due to a lack of empiri-
cal data. There is some data available
from open source products, but size
data from industrial products over a
longer period of time is scarce.
In this installment of the Impact de-
partment, we want to discuss software
growth in more detail, a discussion we
base on the data published in previous
installments that cover products (10
since 2010). Six out of the 10 provide
the software size at a minimum of two
points in time.1–6 This lets us calculate
the approximate growth rate over that
period of time. Table 1 contains the
data as previous-installment authors
have described it.
Note that these products vary in
application;
safety criticality (for instance,
magnetic resonance, oil explora-
tion, and flight management sys-
tems were characterized as safety
critical);
software size (orders of magnitude
difference, both at start and at the
end); and
team size (from a few engineers to
hundreds of them).
The sizing data covers periods rang-
ing from seven to 22 years. Note that
we don’t yet have enough data for de-
tailed statistical analyses, but the val-
ues are quite robust.
A Compound Annual Growth
Rate for Software
The last column of Table 1 states
the compound annual growth rate
(CAGR). CAGR is year-over-year
growth over some number of years. For
example, doubling in five years can be
explained by a CAGR of 1.15 (1.155 =
2.01). CAGR is often used in analysis
reports summarizing the expected fu-
ture growth of markets or revenue. The
CAGR of the six products listed fall
within a surprisingly small range. To be
clear, we didn’t cherry-pick these prod-
ucts based on their CAGRs, nor will we
in the future. The CAGR ranged from
1.11 to 1.29 for the six products listed.
Because software can’t just slow down,
there must be more instructions for it to
carry out; therefore, it must be growing.
growth rate over that
Table 1 contains the
-installment authors
e products vary in
ality (for instance,
onance, oil explora-
ht management sys-
aracterized as safety
A Compound Annual Growth
Rate for Software
The last column of Table 1 states
the compound annual growth rate
(CAGR). CAGR is year-over-year
growth over some number of years. For
example, doubling in five years can be
explained by a CAGR of 1.15 (1.155 =
2.01). CAGR is often used in analysis
reports summarizing the expected fu-
ture growth of markets or revenue. The
CAGR of the six products listed fall
within a surprisingly small range. To be
clear, we didn’t cherry-pick these prod-
ucts based on their CAGRs, nor will we
in the future. The CAGR ranged from
1.11 to 1.29 for the six products listed.
growing.
May❘ June2000 IT Pro 171520-9202/00/$10.00 © 2000 IEEE
Leveraging
Legacy
System
Dollars for
E-Business
Len Erlikh
A
lthough many firms have rapidly and
enthusiastically adopted distributed
architectures, many more are stuck
with mainframe-based mission-critical
systems that continue to isolate them from their
partner, supplier, and customer systems. Indeed,
IDC estimates there are more than 10,000 large
IBM mainframe sites worldwide with 200 billion
lines of legacy code still in use.
Most companies want to transform their appli-
cations to meet new business
demands, but because legacy
systems tend to be unwieldy,
monolithic, and inflexible,
many firms regard modern-
ization assomewhere between
improbable and impossible.
Reeling from the Y2K deba-
cle and saddled with years of
application backlog,the most
these companies can hope for
is to keep their legacy system
alive.
And keeping it alive is get-
ting more expensive.According to an informal in-
dustry poll, 85 to 90 percent of IS budgets goes to
legacy system operation and maintenance.It is also
becoming harder to find qualified personnel to do
the maintenance. All of this makes it difficult to
add new functionality and keep up with business
requirements.
The ideal solution is to transform legacy systems
to newer,more productive platforms so that com-
panies can exploit faster and cheaper develop-
ment technologies,like Java and XML (Extensible
Markup Language).The focus then shifts to func-
tionality, not the infrastructure, which means a
company can respond more quickly to its chang-
ing business requirements and technology
enhancements.
NOT A TRIVIAL PURSUIT
But this legacy transformation isn’t trivial,
which is why many companies avoid it. The e-
business architecture emphasizes just about
everything foreign to a legacy system—distrib-
uted heterogeneous platforms, component
encapsulation, the merging of standards, open-
ness. The challenge is to preserve the wealth of
captured business knowledge and have the sys-
tem fit into the component world of the new e-
architecture.
RescueWare, legacy transformation software
from Relativity Technologies, breaks business
knowledge into stand-alone pieces, or e-compo-
nents.The e-components are basically collections
of objects that perform specific business services,
have clearly defined application program inter-
faces (APIs),and are accessible through modern
industry-standard protocols.
Because these e-components encapsulate indi-
vidual business processes and because other com-
ponents can freely access them, a company can
more precisely control individual business
processes. This divide-and-conquer approach
allows companies to do rapid concurrent devel-
opment. Each large-scale business process
becomes a self-contained unit of manageable size,
making it easier to deploy in a Web-based envi-
ronment.
Legacy transformation in RescueWare begins
with understanding what parts of the legacy sys-
tem are worth transitioning to the e-business
Legacy Modernization Resources
Hunting forBusiness Rules
Inside
Converting a
monolithic legacy
system to stand-alone
components can turn
this source of business
knowledge into a
competitive edge.
A
lthough many firms have rapidly and
enthusiastically adopted distributed
architectures, many more are stuck
with mainframe-based mission-critical
systems that continue to isolate them from their
partner, supplier, and customer systems. Indeed,
IDC estimates there are more than 10,000 large
IBM mainframe sites worldwide with 200 billion
lines of legacy code still in use.
Most companies want to transform their appli-
cations to meet new business
demands, but because legacy
systems tend to be unwieldy,
monolithic, and inflexible,
many firms regard modern-
ization assomewhere between
improbable and impossible.
Reeling from the Y2K deba-
cle and saddled with years of
NOT A TR
But this
which is w
business a
everything
uted hete
encapsula
ness. The c
captured b
tem fit into
architectur
RescueW
from Rela
knowledge
nents.The
of objects t
have clear
faces (API
industry-st
rting a
ithic legacy
to stand-alone
nents can turn
urce of business
an E-type system must be
continually adapted or it becomes
progressively less satisfactory
as an E-type system evolves, its
complexity increases unless work is
done to maintain or reduce it
Lehman, Belady 1974
@girba
moosetechnology.org
@girba
moosetechnology.org humane-assessment.com
@girba
moosetechnology.org humane-assessment.com
pharo.org
@girba
moosetechnology.org humane-assessment.com
pharo.org
gt.moosetechnology.org
@girba
moosetechnology.org humane-assessment.com
pharo.org
gt.moosetechnology.org
demodriven.com
@girba
moosetechnology.org humane-assessment.com
pharo.org
gt.moosetechnology.org
demodriven.com
feenk.com
@girba
I help teams to
not read code
@girba
I help teams to
not read code
@girba
Beyond software evolution: Software environmentalism
...
Description description;
Value
...
Boolean actualValue
BooleanValue
...
...
...Value
...
Description description;
Value
...
Boolean actualValue
BooleanValue
...
...
...Value
Value value;
...
if (value == null) { ... }
accept(Visitor)
Description description
Value
accept(Visitor)
Boolean actualValue
BooleanValue
accept(Visitor)
...
...Value
Value value;
...
if (value == null) { ... }
accept(Visitor)
Description description
Value
accept(Visitor)
Boolean actualValue
BooleanValue
accept(Visitor)
...
...Value
accept(Visitor)
UndefinedValue
Value value;
...
if (value == null) { ... }
accept(Visitor)
boolean isUndefined()
Description description
Value
accept(Visitor)
Boolean actualValue
BooleanValue
accept(Visitor)
...
...Value
accept(Visitor)
boolean isUndefined()
UndefinedValue
Value value;
...
if (value == null) { ... }
accept(Visitor)
boolean isUndefined()
Description description
Value
accept(Visitor)
Boolean actualValue
BooleanValue
accept(Visitor)
...
...Value
accept(Visitor)
boolean isUndefined()
UndefinedValue
Value value;
...
if (value.isUndefined()) { ... }
Value value;
...
if (value == null) { ... }
valueClass :=  self allModelTypes entityNamed: #'Value'.
valueVariables := valueClass withSubclassHierarchy
flatCollectAsSet: #structuresWithDeclaredType.
valueVariables select: [ :each |
     (('*', each name , ' != null*') match:
each belongsTo sourceText) or: [
     ('*', each name , ' == null*') match:
each belongsTo sourceText ] ]
Value value;
...
if (value == null) { ... }
/**
* The method can return null
*/
Value doSomething() {
...
return value;
}
valueMethods := valueClass withSubclassHierarchy
flatCollectAsSet: #behavioursWithDeclaredType.
valueMethods select: [:each |
each comments anySatisfy: [:c |
'*null*' match: c sourceText ] ]
/**
* The method can return null
*/
Value doSomething() {
...
return value;
}
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
development
development
decision
development
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
mcluhan / culkin
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
mcluhan / culkin
Beyond software evolution: Software environmentalism
have the right to build upon
recyclable systems
have the right to build upon
recyclable systems
have the responsibility to produce
recyclable systems
have the right to build upon
assessable systems
have the responsibility to produce
assessable systems
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
mcluhan / culkin
apply
analysis
interpretconfident?
hypothesize
existing
analysis?
apply
analysis
interpretconfident?
hypothesize
existing
analysis?
apply
analysis
interpretconfident?
craft
analysis
hypothesize
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
decision
development
decision
assessment
development
humane-assessment.com
have the right to build upon
assessable systems
have the responsibility to produce
assessable systems
beyond software evolution:
software environmentalism
@girba
@girba

More Related Content

DOCX
Resume_Shivani chopra
Shivani Chopra
 
PPTX
Business Process De Pillis Tool Comparison
G.J. dePillis
 
DOC
SalmaCV
Salma Allabakash
 
DOC
Resume of Praveen
Praveen Kumar Benna
 
DOC
1 . Update Resume (in doc)- Ankit Jain
Ankit Jain
 
PDF
Fresche Legacy Case Study: Innovative Computing
Fresche Solutions
 
DOC
Chapter1
mansab MIRZA
 
PDF
Project portfolio management comparison of microsoft epm and primavera p6 v...
p6academy
 
Resume_Shivani chopra
Shivani Chopra
 
Business Process De Pillis Tool Comparison
G.J. dePillis
 
Resume of Praveen
Praveen Kumar Benna
 
1 . Update Resume (in doc)- Ankit Jain
Ankit Jain
 
Fresche Legacy Case Study: Innovative Computing
Fresche Solutions
 
Chapter1
mansab MIRZA
 
Project portfolio management comparison of microsoft epm and primavera p6 v...
p6academy
 

What's hot (20)

DOCX
Resume_Tushar_Bhilare
Tushar Bhilare
 
PPTX
Innovate presentation
Kristin Cowhey
 
DOCX
Pavan Kumar - Workforce & Mobility Services Professional
pavan kumar sadhanala vvs
 
PDF
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Revelation Technologies
 
PDF
Enterprise Software at Web-Scale
Tom Mueck
 
PDF
Micro focus visual cobol & mainframe solution information
Micro Focus
 
PDF
Academic Resources Architecture Framework Planning using ERP in Cloud Computing
IRJET Journal
 
PDF
Mounika_Sushma_Abinitio(11)
Mounika Sushma
 
PPTX
Consulting
Markus Voelter
 
DOC
Ramachandra_Reddy_Resume_2015
Ramchandra Reddy
 
DOC
Resume-RDn-Detailed
Dhayanithi Radhakrishnan
 
DOCX
Rahul Resume
Rahul Pinjani
 
PDF
HAROONDAVIDcv1
haroon david
 
DOC
sumit
Sumit Singh
 
PPT
DevOps101 (version 2)
Sanjeev Sharma
 
DOC
Mandhania Chetan N Resume
Chetan Mandhania
 
DOC
Sandeep_MF_4+years of exp
sandeep garrepalli
 
DOC
Udit
Udit Marwari
 
PDF
Devops training and placement in hyderabad
VamsiNihal
 
Resume_Tushar_Bhilare
Tushar Bhilare
 
Innovate presentation
Kristin Cowhey
 
Pavan Kumar - Workforce & Mobility Services Professional
pavan kumar sadhanala vvs
 
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Revelation Technologies
 
Enterprise Software at Web-Scale
Tom Mueck
 
Micro focus visual cobol & mainframe solution information
Micro Focus
 
Academic Resources Architecture Framework Planning using ERP in Cloud Computing
IRJET Journal
 
Mounika_Sushma_Abinitio(11)
Mounika Sushma
 
Consulting
Markus Voelter
 
Ramachandra_Reddy_Resume_2015
Ramchandra Reddy
 
Resume-RDn-Detailed
Dhayanithi Radhakrishnan
 
Rahul Resume
Rahul Pinjani
 
HAROONDAVIDcv1
haroon david
 
DevOps101 (version 2)
Sanjeev Sharma
 
Mandhania Chetan N Resume
Chetan Mandhania
 
Sandeep_MF_4+years of exp
sandeep garrepalli
 
Devops training and placement in hyderabad
VamsiNihal
 
Ad

Similar to Beyond software evolution: Software environmentalism (20)

PDF
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Codemotion
 
PPTX
Software Engineering
JayaKamal
 
PDF
Mantacore Whitepaper Part1 Standard System En
Mantacore
 
PDF
Mantacore Whitepaper Part1 Standard System En
Mantacore
 
PDF
IBM’s zEnterprise Really Stretches Its Boundaries — New Windows Are Opened
IBM India Smarter Computing
 
PDF
Software modernization
Jean-Christophe HUC (Jay C)
 
PDF
A Rational approach to application migration and modernization
IBM Rational software
 
PPT
Slides chapter 1
13harpreet
 
PPT
Software Engineering chapter 1-about user and client communication
MunPatel
 
PPT
SW Architecture Monolithic to SOA
Raman Kannan
 
PDF
Components of CORBA
Glen Alleman
 
PDF
From NASA to Startups to Big Commerce
Daniel Greenfeld
 
PDF
Biz Product Learnings
Kinshuk Adhikary
 
PPT
Slides chapter 1
Priyanka Shetty
 
PPT
Slides chapter 1
Hardik Patel
 
PDF
Towards preventing software from becoming legacy a road map
IAEME Publication
 
PDF
Something super epic...
Rabah Rahil
 
PPT
Slides chapter 1
gvkmku
 
ODP
COSE ESB Presentation
erichleipold
 
PDF
The End of Data Entry: Liberate Your Organization Through Automation and Inte...
CAMT
 
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Codemotion
 
Software Engineering
JayaKamal
 
Mantacore Whitepaper Part1 Standard System En
Mantacore
 
Mantacore Whitepaper Part1 Standard System En
Mantacore
 
IBM’s zEnterprise Really Stretches Its Boundaries — New Windows Are Opened
IBM India Smarter Computing
 
Software modernization
Jean-Christophe HUC (Jay C)
 
A Rational approach to application migration and modernization
IBM Rational software
 
Slides chapter 1
13harpreet
 
Software Engineering chapter 1-about user and client communication
MunPatel
 
SW Architecture Monolithic to SOA
Raman Kannan
 
Components of CORBA
Glen Alleman
 
From NASA to Startups to Big Commerce
Daniel Greenfeld
 
Biz Product Learnings
Kinshuk Adhikary
 
Slides chapter 1
Priyanka Shetty
 
Slides chapter 1
Hardik Patel
 
Towards preventing software from becoming legacy a road map
IAEME Publication
 
Something super epic...
Rabah Rahil
 
Slides chapter 1
gvkmku
 
COSE ESB Presentation
erichleipold
 
The End of Data Entry: Liberate Your Organization Through Automation and Inte...
CAMT
 
Ad

More from Tudor Girba (20)

PDF
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Tudor Girba
 
PDF
GT Spotter
Tudor Girba
 
PDF
Don't demo facts. Demo stories! (handouts)
Tudor Girba
 
PDF
Don't demo facts. Demo stories!
Tudor Girba
 
PDF
Humane assessment on cards
Tudor Girba
 
PDF
Underneath Scrum: Reflective Thinking
Tudor Girba
 
PDF
1800+ TED talks later
Tudor Girba
 
PDF
Software assessment by example (lecture at the University of Bern)
Tudor Girba
 
PDF
Humane assessment: Taming the elephant from the development room
Tudor Girba
 
PDF
Moose: how to solve real problems without reading code
Tudor Girba
 
PDF
Software Environmentalism (ECOOP 2014 Keynote)
Tudor Girba
 
PPTX
The emergent nature of software systems
Tudor Girba
 
PDF
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Tudor Girba
 
PDF
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Tudor Girba
 
PDF
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Tudor Girba
 
PDF
Demo-driven innovation teaser
Tudor Girba
 
PDF
Software assessment essentials (lecture at the University of Bern 2013)
Tudor Girba
 
PDF
Demo-driven innovation (University of Zurich, June 2013)
Tudor Girba
 
PDF
Humane assessment with Moose at GOTO Aarhus 2011
Tudor Girba
 
PDF
Flexible analysis with Moose at Jazoon 2011
Tudor Girba
 
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Tudor Girba
 
GT Spotter
Tudor Girba
 
Don't demo facts. Demo stories! (handouts)
Tudor Girba
 
Don't demo facts. Demo stories!
Tudor Girba
 
Humane assessment on cards
Tudor Girba
 
Underneath Scrum: Reflective Thinking
Tudor Girba
 
1800+ TED talks later
Tudor Girba
 
Software assessment by example (lecture at the University of Bern)
Tudor Girba
 
Humane assessment: Taming the elephant from the development room
Tudor Girba
 
Moose: how to solve real problems without reading code
Tudor Girba
 
Software Environmentalism (ECOOP 2014 Keynote)
Tudor Girba
 
The emergent nature of software systems
Tudor Girba
 
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Tudor Girba
 
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Tudor Girba
 
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Tudor Girba
 
Demo-driven innovation teaser
Tudor Girba
 
Software assessment essentials (lecture at the University of Bern 2013)
Tudor Girba
 
Demo-driven innovation (University of Zurich, June 2013)
Tudor Girba
 
Humane assessment with Moose at GOTO Aarhus 2011
Tudor Girba
 
Flexible analysis with Moose at Jazoon 2011
Tudor Girba
 

Recently uploaded (20)

PPTX
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
PDF
Exploring AI Agents in Process Industries
amoreira6
 
PPTX
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PDF
Bandai Playdia The Book - David Glotz
BluePanther6
 
PDF
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
PDF
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
PPTX
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 
PPTX
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
 
PDF
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PPTX
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
DOCX
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
PDF
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
Exploring AI Agents in Process Industries
amoreira6
 
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
Activate_Methodology_Summary presentatio
annapureddyn
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
Bandai Playdia The Book - David Glotz
BluePanther6
 
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
Explanation about Structures in C language.pptx
Veeral Rathod
 
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 

Beyond software evolution: Software environmentalism

  • 1. beyond software evolution: software environmentalism @girba
  • 2. an E-type system must be continually adapted or it becomes progressively less satisfactory as an E-type system evolves, its complexity increases unless work is done to maintain or reduce it Lehman, Belady 1974
  • 3. 074 0 -74 5 9/12 / $ 31.0 0 © 2 012 I E E E J U LY/AUGU S T 2012 | IE E E S O F T WA R E 19 IMPACT Editor: Michiel van Genuchten Open Digital Dentistry [email protected] Editor: Les Hatton Kingston University [email protected] IMPACT Compound Annual Growth Rate for Software Michiel van Genuchten and Les Hatton Six impact columns published over the past three years and a couple of precisely measured products let us calculate the compound annual growth rate. MANY OF US subscribe to the belief that software is growing. This is gen- erally fueled by apocryphal stories, rea- soning that as hardware speeds up, the software seems to slow down almost in proportion, and because software can’t just slow down, there must be more instructions for it to carry out; there- fore, it must be growing. But how fast? Statements such as “software doubles every two years” are still sufficient for many audiences due to a lack of empiri- cal data. There is some data available from open source products, but size data from industrial products over a longer period of time is scarce. In this installment of the Impact de- partment, we want to discuss software growth in more detail, a discussion we base on the data published in previous installments that cover products (10 since 2010). Six out of the 10 provide the software size at a minimum of two points in time.1–6 This lets us calculate the approximate growth rate over that period of time. Table 1 contains the data as previous-installment authors have described it. Note that these products vary in application; safety criticality (for instance, magnetic resonance, oil explora- tion, and flight management sys- tems were characterized as safety critical); software size (orders of magnitude difference, both at start and at the end); and team size (from a few engineers to hundreds of them). The sizing data covers periods rang- ing from seven to 22 years. Note that we don’t yet have enough data for de- tailed statistical analyses, but the val- ues are quite robust. A Compound Annual Growth Rate for Software The last column of Table 1 states the compound annual growth rate (CAGR). CAGR is year-over-year growth over some number of years. For example, doubling in five years can be explained by a CAGR of 1.15 (1.155 = 2.01). CAGR is often used in analysis reports summarizing the expected fu- ture growth of markets or revenue. The CAGR of the six products listed fall within a surprisingly small range. To be clear, we didn’t cherry-pick these prod- ucts based on their CAGRs, nor will we in the future. The CAGR ranged from 1.11 to 1.29 for the six products listed. Because software can’t just slow down, there must be more instructions for it to carry out; therefore, it must be growing.
  • 4. growth rate over that Table 1 contains the -installment authors e products vary in ality (for instance, onance, oil explora- ht management sys- aracterized as safety A Compound Annual Growth Rate for Software The last column of Table 1 states the compound annual growth rate (CAGR). CAGR is year-over-year growth over some number of years. For example, doubling in five years can be explained by a CAGR of 1.15 (1.155 = 2.01). CAGR is often used in analysis reports summarizing the expected fu- ture growth of markets or revenue. The CAGR of the six products listed fall within a surprisingly small range. To be clear, we didn’t cherry-pick these prod- ucts based on their CAGRs, nor will we in the future. The CAGR ranged from 1.11 to 1.29 for the six products listed. growing.
  • 5. May❘ June2000 IT Pro 171520-9202/00/$10.00 © 2000 IEEE Leveraging Legacy System Dollars for E-Business Len Erlikh A lthough many firms have rapidly and enthusiastically adopted distributed architectures, many more are stuck with mainframe-based mission-critical systems that continue to isolate them from their partner, supplier, and customer systems. Indeed, IDC estimates there are more than 10,000 large IBM mainframe sites worldwide with 200 billion lines of legacy code still in use. Most companies want to transform their appli- cations to meet new business demands, but because legacy systems tend to be unwieldy, monolithic, and inflexible, many firms regard modern- ization assomewhere between improbable and impossible. Reeling from the Y2K deba- cle and saddled with years of application backlog,the most these companies can hope for is to keep their legacy system alive. And keeping it alive is get- ting more expensive.According to an informal in- dustry poll, 85 to 90 percent of IS budgets goes to legacy system operation and maintenance.It is also becoming harder to find qualified personnel to do the maintenance. All of this makes it difficult to add new functionality and keep up with business requirements. The ideal solution is to transform legacy systems to newer,more productive platforms so that com- panies can exploit faster and cheaper develop- ment technologies,like Java and XML (Extensible Markup Language).The focus then shifts to func- tionality, not the infrastructure, which means a company can respond more quickly to its chang- ing business requirements and technology enhancements. NOT A TRIVIAL PURSUIT But this legacy transformation isn’t trivial, which is why many companies avoid it. The e- business architecture emphasizes just about everything foreign to a legacy system—distrib- uted heterogeneous platforms, component encapsulation, the merging of standards, open- ness. The challenge is to preserve the wealth of captured business knowledge and have the sys- tem fit into the component world of the new e- architecture. RescueWare, legacy transformation software from Relativity Technologies, breaks business knowledge into stand-alone pieces, or e-compo- nents.The e-components are basically collections of objects that perform specific business services, have clearly defined application program inter- faces (APIs),and are accessible through modern industry-standard protocols. Because these e-components encapsulate indi- vidual business processes and because other com- ponents can freely access them, a company can more precisely control individual business processes. This divide-and-conquer approach allows companies to do rapid concurrent devel- opment. Each large-scale business process becomes a self-contained unit of manageable size, making it easier to deploy in a Web-based envi- ronment. Legacy transformation in RescueWare begins with understanding what parts of the legacy sys- tem are worth transitioning to the e-business Legacy Modernization Resources Hunting forBusiness Rules Inside Converting a monolithic legacy system to stand-alone components can turn this source of business knowledge into a competitive edge.
  • 6. A lthough many firms have rapidly and enthusiastically adopted distributed architectures, many more are stuck with mainframe-based mission-critical systems that continue to isolate them from their partner, supplier, and customer systems. Indeed, IDC estimates there are more than 10,000 large IBM mainframe sites worldwide with 200 billion lines of legacy code still in use. Most companies want to transform their appli- cations to meet new business demands, but because legacy systems tend to be unwieldy, monolithic, and inflexible, many firms regard modern- ization assomewhere between improbable and impossible. Reeling from the Y2K deba- cle and saddled with years of NOT A TR But this which is w business a everything uted hete encapsula ness. The c captured b tem fit into architectur RescueW from Rela knowledge nents.The of objects t have clear faces (API industry-st rting a ithic legacy to stand-alone nents can turn urce of business
  • 7. an E-type system must be continually adapted or it becomes progressively less satisfactory as an E-type system evolves, its complexity increases unless work is done to maintain or reduce it Lehman, Belady 1974
  • 15. I help teams to not read code @girba
  • 16. I help teams to not read code @girba
  • 22. accept(Visitor) boolean isUndefined() Description description Value accept(Visitor) Boolean actualValue BooleanValue accept(Visitor) ... ...Value accept(Visitor) boolean isUndefined() UndefinedValue Value value; ... if (value == null) { ... }
  • 23. accept(Visitor) boolean isUndefined() Description description Value accept(Visitor) Boolean actualValue BooleanValue accept(Visitor) ... ...Value accept(Visitor) boolean isUndefined() UndefinedValue Value value; ... if (value.isUndefined()) { ... }
  • 24. Value value; ... if (value == null) { ... }
  • 25. valueClass :=  self allModelTypes entityNamed: #'Value'. valueVariables := valueClass withSubclassHierarchy flatCollectAsSet: #structuresWithDeclaredType. valueVariables select: [ :each |      (('*', each name , ' != null*') match: each belongsTo sourceText) or: [      ('*', each name , ' == null*') match: each belongsTo sourceText ] ] Value value; ... if (value == null) { ... }
  • 26. /** * The method can return null */ Value doSomething() { ... return value; }
  • 27. valueMethods := valueClass withSubclassHierarchy flatCollectAsSet: #behavioursWithDeclaredType. valueMethods select: [:each | each comments anySatisfy: [:c | '*null*' match: c sourceText ] ] /** * The method can return null */ Value doSomething() { ... return value; }
  • 59. have the right to build upon recyclable systems
  • 60. have the right to build upon recyclable systems have the responsibility to produce recyclable systems
  • 61. have the right to build upon assessable systems have the responsibility to produce assessable systems
  • 78. have the right to build upon assessable systems have the responsibility to produce assessable systems
  • 79. beyond software evolution: software environmentalism @girba