transparency about costs and risks in software development
DESCRIPTION
TRANSCRIPT
Transparency about Risks and Costs in Software Development
by Business Intelligence & Visual Analytics How to Boost Development Productivity
Dr. Johannes Bohnet [email protected]
BITKOM Software Summit
September 24th, 2013
Frankfurt, Germany
www.softwarediagnostics.com | Transparency Platform
• Software Diagnostics is based on multiple years of R&D at the Hasso-Plattner-Institute for IT-Systems Engineering (HPI).
• Research cooperation with HPI: Access and integration of cutting edge technologies into the products of Software Diagnostics.
• Target Group: Large Organizations and Medium Companies with a significant volume of in-house software development as well as external development (outsourcing).
9/24/2013 2
Software Diagnostics The Software Intelligence Company
www.softwarediagnostics.com | Transparency Platform 9/24/2013 3
Challenge: Software Development is like Constructing a Megacity …without seeing the shape and quality of buildings and infrastructure.
…without seeing the construction workers and their activities.
Software Development is critical to all Industries: • Banking & finance, automotive, communications, transportation,
healthcare, utilities, manufacturing, …
However, Productivity of Developers is astonishingly low: Microsoft Research 2006
34%
66% Visible Functionalities
(productive time)
Complexity Fighting
& Bug Fixing
(non-productive time)
www.softwarediagnostics.com | Transparency Platform 9/24/2013 4
Productivity How to measure? How to increase?
www.softwarediagnostics.com | Transparency Platform 9/24/2013 5
Productivity How to measure? How to increase?
The Software Diagnostics Approach
Measure: How easy is it for developers to work in the existing code?
www.softwarediagnostics.com | Transparency Platform
• Significant amount of source code exists
• Architecture optimized on initial requirements
• A trade-off is implemented
• Fragile requirements encapsulated in a single code unit
• Never-ever-changing requirements scattered over many code units
9/24/2013 6
Why Code Decays? After having finished the first release…
www.softwarediagnostics.com | Transparency Platform
Code Complexity • Developers and time are scarce resources
• Only focus on functionality (visible to customer/business)
• No time for cleanups
• Code becomes more and more complex
Architecture Appropriateness • The world (business, technology, …) turns
• “Never-ever-changing” requirements become fragile
• Adapting such requirements means coding in scattered functionality
9/24/2013 7
Why Code Decays? What over time happens…
www.softwarediagnostics.com | Transparency Platform 9/24/2013 8
Why Code Decays? The Communication Dilemma
The dev team/management
“feels” the need for
complexity reduction and
architecture reshaping.
BUT: How to convince the
customer/business to pay for
this invest?
www.softwarediagnostics.com | Transparency Platform 9/24/2013 9
Productivity How to measure? How to increase?
The Software Diagnostics Approach: • Identify and Eliminate Productivity Pain Points
• Transform Non-Productive Development Time into Productive Time
• Boost Overall Productivity
34%
66%
Visible Functionalities
(productive time)
Complexity Fighting
& Bug Fixing
(non-productive time) Microsoft Research 2006
www.softwarediagnostics.com | Transparency Platform
Identifying and Visualizing Productivity Loss Need-for-Action is where People are Overwhelmed by Complexity
9/24/2013 10
Maybe Need-for-Action
Complex Code
Need-for-Action
Complex Code…
…being modified by Developers
Urgent Need-for-Action
Complex Code…
…being modified by Developers and
…not being secured by tests
+
+ +
www.softwarediagnostics.com | Transparency Platform
Software Maps provide a communication platform for all stakeholders. Objective Information via Visual Analytics.
Data Mining & Problem Detection: Complexity risks, unhealthy process patterns, security risks, testing risks, effort hotspots, …
Business Intelligence for Software Development Transparency about Productivity Losses and Future Risks for All Stakeholders
Software Analysis Data: The knowledge base containing every detail about the development status and its history.
9/24/2013 11
CIO Architect Quality
Manager
Project
Manager Developer Dev
Team
Development
Manager
Gathering objective information about the software from the development infrastructure.
www.softwarediagnostics.com | Transparency Platform
Software Maps – A Striking Visualization of Need-for-Action Identifying Need-for-Action in Development of “JBoss” (Red Hat Inc.)
Software System Example: JBoss (Red Hat Inc.); 800.000 LoC Java; >100 developers
9/24/2013 12
Team Toronto Team Bangalore Team Prague Team Potsdam
Module
Code
Unit
Application
Time Line
Development Activity
www.softwarediagnostics.com | Transparency Platform
Productivity Pain Points Map High Risks and Costs because of Development Hotspots in Complex Code
Color: Number of Changes | Height: Complexity | Ground Area: Lines-of-Code
9/24/2013 13
Complex & Often Changed High risk of introducing bugs
Cost producer due to cautious development
www.softwarediagnostics.com | Transparency Platform
Testing Risk Analysis Is Complex Code Secured by Tests?
Color: Code Coverage by Tests (grey = not a single test!) | Height: Complexity | Ground Area: Lines-of-Code
9/24/2013 14
Complex & Not Tested (grey) High risk of introducing bugs
Test the code unit or reduce complexity
www.softwarediagnostics.com | Transparency Platform
• CIO
• Development Management
• Project Manager
• Quality Manager
• …
• …
• Developer
9/24/2013 15
Transparency about Risks and Coding Activities Advantages for many Roles in Software Development
www.softwarediagnostics.com | Transparency Platform
Complexity Map High Risks and Costs when under Development
Color: Number of Changes | Height: Complexity | Ground Area: Lines-of-Code
9/24/2013 16
Complex High risk of introducing bugs
Cost producer when under development
www.softwarediagnostics.com | Transparency Platform 9/24/2013 17
Challenges in Software Development Challenges for Project Managers
Architect
Quality Manager
Project Manager
Developer
Dev Team
Development
Manager
CIO
Project
Manager I need to see coding risks in
advance during planning to
avoid bad surprises in the
course of the development
iteration.”
www.softwarediagnostics.com | Transparency Platform
Monitoring Complexity Seeing Problems while being created – Acting proactively instead of reacting when it is too late
9/24/2013 18
Complexity Increase during Coding Activity in Calendar Week 42
Early warning system for long-term costs: Dramatic increase of complexity!
Force teams to cleanup code before continuing.
www.softwarediagnostics.com | Transparency Platform
Efficient Steering of Distributed Teams (Outsourcing) Monitoring the Quality Delivered by External Vendors?
9/24/2013 19
Do external developers deliver
high code quality?
www.softwarediagnostics.com | Transparency Platform 9/23/2013 20
Challenges in Software Development Challenges for Development Managers
Architect
Quality Manager
Project Manager
Developer
Dev Team
Development
Manager
CIO
Development
Manager „I need a way to monitor* team
activities and delivery-quality
of my distributed teams and
external contractors.“ * All regulations concerning the German
“Datenschutzgesetz”, in particular BDSG §4, are
considered and by no means violated.
www.softwarediagnostics.com | Transparency Platform
Focusing Tests on Complex Code with Recent Modifications Increasing Test Effectiveness – Finding More Bugs with Less Testing Effort
9/24/2013 21
Color: Number of Developers | Height: Number of Changes | Ground Area: Lines-of-Code
Focus regression testing on…
complex modules with the
most changes.
www.softwarediagnostics.com | Transparency Platform 9/23/2013 22
Challenges in Software Development Challenges for Quality Managers
Architect
Quality Manager
Project Manager
Developer
Dev Team
Development
Manager
CIO
Quality
Manager “I need to see complexity and
development hotspots to focus
testing activity and disarm the
biggest risks first.”
www.softwarediagnostics.com | Transparency Platform 9/23/2013 23
Challenges in Software Development Challenges for Developers
Architect
Quality Manager
Project Manager
Developer
Dev Team
Development
Manager
CIO
Developer “I need a way to show how
knotted this spaghetti code is
to argue for time for cleanups
and refactorings.”
Software Diagnostics, Software Diagnostics logo, Transparency Platform, Flight Recorder and TraceXplorer ABAP are trademarks or registered trademarks of Software Diagnostics GmbH, Germany and other countries. All other company and product names are the property of their respective owners. © 2012 Software Diagnostics. All right reserved.
Software Diagnostics GmbH Babelsberg Studios August-Bebel-Str. 26-53 D-14482 Potsdam
Sales Web E-Mail
+ 49 331 - 7062 340 www.softwarediagnostics.com [email protected]
Thank You For Your Attention
About Software Diagnostics
Software Diagnostics offers solutions which provide management and development teams, for the first time, with a comprehensive overview of risks
in their software development projects. On the basis of objective data on the software system, development processes and developer activities,
managers are able to make informed decisions. The solutions of Software Diagnostics evaluate source code, run-time analyses and code repositories
having stored all activities of the development teams. The findings are presented by “software maps” which can be understood at a glance by all
stakeholders involved in the project.
The products offered by the Potsdam based company, a spin-off of the Hasso-Plattner-Institute, include Transparency Platform, with which
businesses can identify risks in their software, Flight Recorder, for the analysis of the root-cause analysis in case of errors, and TraceXplorer ABAP, for
performance optimization of SAP systems. Companies including ABB, Heidelberger Druckmaschinen, Deutsche Post, Adidas or VW trust Software
Diagnostics to enable them to reliably manage their development projects.