際際滷

際際滷Share a Scribd company logo
Maintainability & Marketing
Negotiating sensible schedules for content heavy, volatile system development
Daniel 油TakaiBasel, 油24. 油Juni 2015
息 Unic - Page 2
 are often cornerstones of marketing endeavors
 should usually serve business for many years
 require many different editors producing content 24/7
 in many languages
 in a global environment
 are subject to frequent change
Content heavy web systems
息 Unic - Page 3
Im a witness of failure
息 Unic - Page 4
 because time-to-market
 but theyre rarely based on sound and sensible planning
Schedules are tight
息 Unic - Page 5
Sorry, we already
booked the TV spots.
息 Unic - Page 6
You agree with the schedule, chuckling about their naive
innocence, knowing well that once the time comes nothing
will be finished or working.
You immediately plan a vacation for the release date.
Option one
息 Unic - Page 7
You do the right thing and start negotiating.
Option two
ETHICS
息 Unic - Page 9
- Avoid unnecessary and uncontrolled complexity
- Foster trust
- Respect the interests of others
- State of the art
- Work against unreasonable expectations
- Do not squander resources
Software professional ethics
Examples taken from the Ethics guidelines of the Swiss Informatics Society
息 Unic - Page 10
What will make your project later?
 adding manpower
 no requirements, but a detailed specification, 3000 pages
 service integrations
 no architecture
 waterfall  or no understanding of agile
 stakeholder communication
息 Unic - Page 11
Qualities
One of the main reason of software failure are missing quality
requirements.
Performance
Security
Usability
etc.
息 Unic - Page 12
Qualities
A quality usually has a large impact on the architecture of a
system  and therefore on the cost of the system.
Think Availability 99.999%.
So for each quality desired, a list of measures to reach that
quality must be discussed and negotiated.
息 Unic - Page 13
Maintainability
 describes the ability to
change your software
system across its entire
lifecycle.
息 Unic - Page 14
Conceptual Integrity 
 describes the degree of cohesion and consistency of
requirements
息 Unic - Page 15
Conceptual Integrity
息 Unic - Page 16
If there is no integrity
 your system will be more difficult to change because
conflicting requirements will be mirrored in the code base
 your system will be more difficult to change because the code
base is larger if cohesion is low
 the usability of your system will degrade due to low cohesion
because the intent is more difficult to explain to a visitor
息 Unic - Page 17
Consistency 
 describes the continuous application of design decisions
 fosters the unified usage of product, production and
documentation technologies
 is basically about creating and keeping a known environment
that the team is comfortable with
息 Unic - Page 18
Consistency
息 Unic - Page 19
If there is no consistency
 the changeability of your system suffers, because due to
increased complexity, changes take longer and are therefore
more expensive to implement
 your system will suffer a slow, agonizing death
息 Unic - Page 20
Analyzability
 desribes the effort needed for analyzing a defect
 describes the effort needed for failure diagnosis
 desribes the effort required for identification of parts to be
modified
 can be pro-active
息 Unic - Page 21
Analyzability
息 Unic - Page 22
If your system is not analyzable
 bugfixing will take longer
 change impact analysis will be spotty, resulting in large cost
over- or underruns
 you run the risk of performance and security issues
息 Unic - Page 23
Testability 
 is concerned with being able to verify the quality of the
system
 includes the physical possibility of testing
 but is mainly concerned with being able to automate tests as
this is the most sustainable investment
息 Unic - Page 24
Testability
息 Unic - Page 25
If you lack testability 
 you might as well stop now and save yourself the trouble
息 Unic - Page 26
Changeability 
 describes how your system can be changed
 applies to both adaptive as well as perfective changes
 determines cost per change across the system lifecycle
息 Unic - Page 27
Changeability
息 Unic - Page 28
If you lack changeability 
 you will have a hard time getting changes into production
 which means increased costs and time-to-market
 which means your system will die sooner rather than later
息 Unic - Page 29
Once the system cannot be changed within a reasonable amount
of time and for a sensible amount of money, it is considered
legacy.
Legacy 油Scare
息 Unic - Page 30
Negotiation techniques
息 Unic - Page 31
Step 1) Create awareness
Software development is hard because 
 software is intangible
 software is malleable
 software has hidden complexity
So discussing required system qualities, especially
maintainability is very important
息 Unic - Page 32
Step 2) Investment appraisal
Having explained the legacy scare, find out how many years the
system shall live
Then discuss the change rate and the number of releases
scheduled per year
Calculate cost per release with
varying factors depending on how much
is invested in maintainability
息 Unic - Page 33
Step 3) Marchitecture
Create a simple building block diagram which shows
the main system components. Use this to illustrate
change and planning discussions.
息 Unic - Page 34
Step 4) Separation of concerns
Split content form its representation via a defined content
model
Use content page tables to further editorial work
息 Unic - Page 35
Step 5) Decouple content entry
Use a separate system for content entry
You can use another AEM instance for this, or a SAAS service
like GatherContent
息 Unic - Page 36
Step 6) Scope
Use the iron triangle to your advantage and limit the scope
Less is more, especially in the beginning of a web project
息 Unic - Page 37
The iron triangle of project management
Cost
Time Scope
Quality
息 Unic - Page 38
The Scotty Principle
Gross overestimations will buy you time, but will they help you in
the long run?
息 Unic - Page 39
Step 7) Foster trust
Whatever 油happens, 油you 油
must 油deliver 油as 油promised.
Software 油must 油work. 油There 油
can 油be 油no 油such 油thing 油as 油a 油
functional 油defect.
息 Unic - Page 40
Find out more!
Im publishing a series in Java Magazin
discussing quality requirements of web
systems
息 Unic - Page 41
Join my workshop on web architecture in Munic @ W-JAX 15
6. November 2015
https://jax.de/wjax2015/sessions/webarchitektur-und-qualitaetsmerkmale
息 Unic - Page 42
@danieltakai
息 Unic - Page 43
Ad

Recommended

Lei n尊 4.898 abuso de autoridade esquematizada
Marcos Gir達o
Continuous Delivery Maturity Model
Continuous Delivery Maturity Model
IBM UrbanCode Products
The New Generation of ETRM Systems
The New Generation of ETRM Systems
CTRM Center
Clone Clone Make: a better way to build
Clone Clone Make: a better way to build
DanHeidinga
The Frugal Architecture in Practice.pptx
The Frugal Architecture in Practice.pptx
Fwdays
PROFIBUS and PROFINET system design for the process industry - Andy Verwer
PROFIBUS and PROFINET system design for the process industry - Andy Verwer
PROFIBUS and PROFINET InternationaI - PI UK
Sjaq
Sjaq
Michelle Love
Business Agility - Driving with the Brakes On
Business Agility - Driving with the Brakes On
Ian Heron
Integrated Architecture Value - Customer Presentation.PPTX
Integrated Architecture Value - Customer Presentation.PPTX
RajendraChougale2
Production System Design Support - Accialini Training & Consulting
Production System Design Support - Accialini Training & Consulting
Nicola Accialini
System design for the process industry - Andy Verwer
System design for the process industry - Andy Verwer
PROFIBUS and PROFINET InternationaI - PI UK
Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)
Nicholas Bowman
Building a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with Knime
Knoldus Inc.
Replace that cracked junk! Gotta do them.
Replace that cracked junk! Gotta do them.
tobiasaldini37
30+laws+of+systems+engineering
30+laws+of+systems+engineering
Basem Fallatah 惡悋愕 惺惡惆 悋惘忰 悋惠
Concurrent Engineering- for Environment & Sustainability
Concurrent Engineering- for Environment & Sustainability
IRJET Journal
Epic Estimation - Agile or High Risk Guesswork
Epic Estimation - Agile or High Risk Guesswork
IanHawkins_AgileDevelopment
Solving the Hidden Costs of Kubernetes with Observability
Solving the Hidden Costs of Kubernetes with Observability
DevOps.com
Whitepaper: The Next Evolution of Yokogawa CENTUM
Whitepaper: The Next Evolution of Yokogawa CENTUM
Yokogawa
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Kief Morris
5 strategies for enterprise cloud infrastructure success
5 strategies for enterprise cloud infrastructure success
Rogue Wave Software
Cost Effectiveness of Software Reuse Alternatives
Cost Effectiveness of Software Reuse Alternatives
Prof. Amir Tomer
Mb0044 production & operation mangement
Mb0044 production & operation mangement
Devendra Kachhi
Architecture Entropy
Architecture Entropy
Simon Greig
How Technology Architecture Choices Impact Business
How Technology Architecture Choices Impact Business
Quantel
SimCLIM USA
SimCLIM USA
climsys
Performance Testing
Performance Testing
vodQA
Chap11
Chap11
professorkarla
Jackrabbit OCM in practice
Jackrabbit OCM in practice
connectwebex
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
connectwebex

More Related Content

Similar to Presentation daniel takai (20)

Integrated Architecture Value - Customer Presentation.PPTX
Integrated Architecture Value - Customer Presentation.PPTX
RajendraChougale2
Production System Design Support - Accialini Training & Consulting
Production System Design Support - Accialini Training & Consulting
Nicola Accialini
System design for the process industry - Andy Verwer
System design for the process industry - Andy Verwer
PROFIBUS and PROFINET InternationaI - PI UK
Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)
Nicholas Bowman
Building a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with Knime
Knoldus Inc.
Replace that cracked junk! Gotta do them.
Replace that cracked junk! Gotta do them.
tobiasaldini37
30+laws+of+systems+engineering
30+laws+of+systems+engineering
Basem Fallatah 惡悋愕 惺惡惆 悋惘忰 悋惠
Concurrent Engineering- for Environment & Sustainability
Concurrent Engineering- for Environment & Sustainability
IRJET Journal
Epic Estimation - Agile or High Risk Guesswork
Epic Estimation - Agile or High Risk Guesswork
IanHawkins_AgileDevelopment
Solving the Hidden Costs of Kubernetes with Observability
Solving the Hidden Costs of Kubernetes with Observability
DevOps.com
Whitepaper: The Next Evolution of Yokogawa CENTUM
Whitepaper: The Next Evolution of Yokogawa CENTUM
Yokogawa
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Kief Morris
5 strategies for enterprise cloud infrastructure success
5 strategies for enterprise cloud infrastructure success
Rogue Wave Software
Cost Effectiveness of Software Reuse Alternatives
Cost Effectiveness of Software Reuse Alternatives
Prof. Amir Tomer
Mb0044 production & operation mangement
Mb0044 production & operation mangement
Devendra Kachhi
Architecture Entropy
Architecture Entropy
Simon Greig
How Technology Architecture Choices Impact Business
How Technology Architecture Choices Impact Business
Quantel
SimCLIM USA
SimCLIM USA
climsys
Performance Testing
Performance Testing
vodQA
Chap11
Chap11
professorkarla
Integrated Architecture Value - Customer Presentation.PPTX
Integrated Architecture Value - Customer Presentation.PPTX
RajendraChougale2
Production System Design Support - Accialini Training & Consulting
Production System Design Support - Accialini Training & Consulting
Nicola Accialini
Mule soft meetup__adelaide_october_2020_final (2)
Mule soft meetup__adelaide_october_2020_final (2)
Nicholas Bowman
Building a guided analytics forecasting platform with Knime
Building a guided analytics forecasting platform with Knime
Knoldus Inc.
Replace that cracked junk! Gotta do them.
Replace that cracked junk! Gotta do them.
tobiasaldini37
Concurrent Engineering- for Environment & Sustainability
Concurrent Engineering- for Environment & Sustainability
IRJET Journal
Epic Estimation - Agile or High Risk Guesswork
Epic Estimation - Agile or High Risk Guesswork
IanHawkins_AgileDevelopment
Solving the Hidden Costs of Kubernetes with Observability
Solving the Hidden Costs of Kubernetes with Observability
DevOps.com
Whitepaper: The Next Evolution of Yokogawa CENTUM
Whitepaper: The Next Evolution of Yokogawa CENTUM
Yokogawa
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Taming Cloud Sprawl - XConf Europe 2023 - Kief.pdf
Kief Morris
5 strategies for enterprise cloud infrastructure success
5 strategies for enterprise cloud infrastructure success
Rogue Wave Software
Cost Effectiveness of Software Reuse Alternatives
Cost Effectiveness of Software Reuse Alternatives
Prof. Amir Tomer
Mb0044 production & operation mangement
Mb0044 production & operation mangement
Devendra Kachhi
Architecture Entropy
Architecture Entropy
Simon Greig
How Technology Architecture Choices Impact Business
How Technology Architecture Choices Impact Business
Quantel
SimCLIM USA
SimCLIM USA
climsys
Performance Testing
Performance Testing
vodQA

More from connectwebex (19)

Jackrabbit OCM in practice
Jackrabbit OCM in practice
connectwebex
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
connectwebex
AEM 6 DAM - Integrations, Integrations, Integrations
AEM 6 DAM - Integrations, Integrations, Integrations
connectwebex
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?
connectwebex
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
connectwebex
SonarQube for AEM
SonarQube for AEM
connectwebex
Presentation thomas simlinger
Presentation thomas simlinger
connectwebex
five Sling features you should know
five Sling features you should know
connectwebex
Efficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQ
connectwebex
Web, Mobile, App and Back!
Web, Mobile, App and Back!
connectwebex
Tighten your Security and Privacy
Tighten your Security and Privacy
connectwebex
THE BREAK-UP - A user interface love story
THE BREAK-UP - A user interface love story
connectwebex
Configuring CQ Security
Configuring CQ Security
connectwebex
Integration Testing in AEM
Integration Testing in AEM
connectwebex
Sling Component Filters in CQ5
Sling Component Filters in CQ5
connectwebex
Integrating Backend Systems
Integrating Backend Systems
connectwebex
Scaling CQ5
Scaling CQ5
connectwebex
Auto-testing production CQ instances with Muppet
Auto-testing production CQ instances with Muppet
connectwebex
CQ Maven Methods
CQ Maven Methods
connectwebex
Jackrabbit OCM in practice
Jackrabbit OCM in practice
connectwebex
Building Creative Product Extensions with Experience Manager
Building Creative Product Extensions with Experience Manager
connectwebex
AEM 6 DAM - Integrations, Integrations, Integrations
AEM 6 DAM - Integrations, Integrations, Integrations
connectwebex
JCR, Sling or AEM? Which API should I use and when?
JCR, Sling or AEM? Which API should I use and when?
connectwebex
Build single page applications using AngularJS on AEM
Build single page applications using AngularJS on AEM
connectwebex
SonarQube for AEM
SonarQube for AEM
connectwebex
Presentation thomas simlinger
Presentation thomas simlinger
connectwebex
five Sling features you should know
five Sling features you should know
connectwebex
Efficient content structures and queries in CRX/CQ
Efficient content structures and queries in CRX/CQ
connectwebex
Web, Mobile, App and Back!
Web, Mobile, App and Back!
connectwebex
Tighten your Security and Privacy
Tighten your Security and Privacy
connectwebex
THE BREAK-UP - A user interface love story
THE BREAK-UP - A user interface love story
connectwebex
Configuring CQ Security
Configuring CQ Security
connectwebex
Integration Testing in AEM
Integration Testing in AEM
connectwebex
Sling Component Filters in CQ5
Sling Component Filters in CQ5
connectwebex
Integrating Backend Systems
Integrating Backend Systems
connectwebex
Auto-testing production CQ instances with Muppet
Auto-testing production CQ instances with Muppet
connectwebex
CQ Maven Methods
CQ Maven Methods
connectwebex
Ad

Presentation daniel takai

  • 1. Maintainability & Marketing Negotiating sensible schedules for content heavy, volatile system development Daniel 油TakaiBasel, 油24. 油Juni 2015
  • 2. 息 Unic - Page 2 are often cornerstones of marketing endeavors should usually serve business for many years require many different editors producing content 24/7 in many languages in a global environment are subject to frequent change Content heavy web systems
  • 3. 息 Unic - Page 3 Im a witness of failure
  • 4. 息 Unic - Page 4 because time-to-market but theyre rarely based on sound and sensible planning Schedules are tight
  • 5. 息 Unic - Page 5 Sorry, we already booked the TV spots.
  • 6. 息 Unic - Page 6 You agree with the schedule, chuckling about their naive innocence, knowing well that once the time comes nothing will be finished or working. You immediately plan a vacation for the release date. Option one
  • 7. 息 Unic - Page 7 You do the right thing and start negotiating. Option two
  • 9. 息 Unic - Page 9 - Avoid unnecessary and uncontrolled complexity - Foster trust - Respect the interests of others - State of the art - Work against unreasonable expectations - Do not squander resources Software professional ethics Examples taken from the Ethics guidelines of the Swiss Informatics Society
  • 10. 息 Unic - Page 10 What will make your project later? adding manpower no requirements, but a detailed specification, 3000 pages service integrations no architecture waterfall or no understanding of agile stakeholder communication
  • 11. 息 Unic - Page 11 Qualities One of the main reason of software failure are missing quality requirements. Performance Security Usability etc.
  • 12. 息 Unic - Page 12 Qualities A quality usually has a large impact on the architecture of a system and therefore on the cost of the system. Think Availability 99.999%. So for each quality desired, a list of measures to reach that quality must be discussed and negotiated.
  • 13. 息 Unic - Page 13 Maintainability describes the ability to change your software system across its entire lifecycle.
  • 14. 息 Unic - Page 14 Conceptual Integrity describes the degree of cohesion and consistency of requirements
  • 15. 息 Unic - Page 15 Conceptual Integrity
  • 16. 息 Unic - Page 16 If there is no integrity your system will be more difficult to change because conflicting requirements will be mirrored in the code base your system will be more difficult to change because the code base is larger if cohesion is low the usability of your system will degrade due to low cohesion because the intent is more difficult to explain to a visitor
  • 17. 息 Unic - Page 17 Consistency describes the continuous application of design decisions fosters the unified usage of product, production and documentation technologies is basically about creating and keeping a known environment that the team is comfortable with
  • 18. 息 Unic - Page 18 Consistency
  • 19. 息 Unic - Page 19 If there is no consistency the changeability of your system suffers, because due to increased complexity, changes take longer and are therefore more expensive to implement your system will suffer a slow, agonizing death
  • 20. 息 Unic - Page 20 Analyzability desribes the effort needed for analyzing a defect describes the effort needed for failure diagnosis desribes the effort required for identification of parts to be modified can be pro-active
  • 21. 息 Unic - Page 21 Analyzability
  • 22. 息 Unic - Page 22 If your system is not analyzable bugfixing will take longer change impact analysis will be spotty, resulting in large cost over- or underruns you run the risk of performance and security issues
  • 23. 息 Unic - Page 23 Testability is concerned with being able to verify the quality of the system includes the physical possibility of testing but is mainly concerned with being able to automate tests as this is the most sustainable investment
  • 24. 息 Unic - Page 24 Testability
  • 25. 息 Unic - Page 25 If you lack testability you might as well stop now and save yourself the trouble
  • 26. 息 Unic - Page 26 Changeability describes how your system can be changed applies to both adaptive as well as perfective changes determines cost per change across the system lifecycle
  • 27. 息 Unic - Page 27 Changeability
  • 28. 息 Unic - Page 28 If you lack changeability you will have a hard time getting changes into production which means increased costs and time-to-market which means your system will die sooner rather than later
  • 29. 息 Unic - Page 29 Once the system cannot be changed within a reasonable amount of time and for a sensible amount of money, it is considered legacy. Legacy 油Scare
  • 30. 息 Unic - Page 30 Negotiation techniques
  • 31. 息 Unic - Page 31 Step 1) Create awareness Software development is hard because software is intangible software is malleable software has hidden complexity So discussing required system qualities, especially maintainability is very important
  • 32. 息 Unic - Page 32 Step 2) Investment appraisal Having explained the legacy scare, find out how many years the system shall live Then discuss the change rate and the number of releases scheduled per year Calculate cost per release with varying factors depending on how much is invested in maintainability
  • 33. 息 Unic - Page 33 Step 3) Marchitecture Create a simple building block diagram which shows the main system components. Use this to illustrate change and planning discussions.
  • 34. 息 Unic - Page 34 Step 4) Separation of concerns Split content form its representation via a defined content model Use content page tables to further editorial work
  • 35. 息 Unic - Page 35 Step 5) Decouple content entry Use a separate system for content entry You can use another AEM instance for this, or a SAAS service like GatherContent
  • 36. 息 Unic - Page 36 Step 6) Scope Use the iron triangle to your advantage and limit the scope Less is more, especially in the beginning of a web project
  • 37. 息 Unic - Page 37 The iron triangle of project management Cost Time Scope Quality
  • 38. 息 Unic - Page 38 The Scotty Principle Gross overestimations will buy you time, but will they help you in the long run?
  • 39. 息 Unic - Page 39 Step 7) Foster trust Whatever 油happens, 油you 油 must 油deliver 油as 油promised. Software 油must 油work. 油There 油 can 油be 油no 油such 油thing 油as 油a 油 functional 油defect.
  • 40. 息 Unic - Page 40 Find out more! Im publishing a series in Java Magazin discussing quality requirements of web systems
  • 41. 息 Unic - Page 41 Join my workshop on web architecture in Munic @ W-JAX 15 6. November 2015 https://jax.de/wjax2015/sessions/webarchitektur-und-qualitaetsmerkmale
  • 42. 息 Unic - Page 42 @danieltakai
  • 43. 息 Unic - Page 43