SlideShare a Scribd company logo
Software Economics
Tradeoffs of Decoupled Software
Luis Artola
@artolamola
@buntplanet
Guillermo
Gutiérrez
@ggalmazor
@buntplanet
0.1About technology, tradeoffs and business needs
Business
needs
Value, Cost,
Risk & Debt
Iterative &
incremental
Change &
evolution
Dependencies
Economy
Economy is about making
decisions on limited goods
You don’t need to invent
anything. They have figured out
everything for you
Maybe you don’t make
decisions about money
What about time? Time is
money and it’s limited
and will let you use the same language from business
Developing an economic
mindset will help you with your
decision making
Makes easier to achieve a common goal, a shared vision
Speaking the same language
improves conversation and
trust
Economies of scale Cost of opportunity
Cost of acquisition
Marginal cost
Time to market
Return of Investment
RiskDebt, loans, interest
Time Value of MoneyCash flow
Balance sheetLiquidity
Throughput accountingCost accounting
Net present value Real options
Business mindset
Value Cost
Economies of scale Cost of opportunity
Cost of acquisition
Marginal cost
Time to market
Return of Investment
RiskDebt, loans, interest
Time Value of MoneyCash flow
Balance sheetLiquidity
Throughput accountingCost accounting
Net present value Real options
In this talk
Value Cost
Value,
Cost, Risk
& Debt
Business
needs
Iterative &
incremental
Change &
evolution
Dependencies
We are here to satisfy business needs
Early delivery of value,
What does business need?
ROI
Risk reduction
Hypothesis validation
Stakeholders shared vision
Early delivery of value,
with the lowest possible cost,
What does business need?
Early delivery of value,
with the lowest possible cost,
keeping options open,
What does business need?
So that risk is reduced
To face uncertainty with better odds
Early delivery of value,
with the lowest possible cost,
keeping options open,
with debt under control
What does business need?
To avoid being unable to pay it off in the future
How are our coding strategies
and practices aligned with
business needs?
We are biased
Refactoring a Good Thing™
Waterfall is a Bad Thing™
Business people don’t understand us™
Can you explain your coding
strategies and practices in terms
of value, cost, options, risk and
debt?
How to deal with technology
Context & Tradeoffs
Agile practice catalog
Refactoring to Patterns
Often forgetting to talk about when (context)
Software community is great writing
articles about what & how
or how to combine other needs (tradeoffs)
Often forgetting to talk about when (context)
Software community is great writing
articles about what & how
How do we choose from the
overwhelming list of things that
we should know?
How do we decide what’s the next
thing to work on?
Are we professional about it?
You deal with technology applying
context (when) and tradeoffs
(balance)
Value,
Cost, Risk
& Debt
Business
needs
Iterative &
incremental
Change &
evolution
Dependencies
Dependencies
Does business care about software
dependencies?
Does business care about software
dependencies?
No
Business focuses on visible costs
Invisible
Risk & DebtValue
Cost
QuantifiableUnquantifiable
Visible
Cost is quantifiable and visible
Invisible
Risk & DebtValue
Cost
QuantifiableUnquantifiable
Visible
Dependencies are risk and debt (difficult to see and quantify)
Dependencies
be here
In an IT context, when you need to decrease the risk of delivering
misunderstood needs (continuous feedback from stakeholders)
In a Start-up context, when you need to validate your hypothesis
and discover your product
But costs are less important than
value, risk or debt
Iterative &
incremental
Business
needs
Value, Cost,
Risk & Debt
Change &
evolution
Dependencies
How do we deal with it?
Waterfall: Great for cost, if you
forget about value, risk and
debt
time
time
Risk
Cost
Value
time
Risk
Cost
Value
time
Risk
Cost
Value
time
Cost
Value
time
Cost
Value
Value hits users
for the first time
time
Risk
Iterative & incremental: The best
possible option
time
time
Value hits users
for the first time
time
time
time
time
Risk
Risk
Risk
Risk
time
Risk
Risk
Risk
Risk
Change &
evolution
Business
needs
Value, Cost,
Risk & Debt
Iterative &
incremental
Dependencies
Better value risk and debt, but
we have to deal with the cost
of change
First vertical
feature hits
production
We mean by vertical as the minimum
amount of software that adds value,
gets feedback (deals with
uncertainty) and can be shipped to
users
We get
feedback
First set of
changes hits
production
Second set of
changes hits
production
Third set of
changes hits
production
Cost of development tends to zero
Cost of Software is the cost of evolving software
Dependencies
Business
needs
Value, Cost,
Risk & Debt
Iterative &
incremental
Change &
evolution
0.2Recap: from Software economics to code
dependencies
To satisfy business needs,
we need to be aware of
economic implications of our
development strategy,
expressed in terms of value,
cost, options, risk and debt.
This implies an iterative,
incremental development
strategy of vertical slices
This brings to the table new
challenges
One is supporting constant code evolution
This brings to the table new
challenges
Tightly coupled software is hard to change
Dependencies have big
impact in code evolution
Cost of Software
Extended version of Kent Beck’s Implementation patterns, page 19
Cost of Software
Discovering
Extended version of Kent Beck’s Implementation patterns, page 19
Cost of Software
DevelopingDiscovering
Extended version of Kent Beck’s Implementation patterns, page 19
Cost of Software
DevelopingDiscovering
Evolving
Extended version of Kent Beck’s Implementation patterns, page 19
Cost of Software
Delivering
DevelopingDiscovering
Evolving
Extended version of Kent Beck’s Implementation patterns, page 19
Cost of Software
Bug fixingDelivering
DevelopingDiscovering
Evolving
Extended version of Kent Beck’s Implementation patterns, page 19
Cost of evolving software
Cost of understanding Cost of changing
Cost of changing
Abstractions
Composition
Dependencies
Other
Dependencies
Non code Code
schedule dependencies
team dependencies
This talkCodeNon code
Context Boundaries Dependency Injection by constructor
Injection Container / Service Locator
Static abuse / Implicit dependencies
Declarative style
Law of Demeter
Extended SOLIDSOLID
Getters and setters are evilLocal retention / Encapsulation
ModularityAnemic model
Hexagonal architectureVertical & horizontal mental model
Test harness and test doubles Parallel change refactoring
Mikado method Self similarity principle
Inversion of Control
Tools & topics about code dependency management
Context Boundaries Dependency Injection by constructor
Injection Container / Service Locator
Static abuse / Implicit dependencies
Declarative style
Law of Demeter
Extended SOLIDSOLID
Getters and setters are evilLocal retention / Encapsulation
ModularityAnemic model
Hexagonal architectureVertical & horizontal mental model
Test harness and test doubles Parallel change refactoring
Mikado method Self similarity principle
Inversion of Control
This talk
We need a holistic approach
Abstraction - composition - dependencies
cost to understand - change - evolve
Warning
Dependencies are just a lens from which to analyze software
There are other lenses
Warning
2
Reusing is creating dependencies
Good code supports Options
Stop thinking in individual classes
1
3
1Reusing is creating dependencies
This is our project
Our project has one feature
We need to deliver a new feature
We need something similar to the already existing feature
We copy & paste some code from other feature
The cost of change is now x2 more expensive
We extract that piece of code to a common place
We have decreased the cost of change by half
Now all our features have a new dependency
New features can reuse that code
We achieve economies of scale
costofintroducing
anewfeature
costofintroducing
anewfeature
time
costofintroducing
anewfeature
time
reality
costofintroducing
anewfeature
time
reality
New dependency
is created
costofintroducing
anewfeature
time
reality
New dependency
is created
theory
Economies of scale tell us that it should go down like this
costofintroducing
anewfeature
time
theory
reality
Reality tells us a different story
We have a dependency mess
costofintroducing
anewfeature
time
theory
reality
Our dependency mess pushes our costs up
costofintroducing
anewfeature
time
We need to watch dependencies and manage them
Dependencies
get messy
costofintroducing
anewfeature
time
We need to watch dependencies and manage them
Dependencies
get messy
Investment on
dependency
management
costofintroducing
anewfeature
time
We need to watch dependencies and manage them
costofintroducing
anewfeature
time
We need to watch dependencies and manage them
costofintroducing
anewfeature
time
We need to watch dependencies and manage them
costofintroducing
anewfeature
time
We need to watch dependencies and manage them
costofintroducing
anewfeature
time
We need to watch dependencies and manage them
Vertical-horizontal mindset
Vertical
slice
Vertical
slice
Vertical
slice
Vertical
slice
Horizontal slice
We need some rules to allow dependencies to exist
Vertical
slice
Vertical
slice
Vertical
slice
Vertical
slice
Horizontal slice
We allow dependencies on horizontal slices (common code)
Vertical
slice
Vertical
slice
Vertical
slice
Vertical
slice
Horizontal slice
We forbid to depend on vertical slices
Vertical
slice
Vertical
slice
Vertical
slice
Vertical
slice
Horizontal slice
We also forbid dependencies between vertical slices
Vertical
slice
Vertical
slice
Vertical
slice
Horizontal slice
Self-similarity principle applies to vertical slices as well
Vertical
slice
Vertical
slice
Vertical
slice
Horizontal slice
We can completely remove a Vertical slice and nothing gets
broken
Vertical
slice
How do we balance low dependencies with code reuse?
Under which circumstances do we allow ourselves to
break our rules?
2Good code supports business options
Business Options
time
Our schedule
Start working
today
time
Deploy next
month
Our schedule
time
Our progress
time
Our progress
Business
needs a
demo!
Option 1: Not giving options
Option 1: Not giving options
Not professional
Option 2: Deploy something smaller
Option 2: Deploy something smaller
Can you do that?
Interfaces and Inversion of Control
NotificationPort
Our app
Notification
Component
When you’re implementing someone’s Interface, you’re bound by its API
and dependencies
uses
NotificationPort
Our app
Notification
Component
When you own an Interface, you make the rules
extends
When dealing with external
dependencies, you can
switch the place of the
Interfaces involved
Switching interfaces’ places is
Inversion of Control
This gives you freedom for
new implementations
This gives you freedom for
new Options
time
Original schedule
time
Our design includes IoC
Original schedule
IoC
We buy an option
time
We deploy a smaller version for the demo
IoC
Original schedule
time
We finish our work and deploy the final version, which uses
Amazon SMS
IoC
Original schedule
Extra
cost
time
We’ve payed an extra cost but we’ve made it to the demo
IoC
Original schedule
Hexagonal Architecture
Hexagonal architecture applies IoC across your design
We focus on what we need and then we write code that
complies
Our needs are defined in Ports and the implementations are
called Adapters
JavaX
Mail
Amazon
SMS
Notifications
Port
Adapters are interchangeable
JavaX
Mail
Amazon
SMS
Notifications
Port
JavaX
Mail
Amazon
SMS
Adapters are interchangeable
Notifications
Port
Ports are interfaces
declared on our app’s
package system
com.programania.coolapp.NotificationsPort
Adapters use foreign
package systems
javax.mail.*
com.programania.coolapp.NotificationsPort
Adapters extend our
app’s Ports
javax.mail.*
com.programania.coolapp.NotificationsPort
Internals depend on
internals
javax.mail.*
com.programania.coolapp.NotificationsPort
By doing this, we’re
inverting the control
(IoC) in our app
javax.mail.*
How do we choose what’s inside the Hexagon and what
lies outside?
Your design needs to support Options but how do you
balance it with Y.A.G.N.I.?
How are you going to defer decisions?
3Stop thinking in individual classes
Module, component or hexagon. They’re the same: a
cluster of classes
Remember those extended
S.O.L.I.D. principles
Inside a component, classes and dependencies can be
unstable
Outside the component, dependencies are few and stable
Single Responsibility Principle of a class
Single Responsibility Principle of a class module
Class Responsibility and Collaborators (dependencies)
Class Component Responsibility and Collaborators
(dependencies)
Class Level Testing
Class Module Level Testing
Insights and take aways
An economic mindset lets you stay in sync
with business and make better decisions
Cost of software is the cost of
evolving software
Principles are great
What will you do when they contradict?
Context is primordial
(search for it when reading the next success story)
Tradeoffs are not static
They are in constant tension through a project
Reusing is creating dependencies
IoC is about switching interfaces’ places
Stop thinking about individual classes
Start considering cluster of classes, seek cohesion and
analyze dependencies
Thanks!

More Related Content

What's hot

Tom van Ees - Academic and Commercial software Development
Tom van Ees - Academic and Commercial software DevelopmentTom van Ees - Academic and Commercial software Development
Tom van Ees - Academic and Commercial software DevelopmentDavinci software
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
Prof Ansari
 
Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design
Prateek
 
Software QA Services – An Important Ingredient in Software Development
Software QA Services – An Important Ingredient in Software DevelopmentSoftware QA Services – An Important Ingredient in Software Development
Software QA Services – An Important Ingredient in Software Development
Software Testing Solution
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisis
chandan sharma
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
Damian T. Gordon
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
Drusilla918
 
Agile software development
Agile software development Agile software development
Agile software development
saurabh goel
 
Software engineering
Software engineeringSoftware engineering
Software engineeringfaisalwajid
 
software engineering models
software engineering models software engineering models
software engineering models
mansab MIRZA
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
Saqib Raza
 
Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software designTech_MX
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
Hitesh Mohapatra
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement Engineering
KanchanPatil34
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
Shankar Dahal
 
Agile
AgileAgile
Agileratem
 
Is agile adoption losing steam?
Is agile adoption losing steam?Is agile adoption losing steam?
Is agile adoption losing steam?
Go2Group, Inc.
 
SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)
ghayour abbas
 

What's hot (20)

Tom van Ees - Academic and Commercial software Development
Tom van Ees - Academic and Commercial software DevelopmentTom van Ees - Academic and Commercial software Development
Tom van Ees - Academic and Commercial software Development
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design Invincible React States with Domain Driven Design
Invincible React States with Domain Driven Design
 
Software QA Services – An Important Ingredient in Software Development
Software QA Services – An Important Ingredient in Software DevelopmentSoftware QA Services – An Important Ingredient in Software Development
Software QA Services – An Important Ingredient in Software Development
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisis
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Agile software development
Agile software development Agile software development
Agile software development
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
software engineering models
software engineering models software engineering models
software engineering models
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software design
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
SECh123
SECh123SECh123
SECh123
 
07 fse implementation
07 fse implementation07 fse implementation
07 fse implementation
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement Engineering
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Agile
AgileAgile
Agile
 
Is agile adoption losing steam?
Is agile adoption losing steam?Is agile adoption losing steam?
Is agile adoption losing steam?
 
SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)
 

Viewers also liked

Software project management Improving Team Effectiveness
Software project management Improving Team EffectivenessSoftware project management Improving Team Effectiveness
Software project management Improving Team Effectiveness
REHMAT ULLAH
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
REHMAT ULLAH
 
Improving of software processes
Improving of software processesImproving of software processes
Improving of software processes
REHMAT ULLAH
 
The economy of Albania
The economy of AlbaniaThe economy of Albania
The economy of Albania
Hallelujah Kasimbazi
 
problems and solutions of call centers in Albania
problems and solutions of call centers in Albaniaproblems and solutions of call centers in Albania
problems and solutions of call centers in AlbaniaEnela Bregu
 
Macroeconomic factors that affect the quality of lending in albania.
Macroeconomic factors that affect the quality of lending in albania.Macroeconomic factors that affect the quality of lending in albania.
Macroeconomic factors that affect the quality of lending in albania.
Alexander Decker
 
Bonot e thesarit dhe financimi i deficitit buxhetor
Bonot e thesarit dhe financimi i deficitit buxhetorBonot e thesarit dhe financimi i deficitit buxhetor
Bonot e thesarit dhe financimi i deficitit buxhetor
Careers at SIFE UT
 
Buxheti dhe borxhi publik krahasuar me vendet e BE - Open Datathon Albania 2011
Buxheti dhe borxhi publik krahasuar me vendet e BE - Open Datathon Albania 2011Buxheti dhe borxhi publik krahasuar me vendet e BE - Open Datathon Albania 2011
Buxheti dhe borxhi publik krahasuar me vendet e BE - Open Datathon Albania 2011opendataal
 
Report: Adobe Digital Economy Project May 2016
Report: Adobe Digital Economy Project May 2016Report: Adobe Digital Economy Project May 2016
Report: Adobe Digital Economy Project May 2016
Adobe
 
Projekt ekonomi
Projekt ekonomiProjekt ekonomi
Projekt ekonomi
kristianadinaku
 
PRICE ELASTICITY OF SUPPLY WITH EXAMPLES
PRICE ELASTICITY OF SUPPLY WITH EXAMPLESPRICE ELASTICITY OF SUPPLY WITH EXAMPLES
PRICE ELASTICITY OF SUPPLY WITH EXAMPLESShahi Raz Akhtar
 
Projekt ekonomie/Sistemi Bankar ne Shqiperi
Projekt ekonomie/Sistemi Bankar ne ShqiperiProjekt ekonomie/Sistemi Bankar ne Shqiperi
Projekt ekonomie/Sistemi Bankar ne Shqiperi
Matilda Gremi
 
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTESTYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
WE-IT TUTORIALS
 
Hyrje ne Ekonomi - Investimet
Hyrje ne Ekonomi - Investimet Hyrje ne Ekonomi - Investimet
Hyrje ne Ekonomi - Investimet Menaxherat
 
1. biznesi dhe format e organizimit të tij
1. biznesi dhe format e organizimit të tij1. biznesi dhe format e organizimit të tij
1. biznesi dhe format e organizimit të tijMenaxherat
 
Elasticity Of Supply And Demand
Elasticity Of Supply And DemandElasticity Of Supply And Demand
Elasticity Of Supply And Demand
Kevin A
 

Viewers also liked (20)

Software project management Improving Team Effectiveness
Software project management Improving Team EffectivenessSoftware project management Improving Team Effectiveness
Software project management Improving Team Effectiveness
 
software project management Artifact set(spm)
software project management Artifact set(spm)software project management Artifact set(spm)
software project management Artifact set(spm)
 
Improving of software processes
Improving of software processesImproving of software processes
Improving of software processes
 
The economy of Albania
The economy of AlbaniaThe economy of Albania
The economy of Albania
 
problems and solutions of call centers in Albania
problems and solutions of call centers in Albaniaproblems and solutions of call centers in Albania
problems and solutions of call centers in Albania
 
Macroeconomic factors that affect the quality of lending in albania.
Macroeconomic factors that affect the quality of lending in albania.Macroeconomic factors that affect the quality of lending in albania.
Macroeconomic factors that affect the quality of lending in albania.
 
Bonot e thesarit dhe financimi i deficitit buxhetor
Bonot e thesarit dhe financimi i deficitit buxhetorBonot e thesarit dhe financimi i deficitit buxhetor
Bonot e thesarit dhe financimi i deficitit buxhetor
 
Buxheti dhe borxhi publik krahasuar me vendet e BE - Open Datathon Albania 2011
Buxheti dhe borxhi publik krahasuar me vendet e BE - Open Datathon Albania 2011Buxheti dhe borxhi publik krahasuar me vendet e BE - Open Datathon Albania 2011
Buxheti dhe borxhi publik krahasuar me vendet e BE - Open Datathon Albania 2011
 
Borxhi
BorxhiBorxhi
Borxhi
 
Report: Adobe Digital Economy Project May 2016
Report: Adobe Digital Economy Project May 2016Report: Adobe Digital Economy Project May 2016
Report: Adobe Digital Economy Project May 2016
 
Projekt ekonomi
Projekt ekonomiProjekt ekonomi
Projekt ekonomi
 
Spm tutorials
Spm tutorialsSpm tutorials
Spm tutorials
 
Ekonomi
EkonomiEkonomi
Ekonomi
 
Elasticity and its application
Elasticity and its applicationElasticity and its application
Elasticity and its application
 
PRICE ELASTICITY OF SUPPLY WITH EXAMPLES
PRICE ELASTICITY OF SUPPLY WITH EXAMPLESPRICE ELASTICITY OF SUPPLY WITH EXAMPLES
PRICE ELASTICITY OF SUPPLY WITH EXAMPLES
 
Projekt ekonomie/Sistemi Bankar ne Shqiperi
Projekt ekonomie/Sistemi Bankar ne ShqiperiProjekt ekonomie/Sistemi Bankar ne Shqiperi
Projekt ekonomie/Sistemi Bankar ne Shqiperi
 
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTESTYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
TYBSC IT SEM 6 PROJECT MANAGEMENT NOTES
 
Hyrje ne Ekonomi - Investimet
Hyrje ne Ekonomi - Investimet Hyrje ne Ekonomi - Investimet
Hyrje ne Ekonomi - Investimet
 
1. biznesi dhe format e organizimit të tij
1. biznesi dhe format e organizimit të tij1. biznesi dhe format e organizimit të tij
1. biznesi dhe format e organizimit të tij
 
Elasticity Of Supply And Demand
Elasticity Of Supply And DemandElasticity Of Supply And Demand
Elasticity Of Supply And Demand
 

Similar to Software economics: tradeoffs of decoupled softwre

Expo qa from user stories to automated acceptance tests with bdd
Expo qa   from user stories to automated acceptance tests with bddExpo qa   from user stories to automated acceptance tests with bdd
Expo qa from user stories to automated acceptance tests with bdd
Eduardo Riol
 
Better Software Keynote The Complete Developer 07
Better Software Keynote  The Complete Developer 07Better Software Keynote  The Complete Developer 07
Better Software Keynote The Complete Developer 07
Enthiosys Inc
 
Better Software Keynote The Complete Developer 07
Better Software Keynote  The Complete Developer 07Better Software Keynote  The Complete Developer 07
Better Software Keynote The Complete Developer 07
Enthiosys Inc
 
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolWebinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
atSistemas
 
Designing A Brand Market Analysis
Designing A Brand Market AnalysisDesigning A Brand Market Analysis
Designing A Brand Market Analysis
Olga Bautista
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
wojtek_s
 
Approaching risk management with your head in the cloud
Approaching risk management with your head in the cloudApproaching risk management with your head in the cloud
Approaching risk management with your head in the cloud
CompatibL Technologies ltd
 
Mobile App Development Cost 2024 Budgeting Your Dream App
Mobile App Development Cost 2024 Budgeting Your Dream AppMobile App Development Cost 2024 Budgeting Your Dream App
Mobile App Development Cost 2024 Budgeting Your Dream App
Inexture Solutions
 
Software Reusability
Software ReusabilitySoftware Reusability
Software Reusability
Tracy Clark
 
Maintenance Technical Debt
Maintenance Technical DebtMaintenance Technical Debt
Maintenance Technical Debt
Globant
 
Working with Technical Debt
Working with Technical DebtWorking with Technical Debt
Working with Technical Debt
Steve Green
 
COSE ESB Presentation
COSE ESB PresentationCOSE ESB Presentation
COSE ESB Presentation
erichleipold
 
Truly Convergent Billing
Truly Convergent BillingTruly Convergent Billing
Truly Convergent Billing
Doug Newdick
 
calculate-business-costs-of-technical-debt.pdf
calculate-business-costs-of-technical-debt.pdfcalculate-business-costs-of-technical-debt.pdf
calculate-business-costs-of-technical-debt.pdf
Nicanor Sachahuaman
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
Pramod Parajuli
 
From Components To Services
From Components To ServicesFrom Components To Services
From Components To Services
James Phillips
 
Bridging the Gap Between Business and Development (OOP'07 Keynote)
Bridging the Gap Between Business and Development (OOP'07 Keynote)Bridging the Gap Between Business and Development (OOP'07 Keynote)
Bridging the Gap Between Business and Development (OOP'07 Keynote)
Enthiosys Inc
 
Behaviour driven development aka bdd
Behaviour driven development aka bddBehaviour driven development aka bdd
Behaviour driven development aka bdd
Prince Gupta
 
Driving Platform-as-Product Using Lean Hypothesis - Karina Villaneuva
Driving Platform-as-Product Using Lean Hypothesis - Karina VillaneuvaDriving Platform-as-Product Using Lean Hypothesis - Karina Villaneuva
Driving Platform-as-Product Using Lean Hypothesis - Karina Villaneuva
VMware Tanzu
 

Similar to Software economics: tradeoffs of decoupled softwre (20)

Expo qa from user stories to automated acceptance tests with bdd
Expo qa   from user stories to automated acceptance tests with bddExpo qa   from user stories to automated acceptance tests with bdd
Expo qa from user stories to automated acceptance tests with bdd
 
Better Software Keynote The Complete Developer 07
Better Software Keynote  The Complete Developer 07Better Software Keynote  The Complete Developer 07
Better Software Keynote The Complete Developer 07
 
Better Software Keynote The Complete Developer 07
Better Software Keynote  The Complete Developer 07Better Software Keynote  The Complete Developer 07
Better Software Keynote The Complete Developer 07
 
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo RiolWebinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
 
Designing A Brand Market Analysis
Designing A Brand Market AnalysisDesigning A Brand Market Analysis
Designing A Brand Market Analysis
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
Approaching risk management with your head in the cloud
Approaching risk management with your head in the cloudApproaching risk management with your head in the cloud
Approaching risk management with your head in the cloud
 
Mobile App Development Cost 2024 Budgeting Your Dream App
Mobile App Development Cost 2024 Budgeting Your Dream AppMobile App Development Cost 2024 Budgeting Your Dream App
Mobile App Development Cost 2024 Budgeting Your Dream App
 
Software Reusability
Software ReusabilitySoftware Reusability
Software Reusability
 
Maintenance Technical Debt
Maintenance Technical DebtMaintenance Technical Debt
Maintenance Technical Debt
 
Working with Technical Debt
Working with Technical DebtWorking with Technical Debt
Working with Technical Debt
 
COSE ESB Presentation
COSE ESB PresentationCOSE ESB Presentation
COSE ESB Presentation
 
Truly Convergent Billing
Truly Convergent BillingTruly Convergent Billing
Truly Convergent Billing
 
calculate-business-costs-of-technical-debt.pdf
calculate-business-costs-of-technical-debt.pdfcalculate-business-costs-of-technical-debt.pdf
calculate-business-costs-of-technical-debt.pdf
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
From Components To Services
From Components To ServicesFrom Components To Services
From Components To Services
 
Bridging the Gap Between Business and Development (OOP'07 Keynote)
Bridging the Gap Between Business and Development (OOP'07 Keynote)Bridging the Gap Between Business and Development (OOP'07 Keynote)
Bridging the Gap Between Business and Development (OOP'07 Keynote)
 
Behaviour driven development aka bdd
Behaviour driven development aka bddBehaviour driven development aka bdd
Behaviour driven development aka bdd
 
Driving Platform-as-Product Using Lean Hypothesis - Karina Villaneuva
Driving Platform-as-Product Using Lean Hypothesis - Karina VillaneuvaDriving Platform-as-Product Using Lean Hypothesis - Karina Villaneuva
Driving Platform-as-Product Using Lean Hypothesis - Karina Villaneuva
 
Chapter 14
Chapter 14Chapter 14
Chapter 14
 

Recently uploaded

Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 

Recently uploaded (20)

Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 

Software economics: tradeoffs of decoupled softwre