SQS Group Limited Managing Code Quality and Delivery in the 21 st Century Application Intelligence Sebastian Paczynski.

Slides:



Advertisements
Similar presentations
Options appraisal, the business case & procurement
Advertisements

Test Automation Success: Choosing the Right People & Process
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Chapter 7: Key Process Areas for Level 2: Repeatable - Arvind Kabir Yateesh.
In Europe, When you ask the VET stakeholders : What does Quality Assurance mean for VET system? You can get the following answer: Quality is not an absolute.
Project management Project manager must;
W5HH Principle As applied to Software Projects
Stepan Potiyenko ISS Sr.SW Developer.
1 / 24 CS 425/625 Software Engineering Software Evolution Based on Chapter 21 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley,
Capability Maturity Model (CMM) in SW design
Unit Five – Transforming Organizations
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Planning. SDLC Planning Analysis Design Implementation.
Functional Testing Test cases derived from requirements specification document – Black box testing – Independent testers – Test both valid and invalid.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
SEC835 Database and Web application security Information Security Architecture.
Extreme Programming Software Development Written by Sanjay Kumar.
Product Quality, Testing, Reviews and Standards
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 2 The process Process, Methods, and Tools
CLEANROOM SOFTWARE ENGINEERING.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Testing – A Methodology of Science and Art. Agenda To show, A global Test Process which work Like a solution Black Box for an Software Implementation.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Service Transition & Planning Service Validation & Testing
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
IT Requirements Management Balancing Needs and Expectations.
Top Down View of Estimation Test Managers Forum 25 th April 2007.
Software Metrics – part 2 Mehran Rezaei. Software Metrics Objectives – Provide State-of-art measurement of software products, processes and projects Why.
IT Infrastructure Management IT Infrastructure Library Best Practice.
This class cannot be shared or copied without the written permission of PracticeWorks Systems, LLC.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
Systems Engineering Simulation Modeling Maintenance Analysis Availability Research Repair Testing Training Copyright © 2009, David Emery & D&S Consultants,
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Program Development Cycle
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 9 Software Quality Assurance.
LOGO TESTING Team 8: 1.Nguyễn Hoàng Khánh 2.Dương Quốc Việt 3.Trang Thế Vinh.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
SoftwareServant Pty Ltd 2009 SoftwareServant ® Using the Specification-Only Method.
Quick Recap.
Chapter © 2015 Pearson Education, Inc. Publishing as Prentice Hall.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Project Management Strategies Hidden in the CMMI Rick Hefner, Northrop Grumman CMMI Technology Conference & User Group November.
Lecture Notes - Richard Ssembatya1 Information System Project Management Lecture Five By Richard Ssembatya MSc. Cs, BSc CS, CCNA, IT Essentials, ICDL Institute.
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
Pertemuan 14 Matakuliah: A0214/Audit Sistem Informasi Tahun: 2007.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Configuration Management
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
BANKING INFORMATION SYSTEMS
Chapter 18 Maintaining Information Systems
Preventing Medical Device Recalls
Quality Management Perfectqaservices.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
CS 425/625 Software Engineering Software Evolution
Software life cycle models
Baisc Of Software Testing
Software Verification, Validation, and Acceptance Testing
CS310 Software Engineering Lecturer Dr.Doaa Sami
Presentation transcript:

SQS Group Limited Managing Code Quality and Delivery in the 21 st Century Application Intelligence Sebastian Paczynski

© SQS Group Ltd. | AI | January 2009 | Page 2 Improve the Quality of Code and Ensure Delivery Assess Code Maintainability Compare Code Quality Avoid Legal License Pitfalls But what about meeting deadlines? The Department of Commerce's National Institute of Standards and Technology (NIST) estimates that software bugs cost the U.S. economy nearly $60 billion annually and that improved testing could eliminate more than one-third of software failures. The report explained that almost 80% of development costs entail identifying and correcting defects Improving software code quality will help meet deadlines and deliver high quality software that meets the client needs Management Challenges in Delivering Quality Code

© SQS Group Ltd. | AI | January 2009 | Page 3 To improve any process we need to know where we are and where we want to be.  To get from point A to point B we need to know where they are How can we identify where we are  Need a defined process that is repeatable and cost effective  Code Reviews are useful but costly, not free of emotion  Need to continually assess software quality to assess progress of improvements (compare code quality) Where should we be  There is no “perfect world scenario” - Money and time are limiting factors but what is “good enough”?  How are our competitors doing? What can we do to ensure that potential issues are found early during development as opposed to during testing (or production) when it may be too late for major changes to be implemented How can we ensure that development teams or vendors adhere to a certain level of quality? Improve the Quality of Code

© SQS Group Ltd. | AI | January 2009 | Page 4 Average developer makes ± 125 errors for every thousand lines of code written Even if only 10% of these errors are serious, this equates to about 250 major coding errors in an application of 20,000 lines of code which is a relatively small system, especially in the enterprise environment Issues found early in the development lifecycle are significantly cheaper to fix compared to when found late in the development lifecycle Improving quality ensures that developers are free to get on with the task as opposed to wasting time on fault finding and fixing Poor architecture can cause many quality problems including but not limited to:  Fragility  Lack of scalability (Code Maintainability  )  Resistance to modification (Code Maintainability  ) Software developers must be aware of the architecture and the relationships which exist between classes and/or libraries and ensure that local changes do not have adverse effects elsewhere Why Should We Improve the Quality of Code

© SQS Group Ltd. | AI | January 2009 | Page 5 Software Requirements Validation  Validate requirements to ensure that they are correct, unambiguous, complete and verifiable Software Architecture Verification  Verifies that the code written adheres to the technical architecture design Software Architecture Evaluation  CMMI of IT Architectures  Based on the Architecture Trade-off Analysis Method (ATAM) of the Software Engineering Institute  Established and tested procedure  Reliable results as decision basis  Consideration of technical and functional aspects  Examines the architecture of an application regarding strategic goals such as growth, future interoperability etc Code Quality Management  Static & Dynamic Code Analysis to find programming errors  Utilise agreed quality criteria so that the process is easily repeatable – gauge quality over time Helps define clear quality gates between each phase in the SDLC What can we do?

© SQS Group Ltd. | AI | January 2009 | Page 6 Why should we worry about code maintainability – there is a project to be delivered  Research shows around 67% of the total cost of ownership over the application’s life cycle is the maintainability of code Assess Code Maintainability 3% 5% 7% 15% 67% Analysis Specification Design Implementation Test Maintenance

© SQS Group Ltd. | AI | January 2009 | Page 7 Application needs to be able to evolve and be upgraded in a cost effective manner as the business needs outgrow the initial requirements How complex is my code? Code Quality Management Review will help to assess the maintainability of code in terms of the following:  Readability  Ease of maintenance, debugging, fixing, modification and portability  Complexity rating Software Architecture Verification - Helps to ensures that code has followed design and allow for easier maintenance in the future since the product follows the documentation Software Architecture Evaluation - Helps to ensure that the solution is in line with the organisation’s strategic goals and will meet future demands Assess Code Maintainability continued

© SQS Group Ltd. | AI | January 2009 | Page 8 How do we select the right vendor partner  How can we be sure that the vendor partner uses industry best practises and has experienced developers? How effective is our offshore development team  How can we compare the code produced by onshore and offshore teams?  What is the real cost of moving to offshore? How do we perform against our competitors? How do we recognise the “stars” in our team  What about teams that use different platforms and/or different languages? Need a method to compare code quality that is objective, repeatable and free from emotion  Need standardised criteria Compare Code & Design Quality

© SQS Group Ltd. | AI | January 2009 | Page 9 AI can help to gauge the intrinsic quality of code and design deliverables that will enable management to make informed decisions and compare different code bases even if they have been written in different programming languages  Compare vendors by evaluating previously written code and the associated designs  Compare different teams  Identify and recognise “stars” in the programming team in a repeatable and objective manner  Help to provide incentives for good quality practises throughout the project team Compare Code & Design Quality continued

© SQS Group Ltd. | AI | January 2009 | Page 10 Open Source Software is of a high quality and is “free”  Or is it? Gartner: In 2011, 80% of the Global 2000 Companies will use Open Source Software (OSS) in their business critical applications The commercial usage of Open Source is bound to license conditions that potentially involve disclosure of your source code Software vendors are stepping up efforts to identify, audit and prosecute organizations that are not compliant with their software licensing agreements 2006 survey conducted by Gartner Research revealed that 35% of companies had experienced an on-site software audit from a major software vendor How much Open Source or Commercial Software are we using  Where is it from?  What are the legal implications?  How do we find it? Static code analysis tools (License compliance management) can help to answer these questions and uncover hidden legal risks Legal License Pitfalls

© SQS Group Ltd. | AI | January 2009 | Page 11 However, this isn’t a silver bullet The need for black box testing of functionality cannot be overlooked Hybrid / grey testing Code Quality Management and validation of software deliverables is being adopted particularly in Europe and US  UK? Silver Bullet?

SQS Group Limited 7-11 Moorgate | London, EC2R 6AF, United Kingdom Phone: +44 (0) Fax: +44 (0) Internet: Thank you for your attention