SlideShare a Scribd company logo
1 of 80
Download to read offline
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
...
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;
}
development
development
decision
development
mcluhan / culkin
mcluhan / culkin
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
mcluhan / culkin
apply
analysis
interpretconfident?
hypothesize
existing
analysis?
apply
analysis
interpretconfident?
hypothesize
existing
analysis?
apply
analysis
interpretconfident?
craft
analysis
hypothesize
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

What's hot

Pavan Kumar - Workforce & Mobility Services Professional
Pavan Kumar -  Workforce & Mobility Services ProfessionalPavan Kumar -  Workforce & Mobility Services Professional
Pavan Kumar - Workforce & Mobility Services Professionalpavan kumar sadhanala vvs
 
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...Revelation Technologies
 
Enterprise Software at Web-Scale
Enterprise Software at Web-ScaleEnterprise Software at Web-Scale
Enterprise Software at Web-ScaleTom Mueck
 
Micro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution informationMicro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution informationMicro Focus
 
Academic Resources Architecture Framework Planning using ERP in Cloud Computing
Academic Resources Architecture Framework Planning using ERP in Cloud ComputingAcademic Resources Architecture Framework Planning using ERP in Cloud Computing
Academic Resources Architecture Framework Planning using ERP in Cloud ComputingIRJET Journal
 
Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)Mounika Sushma
 
Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramchandra Reddy
 
Devops training and placement in hyderabad
Devops training and placement in hyderabadDevops training and placement in hyderabad
Devops training and placement in hyderabadVamsiNihal
 

What's hot (20)

Resume_Tushar_Bhilare
Resume_Tushar_BhilareResume_Tushar_Bhilare
Resume_Tushar_Bhilare
 
Innovate presentation
Innovate presentationInnovate presentation
Innovate presentation
 
Pavan Kumar - Workforce & Mobility Services Professional
Pavan Kumar -  Workforce & Mobility Services ProfessionalPavan Kumar -  Workforce & Mobility Services Professional
Pavan Kumar - Workforce & Mobility Services Professional
 
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
Oracle Application Integration Architecture (AIA): Does It Deliver On It’s In...
 
Enterprise Software at Web-Scale
Enterprise Software at Web-ScaleEnterprise Software at Web-Scale
Enterprise Software at Web-Scale
 
Micro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution informationMicro focus visual cobol & mainframe solution information
Micro focus visual cobol & mainframe solution information
 
Academic Resources Architecture Framework Planning using ERP in Cloud Computing
Academic Resources Architecture Framework Planning using ERP in Cloud ComputingAcademic Resources Architecture Framework Planning using ERP in Cloud Computing
Academic Resources Architecture Framework Planning using ERP in Cloud Computing
 
Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)Mounika_Sushma_Abinitio(11)
Mounika_Sushma_Abinitio(11)
 
Consulting
ConsultingConsulting
Consulting
 
Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015Ramachandra_Reddy_Resume_2015
Ramachandra_Reddy_Resume_2015
 
Resume-RDn-Detailed
Resume-RDn-DetailedResume-RDn-Detailed
Resume-RDn-Detailed
 
Rahul Resume
Rahul Resume Rahul Resume
Rahul Resume
 
HAROONDAVIDcv1
HAROONDAVIDcv1HAROONDAVIDcv1
HAROONDAVIDcv1
 
sumit
sumitsumit
sumit
 
DevOps101 (version 2)
DevOps101 (version 2)DevOps101 (version 2)
DevOps101 (version 2)
 
Mandhania Chetan N Resume
Mandhania Chetan N ResumeMandhania Chetan N Resume
Mandhania Chetan N Resume
 
Sandeep_MF_4+years of exp
Sandeep_MF_4+years of expSandeep_MF_4+years of exp
Sandeep_MF_4+years of exp
 
Udit
UditUdit
Udit
 
Devops training and placement in hyderabad
Devops training and placement in hyderabadDevops training and placement in hyderabad
Devops training and placement in hyderabad
 
CV
CVCV
CV
 

Similar to Beyond software evolution: Software environmentalism

Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016Codemotion
 
P r o t e c t i n g y o u r b u s i n e s s
P r o t e c t i n g y o u r b u s i n e s sP r o t e c t i n g y o u r b u s i n e s s
P r o t e c t i n g y o u r b u s i n e s smatele41
 
Online Intelligence- POL
Online Intelligence- POLOnline Intelligence- POL
Online Intelligence- POLDavid Barak
 
Business Risk: Effective Technology Protecting Your Business
Business Risk: Effective Technology Protecting Your BusinessBusiness Risk: Effective Technology Protecting Your Business
Business Risk: Effective Technology Protecting Your Businessat MicroFocus Italy ❖✔
 
Idc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformationIdc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformationKaizenlogcom
 
P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16guest558440c
 
The future of scaling forrester research - GigaSpaces Road Show 2011
The future of scaling forrester research - GigaSpaces Road Show 2011The future of scaling forrester research - GigaSpaces Road Show 2011
The future of scaling forrester research - GigaSpaces Road Show 2011Nati Shalom
 
NetSuite Enterprise Brochure
NetSuite Enterprise BrochureNetSuite Enterprise Brochure
NetSuite Enterprise BrochureAboitizland, Inc.
 
Deloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtDeloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtCAST
 
Enterprise Architecture - Why it is needed, now
Enterprise Architecture - Why it is needed, now Enterprise Architecture - Why it is needed, now
Enterprise Architecture - Why it is needed, now Dennis Layton
 
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...Beth Taylor
 
The ecosystem equation collaboration in the connected economy @harvard biz @i...
The ecosystem equation collaboration in the connected economy @harvard biz @i...The ecosystem equation collaboration in the connected economy @harvard biz @i...
The ecosystem equation collaboration in the connected economy @harvard biz @i...Diego Alberto Tamayo
 
Why IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About ItWhy IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About Itrun_frictionless
 
How Enterprise Application Integration is Driving Growth.pdf
How Enterprise Application Integration is Driving Growth.pdfHow Enterprise Application Integration is Driving Growth.pdf
How Enterprise Application Integration is Driving Growth.pdfSufalam Technologies
 
How to modernize legacy application infrastructure?
How to modernize legacy application infrastructure?How to modernize legacy application infrastructure?
How to modernize legacy application infrastructure?Cygnet Infotech
 
Openerp sap book-introduction
Openerp sap book-introductionOpenerp sap book-introduction
Openerp sap book-introductionAPLO DIA
 
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdfThe_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdfsubbulokam
 

Similar to Beyond software evolution: Software environmentalism (20)

Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
Software environmentalism - Tudor Girba - Codemotion Amsterdam 2016
 
P r o t e c t i n g y o u r b u s i n e s s
P r o t e c t i n g y o u r b u s i n e s sP r o t e c t i n g y o u r b u s i n e s s
P r o t e c t i n g y o u r b u s i n e s s
 
Getting Under the Hood of Company Valuations in M&A
Getting Under the Hood of Company Valuations in M&AGetting Under the Hood of Company Valuations in M&A
Getting Under the Hood of Company Valuations in M&A
 
Capgemini links
Capgemini linksCapgemini links
Capgemini links
 
Online Intelligence- POL
Online Intelligence- POLOnline Intelligence- POL
Online Intelligence- POL
 
Business Risk: Effective Technology Protecting Your Business
Business Risk: Effective Technology Protecting Your BusinessBusiness Risk: Effective Technology Protecting Your Business
Business Risk: Effective Technology Protecting Your Business
 
Idc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformationIdc analyst report a new breed of servers for digital transformation
Idc analyst report a new breed of servers for digital transformation
 
P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16P01executive Summary Yy2009mm03dd16
P01executive Summary Yy2009mm03dd16
 
The future of scaling forrester research - GigaSpaces Road Show 2011
The future of scaling forrester research - GigaSpaces Road Show 2011The future of scaling forrester research - GigaSpaces Road Show 2011
The future of scaling forrester research - GigaSpaces Road Show 2011
 
NetSuite Enterprise Brochure
NetSuite Enterprise BrochureNetSuite Enterprise Brochure
NetSuite Enterprise Brochure
 
Deloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical DebtDeloitte Tech Trends 2014 Technical Debt
Deloitte Tech Trends 2014 Technical Debt
 
Enterprise Architecture - Why it is needed, now
Enterprise Architecture - Why it is needed, now Enterprise Architecture - Why it is needed, now
Enterprise Architecture - Why it is needed, now
 
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
Harvard Business Review_The Ecosystem Equation - Collaboration in the Connect...
 
The ecosystem equation collaboration in the connected economy @harvard biz @i...
The ecosystem equation collaboration in the connected economy @harvard biz @i...The ecosystem equation collaboration in the connected economy @harvard biz @i...
The ecosystem equation collaboration in the connected economy @harvard biz @i...
 
Why IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About ItWhy IT Struggles With Digital Transformation and What to Do About It
Why IT Struggles With Digital Transformation and What to Do About It
 
Kapstone CIO Insights
Kapstone CIO InsightsKapstone CIO Insights
Kapstone CIO Insights
 
How Enterprise Application Integration is Driving Growth.pdf
How Enterprise Application Integration is Driving Growth.pdfHow Enterprise Application Integration is Driving Growth.pdf
How Enterprise Application Integration is Driving Growth.pdf
 
How to modernize legacy application infrastructure?
How to modernize legacy application infrastructure?How to modernize legacy application infrastructure?
How to modernize legacy application infrastructure?
 
Openerp sap book-introduction
Openerp sap book-introductionOpenerp sap book-introduction
Openerp sap book-introduction
 
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdfThe_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
The_Secrets_to_Successful_EDI_ERP_Integration___White_Paper.pdf
 

More from Tudor Girba

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

More from Tudor Girba (20)

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

Recently uploaded

Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
 

Recently uploaded (20)

Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024
 

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 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.
  • 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
  • 17.
  • 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; }
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 55.
  • 56.
  • 58.
  • 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
  • 62.
  • 63.
  • 64.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 78. have the right to build upon assessable systems have the responsibility to produce assessable systems
  • 79. beyond software evolution: software environmentalism @girba