GETTING SOFTWARE RIGHT
Outsourcing needs software measurement
Dr. Werner Heijstek
10 November 2016
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
Werner Heijstek
M.Sc. and Ph.D. from Leiden University
> Software architecture design, global software development, and model-driven development
> Capgemini ADC (India)
> Haifa University (Israel)
> Victoria University of Wellington (New Zealand)
Senior consultant at Software Improvement Group
> Managing teams delivering management advice
> Product development and innovation
Lecturer and researcher at Leiden University (LIACS)
Who am I?
Page 2 of 11
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
Few software development roles involve software
Page 3 of 11
Interaction Designer, Chief Engineer, Architect, GUI Designer, Requirements Analyst, Storyboard Artist, Content Artist, Technical Writer, Internal Marketeer, Project Public
Relations, Internal Communications, Cybrarian, Amanuensis, Content Maven, Technology Maven, Methods and Practices Maven, Metricant, Operations Maven,
Production Operations Maven, Development Assets Security Maven, Release Coordinator, Stakeholder Security and Privacy Maven, Toolsmith, Test and
Integration Maven, Designer, Coder, Risk Maven, Full-time Stakeholders, Feedback Maven, Team Psychotherapist, Project Facilitator, Coach, Process Champion,
Administrator, Production Database Designer, Issues Maven, Standards Maven, Style Maven, Budgeteer / Scrounger, Accessibility Maven, Subcontracts Maven, The
Extended Team, Product/Service Manager/Owner, Executive, Other Stakeholders, Stakeholder Proxy, Human Resources, Domain Expert, Value Chain Maven, Content Provider, Development Process Advisor / Champion / Steward, Product Liability / IP
Lawyer, Contracts Lawyer, Concierge
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
The functional viewThere are many ways to implement the same functionality
traditional observer
functionality
implementation Software approach
software system
Page 4 of 11
“Quality is defects in use” “Quality is software construction”
/ PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
Software development outputWhat needs measurement?
Page 5 of 11
business valuefunctionality profit happinesscodeconversations world peacethoughts
Means to ends
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
Software development outputSoftware is not just an artefact it is the artefact
Software Development
Functionality
Architecture (non-functionals)
produces
implements
Traditionally, software development produced documents and software.
The past 15 years, this has shifted to mostly software.
Page 6 of 11
Documentation
Software
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
Now more than ever
Page 7 of 11
Software architecture matters
`
Reliability
Portability
Functional Suitability
Security
Compatibility
Usability
Maintainability
Performance Efficiency
25010
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
Forms of software architecture
Page 8 of 11
Software architecture described or prescribed in a document
Implemented software architecture
Mental modelof softwarearchitecture
(slightly different)Mental model
of sw. arch.
Shared mentalmodel
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
The distributed development challenge
Page 9 of 11
1
social-cultural temporal geographical
2 3
Distance hinders Shared Mental Model
development and maintenance
Software Improvement Group / PUBLIC / “Outsourcing Needs Software Measurement” – Dr. Werner Heijstek
What can software tell you?
> What progress is made?How much work is performed?How many people are at work?
> What is the quality of the individual contributions to the system?Is my system developed by the experienced developers I was promised?
> What is the unit test coverage? How much demonstrably works?
> Does the implementation align with architecture concerns Relating to, e.g., security or performance?
> What is the effort and risk associated with transitioning to production/maintenance?
Software-based outsourced software management
Page 10 of 11