White Paper What is it and how can it be achieved? Successfully driving business value from software quality management is imperative for many large organizations today. Historically, many Quality Assurance initiatives and processes have been targeted at meeting specific regulatory or compliance obligations rather than supporting IT in meeting business objectives in terms of cost, service and agility. Poor software quality both initial and degraded over time is a key driver of technical debt and reducing this evel of debt is a key goal for most organizations in these challenging economic times. Understanding and managing software applications and their quality in context of the real world business they support requires deep understanding of the complete structure of all components and the way they interconnect to execute end to end business processes to ensure contextual software quality throughout the IT landscape. The EZSource 3 step approach takes a practical view of what needs to be done and what can be achieved from Implementing software quality management.
What is? 77% Application of organizations software agree quality that is a aligning software combination quality of high metrics quality code with the business components delivers and high significant quality interactions value. and interdependencies Only to create 29% a actually functioning do it. whole. Few IT development teams are able to guarantee consistency and quality once code components are assembled into that whole. Over 80% of quality issues are not uncovered until integration test by which point it is often expensive and time consuming to rectify. Managing the quality of business software applications is rapidly moving from the subjective to the objective, as tools that support and automate the process advance become affordable and practical to implement. That said, simply analyzing and assessing individual code components, whilst in itself valuable for improving the quality of development work is not what intrinsically delivers business value in terms of : Cost to serve Operational performance Service delivery Maintainability Added to that, the level of Technical Debt an organization has is also driven in part by software quality, as the accumulated cost of bringing application software up to date is greatly increased by poor quality and high complexity. Driving software quality means appraisal, improvement and management across the entire IT value chain which in real terms is multiple application suites serving end to end business processes. Think of a typical business process; in today s world, it is likely to cross IT boundaries in terms of : Software packages Application languages Technical environments It is also likely to cross boundaries enabled by complex interfacing or integration software layers with complex mapping. For example, in a Banking environment, a client front end written in Java may link to credit processing on a mainframe, written in COBOL which in turn links to a SAP Core Banking package : Page 1
CIO s and IT management teams need to begin a new type of dialogue with the rest of the business about maintaining integrity of critical application assets Gartner: Measure and Manage Your IT Debt. August 2010 Applying consistent quality metrics and managing those across all the different applications, components and environments is a real challenge. Practically speaking, these are required to underpin a shift towards Agile development methodologies, where a focus on compressed delivery timescales and improved quality of the end result needs careful management. Embedding processes and automated, integrated tools throughout the IT organization ensures that quality standards are defined, applied and managed right through the application lifecycle by IT role and provides the right information at the right time in that lifecycle for software quality management to be applied. IT Role Architecture Design Development Test Support Management Focus Areas to apply Architecture standards, Application Architecture, Integration Architecture Technical Platforms, Upgrade Planning, IT Strategy Application Design, Impact Assessment, Coding Standards, Integration, Common Services Design Coding Standards, Code Quality, Integration, Unit Test, Fault Fixing, Enhancements Integration Testing, UAT, Regression Testing Application Maintenance, Fault Analysis/Resolution, Application Performance Monitoring Application Portfolio Management, Change Impact Analysis, Service Management, Program/Project Management Driving software quality right through the lifecycle ensures that : Software quality issues are identified and resolved early Software quality is monitored using key metrics such as complexity and cost Improvements are tracked over time Outsourced delivery is managed to a high level of quality Applications delivered are robust and fit for purpose Maintenance and enhancement becomes faster and cheaper Technical debt is understood and reduced as a result In this way the IT organization can demonstrate tangible business value from the application development and maintenance budget (typically around half of the overall IT budget) In terms of : Reducing risk from application outages, compliance issues, security threats Underpinning the move to Agile development processes Reallocation of valuable resources to application enhancement for business value rather than pure application maintenance and fault fixing Exploiting existing application assets to the maximum Page 2
Structural quality of business applications drives more than 50% of application development and maintenance costs in most large organizations. The 3 step approach to embedding Software Quality Management in your organization To successfully institutionalize software quality management processes and tools within an IT organization, there needs to be an easy to understand, consistent approach applied with the same toolset supporting each step providing a single version of the truth about the inventory, structural quality and improvement over time. This should be based on objective analysis of the actual code components rather than subjective assessment of design information which is often out of date or does not provide enough in-depth information to developers to apply quality standards. The lack of detailed inventory and structural information in most organizations leads to IT management teams having limited awareness of how software quality affects costs, resources and service. More than 80% of companies say they collect and report on quality metrics; only 24% of them actually use professional tools to underpin this process. Building on that platform to assess changes in depth in order to make improvements, establish a baseline for changes and actively improve the architectural and structural quality of the entire application landscape gives a higher quality of delivery. Subsequent management of software quality depends on accurate information feeding clearly defined key metrics tracked over time to ensure improvements are (a) being achieved and (b) contributing tangible value to the organization. After more than a decade of tight application maintenance budgets with a subsequent backlog of application maintenance and improvement activity in many organizations, the recognition that improving end to end software quality addresses these challenges effectively means that accurate and accessible information at each stage of the process is more critical than ever, with automated analysis and reporting tools providing the foundation. Page 3
Step 1 Appraise Up to 50% of maintenance effort is spent trying to understand applications rather than adding functionality. In many large organizations there will be a differing view of the application software portfolio depending on who you talk to. This is largely influenced by their perspective; developers look at code components, architects look at the overall landscape/standards, project managers look at costs and resources and most importantly business users look at functionality and the level of service provided. Getting a common baseline about the quality of the entire application software portfolio is at best non-trivial and at worst an IT manager s worst nightmare unless there is : A clearly defined process A commonly agreed set of metrics An integrated suite of tools to automate data collection (and keep it up to date) An easy to use reporting/tracking mechanism Implementing strategic application lifecycle planning and portfolio management is next to impossible without the first stage on the appraisal journey the INVENTORY. This should include : All technical platforms and languages All application components All interdependencies It should be derived from the application source code WHICH IS ACTUALLY DEPLOYED and reflects the true situation rather than from design documentation which may be incomplete and out of date. The second stage, ASSESSMENT is the next level of information, based on the inventory. This is a more in depth analysis of the applications and their components using either industry standard or custom metrics and is the first view of application software quality. Typically, this would include : Complexity (e.g. Function Point, McCabe, Maintainability Index, Heuristic) Quality (e.g. Dead Code, Failed Jobs) Cost (e.g. Development Weekly Cost, Planned vs Actual Cost) This then allows an overall view to be formed of the application software quality and prioritize areas for improvement whether by: Simplification Enhancement Upgrade Modernization Replacement Cloud migration It should also support estimation of change impact in terms of cost, time and resources. Page 4
Step 2 Improve Structural quality issues in applications are often the root cause of outages, defects, poor performance and security violations. Without deep, automated understanding and impact analysis capabilities they can often be almost impossible to detect. Determining how best applications can be improved, both individually and in context of the overall application software portfolio and then applying the improvements in a development context requires discipline, accurate analysis information and automated tools which can handle the complexities of change impact across application platforms, languages and versions. Development teams need a common repository which provides them with a continually updated view of the application code components across development, test and production environments plus role based views according to job function. Using a common toolkit enables developers to consistently conform to : Architectural constraints, especially in large, legacy systems Coding standards Use of common services and interface mechanisms Consistent use of data, including update mechanisms Compliance regulations Being able to assess impact, perform where used type analysis allows developers to focus only on affected components and reduces the risk of structural defects only manifesting themselves at the time of integration test. Technical teams can exchange information and make application software improvement across technical platforms. This provides an accurate basis for integration, risk based regression and user acceptance testing as all the changes can be executed in parallel and packaged for release. Automated updates to code analysis based on changes can also be used to ensure immediate quality and consistency metrics across development, test and production environments. This can be particularly helpful to maintaining quality in an organization where core application maintenance and enhancement activity is outsourced, either to a single or multiple providers. It also enables the IT organization of the application owner to ensure that the outsource provider is : Adhering to architectural standards Adhering to coding standards Committed to improving quality Institutionalizing these tools and techniques helps IT to deliver todays software assets rather than tomorrow s legacy headache. Page 5
Step 3 Manage Actively monitoring and managing quality improvements over time is a critical process for IT managers to reduce application rework, improve time to market and accurately predict performance. Managing application software quality no longer has to be dependent on IT managers having in depth technical understanding of application code components. It also reduces reliance on out of date or incomplete design documentation and removes the worst case scenario that entire application knowledge is lost due to staff turnover. Using automated reporting and dashboard tools, based on the single repository of analysis results generated during the Assess and Improve steps, automatically updated as the quality improvements are made to the underlying code allows IT managers at all levels to gain insight into how these improvements are delivering tangible business value. Combining and correlating key application software metrics around quality and complexity with configurable IT business metrics such as : Cost; Resource; Time to implement; Performance; Service delivery can make all the difference in terms of understanding not only today s situation but also whether the IT organization is improving over time. This drives : Investment prioritization for new application projects and programs Higher levels of project certainty on timescale, cost and resources Freeing up of IT budget from maintenance to business enhancement Better dialogue between business and IT on the value delivered Of course, management of application software quality is an ongoing process and needs to be maintained. More than 80% of organizations who operate a mature management process supported by robust, dedicated tools for application software quality management clearly demonstrate value to their business organization. Page 6
Recommendations High quality software is more than just high quality code. Using automated tools and technology to support appraisal, improvement and subsequently manage software quality can reduce application development and maintenance costs by up to 50%. Whatever the cause of poor application software quality in an organization, it is clear that the cost of fixing it is immense. Quality weaknesses stem from 2 primary sources : Violation or lack of good architectural and coding standards, resulting in structural flaws Legacy code issues carried over from release to release, resulting in applications that do not integrate correctly with new applications or have defects not previously exposed With hindsight, many past mistakes and expedient decisions would not be repeated by implementing a robust process and supporting toolkit enables us to fix past mistakes and take care that they do not recur. Using our 3 step approach, we recommend that you take action now to improve your software quality management and get on the road to significant reductions in both Technical Debt and future development and maintenance costs. 1. Appraise your application software portfolio a. Establish your baseline b. Set your priorities for improvement c. Set your improvement targets and define your metrics d. Plan your improvements and honestly assess the cost 2. Improve the quality of your application software a. Simplify and modernize where you can b. Transform where you can t or where better solutions are available 3. Manage your software quality continuously a. Track/monitor your improvements over time b. Adjust and adapt your metrics to business needs c. Look at your entire application software portfolio, not just point code Page 7
Using EZSource to underpin Software Quality Management has delivered savings in excess of 30% to our customers on application maintenance and development activities. About EZSource Established in 2003 and now with more than 50 customers worldwide, EZSource is a market leader in application understanding and measurement; we address both the mainframe, distributed and SAP/ERP worlds with our EZSource suite of products. We have achieved a proven track record of value delivery with high profile clients such as CA, Maybank, 7-11 and Fujitsu plus proven partnership potential with large software and services providers such as CA, SAP, Serena, IBM, and CSC. Our 3 step approach to has been designed to be automated and supported by our EZSource product suite. About the author Bev Brookes is VP Marketing & Services for EZSource. Prior to joining the company in 2010, Bev was an IT Advisory Partner with KPMG in London and with Deloitte in Zurich With over 25 years in the IT industry, assisting customers with major, business driven IT transformation programs and working with global CIO s on IT strategy and applications portfolio management, she has a proven track record of delivering business value from IT. Contact her at bbrookes@ezsource.com or visit our website www.ezsource.com Page 8