SlideShare a Scribd company logo
1 of 24
Agile with CMMi - A potent blend…
                              Mosesraj R
                      Collabera Solutions
                              Bangalore




                1
CMMI & Agile
   Level 4/5




                                                       SCRUM/XP




                                          Practices



                                          Principles
Level 2/3                                              Manifesto


               Organization            Project level
                  focus                   focus
                               2
Fundamental challenge - measurability




               People
                        Engineering




                         3
Genrich Altshuller scanned 400,000 patent
descriptions, and found that only 2% were really
new. This means, 98% of all new problems can
be solved using previous experience/learning(s).




                        4
5
“. . . .Yo u r
                                   hands can’t
      Structural
                                     hit what
   application profile


  Code
structure
                   Test case
                   adequacy         your eyes
                                        can’t
                                     s e e … . .”
        Requirements
          structure



                                   Muhammad Ali
                               6
Typical Lifecycle in Collabera




                                                                 System
 Requirem         Architectu   Design &          Unit
                                                               /Functiona
   ents              re         Coding          Testing
                                                                l Testing




  Requirements &
                                          Continuous Integration & Iteration
Architecture Baseline
                                                      Releases


                                    7
8
9
Can ‘defect prone’ tendency be isolated?
• A study on eclipse (published in PROMISE 2007)
   – Defects are mapped to less than 15% of files
• Study on Firefox
   – Security issues are mapped a low % of code
     (predominantly java script interpreter)
• Publication from CAST
   – In a US based bank around 30% defects in tests
     are attributed to identifiable poor code structures

                             10
The problem of plenty…
Cyclomatic         % comment Lines       Density of comment  Violations
complexity                               lines
%Branch            Java NCSS             Public undocumented Complexity
                                         API                 distribution by
Statements
                                                             method
Depth of           Npath Complexity      Duplicated lines
Inheritance                              Duplicated blocks      Complexity
Calls/method       Class Fan Out                                distribution by class
                   Complexity            Number of children
Methods / Class
                                          Afferent couplings
                   Class Data Abstraction                      File dependencies to
Class Coupling
                   coupling               Lack of cohesion     cut
Maintainability                           methods
Index              Boolean Expression
                                          Package dependencies
                   complexity
                                          to cut

                                         11
Influence ofSIT with engineering metrics
       Correlating complexity attribute                                        II




      % Branches                                             Block Depth
       % Branches                                              Block Depth




                        Cyclomatic Complexity
                       Max Cyclomatic Complexity
                                 12
      Bridging   the   eagle’s   eye   and   worm’s   view                   Slide 12
Composite parameter analysis
  Study from European university




 Number of Class vs SIT defects
               2% 1%
                   1%
             4%

                                                     Key parameters measured
                                                         Cyclomatic complexity/LOC
                                                         No. of methods/class
                                                         No. of Calls/method
                          92%                            LOC/method



8% of classes is contributing to 100% of SIT
                   defects
                                               13
Toxicity Analysis

                      Correlates to
                        AT & SIT
                        defects




Detailed study of the data shows most of the SIT & AT defects are occurring amongst the top four Java classes
           shown in the sample data above which have highly toxic code with high method length

                                                        14
UC complexity v/s cyclomatic complexity
                      2.3.47.2
                                            2.3.41.2    2.3.42.2
                                                                        2.3.43.2           2.3.44.2                2.3.13.2
2.3.15.2              2.3.48.2   2.3.11.2
           2.3.23.2




                                            2.3.20.2
                      2.3.1.2                                        2.3.19.2            2.3.20.2       2.3.30.2      2.3.32.2
                                 2.3.37.2
2.3.16.2
           2.3.25.2

                                            2.3.49.2

                                 2.3.38.2                          2.3.33.2   2.3.36.2       2.3.4.2                2.3.5.2
           2.3.26.2
                      2.3.2.2
                                            2.3.50.2
2.3.17.2

                                 2.3.39.2
                                                                   2.3.34.2
                                                                                2.3.52.2              2.3.6.2            2.3.9.2
                      2.3.27.2               2.3.7.2
           2.3.45.2
2.3.18.2


                                 2.3.40.2
                                                                   2.3.35.2
                      2.3.12.2              2.3.10.2                            2.3.53.2                   2.3.10.1
2.3.22.2   2.3.46.2



                                                       15
See code akin to a city map...




               16
Developer’s Structural Analysis Kit

        Parameters                          Tools                   Process

• Max /Avg. Cyclomatic        •   Source monitor        • Integration to build tools
  Complexity                  •   PMD                   • Prior to code review
• Methods Per Class           •   Checkstyle            • Analysis before release
• Avg Statements Per Method   •   iPlasma & Code city
• % Branch statements         •   Sonar
• Max Block Depth
• Cyclomatic complexity
• No. of Calls/method
• LOC/method
• LOC/Program
• Fan out
• Data abstraction coupling



                                                17
Shifting to the better – Project level




                   18
Shifting to the better – Org level
18
16
14
12
10
                                                                     Dec-10
8
                                                                     Dec-11
6
4
2
0
     Max Code     Methods per Statement     Branches %   Max Block
     Complexity      Class    per Method                  Depth

                                       19
Improved Pre-SIT Detection




 Dec-09   Dec-11        Till Date

                   20
Shift in defect distribution




Requirements &   Code Review   Unit Test         System Test   Post Release
 Design review




                                           Pre                    Post
                               21
Customer Satisfaction
                       Overall Engagement Level View




Engagement Planning Engagement Execution Engagement Results   People
                                  Overall   2010

                                   22
Qualitative Benefits
• Objective measures; language of developer

• Improve ability to isolate and deal with the
  defective ones


• Improved risk management and transparency


                       23
Thank
       you
Mosesraj R - (mosesrajr@collabera.com)




                                         24

More Related Content

Similar to Agile and CMMI - a potential blend

FYP%3A+P2P+Bluetooth+Communication+Framework+on+Android%0A
FYP%3A+P2P+Bluetooth+Communication+Framework+on+Android%0AFYP%3A+P2P+Bluetooth+Communication+Framework+on+Android%0A
FYP%3A+P2P+Bluetooth+Communication+Framework+on+Android%0ATianwei_liu
 
Programmersguide
Programmersguide Programmersguide
Programmersguide racoon2
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesThomas Zimmermann
 
A%20study%20of%20web%20application%20vulnerabilities%20and%20vulnerability%20...
A%20study%20of%20web%20application%20vulnerabilities%20and%20vulnerability%20...A%20study%20of%20web%20application%20vulnerabilities%20and%20vulnerability%20...
A%20study%20of%20web%20application%20vulnerabilities%20and%20vulnerability%20...Chinnappa Doss
 
Mining Challenge 2011 by Yukinao Hirata
Mining Challenge 2011 by Yukinao HirataMining Challenge 2011 by Yukinao Hirata
Mining Challenge 2011 by Yukinao HirataMizuno Osamu
 
ICSE 2011 Research Paper on Modularity Violations
ICSE 2011 Research Paper on Modularity ViolationsICSE 2011 Research Paper on Modularity Violations
ICSE 2011 Research Paper on Modularity Violationsmiryung
 
IEEE 2011 Software Project titles
IEEE 2011 Software Project titlesIEEE 2011 Software Project titles
IEEE 2011 Software Project titlesIrisSolutions
 
IEEE 2011 Software Project titles [ JAVA, J2EE, DOTNET]
 IEEE 2011 Software Project titles [ JAVA, J2EE, DOTNET] IEEE 2011 Software Project titles [ JAVA, J2EE, DOTNET]
IEEE 2011 Software Project titles [ JAVA, J2EE, DOTNET]IrisSolutions
 
Course information outline
Course information outlineCourse information outline
Course information outlineidzwanpsis
 
student mangement
student mangementstudent mangement
student mangementAditya Gaud
 
Semantic Web Services for Computational Mechanics : A Literature Survey and R...
Semantic Web Services for Computational Mechanics : A Literature Survey and R...Semantic Web Services for Computational Mechanics : A Literature Survey and R...
Semantic Web Services for Computational Mechanics : A Literature Survey and R...Dr. Thiti Vacharasintopchai, ATSI-DX, CISA
 
Impact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic reviewImpact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic reviewAnh Nguyen Duc
 
A Multi-Dimensional Compositional Approach for Business Process Engineering
A Multi-Dimensional Compositional Approach for Business Process EngineeringA Multi-Dimensional Compositional Approach for Business Process Engineering
A Multi-Dimensional Compositional Approach for Business Process EngineeringAng Chen
 
msword
mswordmsword
mswordbutest
 

Similar to Agile and CMMI - a potential blend (20)

FYP%3A+P2P+Bluetooth+Communication+Framework+on+Android%0A
FYP%3A+P2P+Bluetooth+Communication+Framework+on+Android%0AFYP%3A+P2P+Bluetooth+Communication+Framework+on+Android%0A
FYP%3A+P2P+Bluetooth+Communication+Framework+on+Android%0A
 
Programmersguide
Programmersguide Programmersguide
Programmersguide
 
Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
 
A%20study%20of%20web%20application%20vulnerabilities%20and%20vulnerability%20...
A%20study%20of%20web%20application%20vulnerabilities%20and%20vulnerability%20...A%20study%20of%20web%20application%20vulnerabilities%20and%20vulnerability%20...
A%20study%20of%20web%20application%20vulnerabilities%20and%20vulnerability%20...
 
Mining Challenge 2011 by Yukinao Hirata
Mining Challenge 2011 by Yukinao HirataMining Challenge 2011 by Yukinao Hirata
Mining Challenge 2011 by Yukinao Hirata
 
ICSE 2011 Research Paper on Modularity Violations
ICSE 2011 Research Paper on Modularity ViolationsICSE 2011 Research Paper on Modularity Violations
ICSE 2011 Research Paper on Modularity Violations
 
IEEE 2011 Software Project titles
IEEE 2011 Software Project titlesIEEE 2011 Software Project titles
IEEE 2011 Software Project titles
 
IEEE 2011 Software Project titles [ JAVA, J2EE, DOTNET]
 IEEE 2011 Software Project titles [ JAVA, J2EE, DOTNET] IEEE 2011 Software Project titles [ JAVA, J2EE, DOTNET]
IEEE 2011 Software Project titles [ JAVA, J2EE, DOTNET]
 
Course information outline
Course information outlineCourse information outline
Course information outline
 
Table of contents
Table of contentsTable of contents
Table of contents
 
student mangement
student mangementstudent mangement
student mangement
 
Semantic Web Services for Computational Mechanics : A Literature Survey and R...
Semantic Web Services for Computational Mechanics : A Literature Survey and R...Semantic Web Services for Computational Mechanics : A Literature Survey and R...
Semantic Web Services for Computational Mechanics : A Literature Survey and R...
 
Chani index
Chani indexChani index
Chani index
 
Impact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic reviewImpact of design complexity on software quality - A systematic review
Impact of design complexity on software quality - A systematic review
 
Osb student guide
Osb student guideOsb student guide
Osb student guide
 
10307021
1030702110307021
10307021
 
A Multi-Dimensional Compositional Approach for Business Process Engineering
A Multi-Dimensional Compositional Approach for Business Process EngineeringA Multi-Dimensional Compositional Approach for Business Process Engineering
A Multi-Dimensional Compositional Approach for Business Process Engineering
 
msword
mswordmsword
msword
 
Online examination system
Online examination systemOnline examination system
Online examination system
 
Cad_cam_cim___3rd_edition
  Cad_cam_cim___3rd_edition  Cad_cam_cim___3rd_edition
Cad_cam_cim___3rd_edition
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

Agile and CMMI - a potential blend

  • 1. Agile with CMMi - A potent blend… Mosesraj R Collabera Solutions Bangalore 1
  • 2. CMMI & Agile Level 4/5 SCRUM/XP Practices Principles Level 2/3 Manifesto Organization Project level focus focus 2
  • 3. Fundamental challenge - measurability People Engineering 3
  • 4. Genrich Altshuller scanned 400,000 patent descriptions, and found that only 2% were really new. This means, 98% of all new problems can be solved using previous experience/learning(s). 4
  • 5. 5
  • 6. “. . . .Yo u r hands can’t Structural hit what application profile Code structure Test case adequacy your eyes can’t s e e … . .” Requirements structure Muhammad Ali 6
  • 7. Typical Lifecycle in Collabera System Requirem Architectu Design & Unit /Functiona ents re Coding Testing l Testing Requirements & Continuous Integration & Iteration Architecture Baseline Releases 7
  • 8. 8
  • 9. 9
  • 10. Can ‘defect prone’ tendency be isolated? • A study on eclipse (published in PROMISE 2007) – Defects are mapped to less than 15% of files • Study on Firefox – Security issues are mapped a low % of code (predominantly java script interpreter) • Publication from CAST – In a US based bank around 30% defects in tests are attributed to identifiable poor code structures 10
  • 11. The problem of plenty… Cyclomatic % comment Lines Density of comment Violations complexity lines %Branch Java NCSS Public undocumented Complexity API distribution by Statements method Depth of Npath Complexity Duplicated lines Inheritance Duplicated blocks Complexity Calls/method Class Fan Out distribution by class Complexity Number of children Methods / Class Afferent couplings Class Data Abstraction File dependencies to Class Coupling coupling Lack of cohesion cut Maintainability methods Index Boolean Expression Package dependencies complexity to cut 11
  • 12. Influence ofSIT with engineering metrics Correlating complexity attribute II % Branches Block Depth % Branches Block Depth Cyclomatic Complexity Max Cyclomatic Complexity 12 Bridging the eagle’s eye and worm’s view Slide 12
  • 13. Composite parameter analysis Study from European university Number of Class vs SIT defects 2% 1% 1% 4%  Key parameters measured  Cyclomatic complexity/LOC  No. of methods/class  No. of Calls/method 92%  LOC/method 8% of classes is contributing to 100% of SIT defects 13
  • 14. Toxicity Analysis Correlates to AT & SIT defects Detailed study of the data shows most of the SIT & AT defects are occurring amongst the top four Java classes shown in the sample data above which have highly toxic code with high method length 14
  • 15. UC complexity v/s cyclomatic complexity 2.3.47.2 2.3.41.2 2.3.42.2 2.3.43.2 2.3.44.2 2.3.13.2 2.3.15.2 2.3.48.2 2.3.11.2 2.3.23.2 2.3.20.2 2.3.1.2 2.3.19.2 2.3.20.2 2.3.30.2 2.3.32.2 2.3.37.2 2.3.16.2 2.3.25.2 2.3.49.2 2.3.38.2 2.3.33.2 2.3.36.2 2.3.4.2 2.3.5.2 2.3.26.2 2.3.2.2 2.3.50.2 2.3.17.2 2.3.39.2 2.3.34.2 2.3.52.2 2.3.6.2 2.3.9.2 2.3.27.2 2.3.7.2 2.3.45.2 2.3.18.2 2.3.40.2 2.3.35.2 2.3.12.2 2.3.10.2 2.3.53.2 2.3.10.1 2.3.22.2 2.3.46.2 15
  • 16. See code akin to a city map... 16
  • 17. Developer’s Structural Analysis Kit Parameters Tools Process • Max /Avg. Cyclomatic • Source monitor • Integration to build tools Complexity • PMD • Prior to code review • Methods Per Class • Checkstyle • Analysis before release • Avg Statements Per Method • iPlasma & Code city • % Branch statements • Sonar • Max Block Depth • Cyclomatic complexity • No. of Calls/method • LOC/method • LOC/Program • Fan out • Data abstraction coupling 17
  • 18. Shifting to the better – Project level 18
  • 19. Shifting to the better – Org level 18 16 14 12 10 Dec-10 8 Dec-11 6 4 2 0 Max Code Methods per Statement Branches % Max Block Complexity Class per Method Depth 19
  • 20. Improved Pre-SIT Detection Dec-09 Dec-11 Till Date 20
  • 21. Shift in defect distribution Requirements & Code Review Unit Test System Test Post Release Design review Pre Post 21
  • 22. Customer Satisfaction Overall Engagement Level View Engagement Planning Engagement Execution Engagement Results People Overall 2010 22
  • 23. Qualitative Benefits • Objective measures; language of developer • Improve ability to isolate and deal with the defective ones • Improved risk management and transparency 23
  • 24. Thank you Mosesraj R - (mosesrajr@collabera.com) 24

Editor's Notes

  1. Timely, cost effective, objective
  2. Can tere better way, for eg: can our requirements show its indwelling charetecters? Can we figure out a way to bering it oiut. Can I have a structural view of it, which brings out its charecterricts. Eg in use case, in code – knowing complexity etc?Architecture is abt decision making. Can there be an indictator for our decision making?This is where we are heading to.JIDOKA in s/w as we see it is controlling the indwelling factors. We cant obsviouslycontroll the outdwellers. Somewhere the industry is unhealthily skwed towards customer sats without controlling the indwelling factors. Our egrs,BA, archs are confident in their own way, but not able to pass the maturity around. Customer apprecuation creates gaga, customer mute, then no recognition,!!Extend of measurement indicates our maturity
  3. Put Note for abbrevsChallenge dealing with SIT, importance of way we chose SIT. Industry benchmark. Defects coming in system test phase; clear cause of matrurity issue. Inability to find defects early-> is the way we are doing engg process. First we thougt coding has clue, then we figured, requiremsts has the cluie. Hence way we strctureengg process properly.
  4. 92% of classes were within those values. It was within those other 8, we found this.Study from a university: tried the similar exercise internally. Each class was one data point, tried to map to system testing defects.
  5. Which were those 8, what were those that contributed to SIT defects
  6. http://www.eclipsezone.com/articles/pmd/http://pmd.sourceforge.net/pmd-report.htmlhttp://checkstyle.sourceforge.net/config_metrics.htmlhttp://docs.codehaus.org/display/SONAR/Java+Metric+Definitionshttp://www.cs.umd.edu/~jfoster/papers/issre04.pdfhttp://findbugs.cs.umd.edu/papers/MoreNullPointerBugs07.pdfhttp://findbugs.cs.umd.edu/papers/FindBugsExperiences07.pdf<< Knock off PMD and find bugs>><<check hampurapo<<change :: Baselined set of metrics list, use of techniques previously, next box for tools, deploymente- with eclipse and continous integration with build tools like hudsonetc
  7. <<Overall to current>>