SlideShare a Scribd company logo
1 of 186
Download to read offline
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 ENGINEERINGProf 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 DevelopmentSoftware Testing Solution
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisischandan sharma
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) ModelDamian 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 EngineeringSaqib 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 engineeringHitesh Mohapatra
 
Unit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringUnit 2 SEPM_ Requirement Engineering
Unit 2 SEPM_ Requirement EngineeringKanchanPatil34
 
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 EffectivenessREHMAT 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 processesREHMAT ULLAH
 
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 buxhetorCareers 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 2016Adobe
 
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 ShqiperiMatilda 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 NOTESWE-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 DemandKevin 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 bddEduardo 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 07Enthiosys 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 07Enthiosys 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 RiolatSistemas
 
Designing A Brand Market Analysis
Designing A Brand Market AnalysisDesigning A Brand Market Analysis
Designing A Brand Market AnalysisOlga Bautista
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_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 cloudCompatibL 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 AppInexture Solutions
 
Software Reusability
Software ReusabilitySoftware Reusability
Software ReusabilityTracy Clark
 
Maintenance Technical Debt
Maintenance Technical DebtMaintenance Technical Debt
Maintenance Technical DebtGlobant
 
Working with Technical Debt
Working with Technical DebtWorking with Technical Debt
Working with Technical DebtSteve Green
 
COSE ESB Presentation
COSE ESB PresentationCOSE ESB Presentation
COSE ESB Presentationerichleipold
 
Truly Convergent Billing
Truly Convergent BillingTruly Convergent Billing
Truly Convergent BillingDoug 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.pdfNicanor Sachahuaman
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssurancePramod Parajuli
 
From Components To Services
From Components To ServicesFrom Components To Services
From Components To ServicesJames 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 bddPrince 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 VillaneuvaVMware 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

Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
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
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 

Recently uploaded (20)

Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
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
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 

Software economics: tradeoffs of decoupled softwre