SlideShare a Scribd company logo
1 of 79
Download to read offline
enhancing agile development
with software assessment


www.tudorgirba.com
ology.org
  ooset echn
m
feedback is key
{

    }
{

    }
{       {

    }       }
{       {

    }       }
{       {

    }       }

        {

            }
{       {

    }       }

        {

            }
{       {

    }       }

        {

            }
{       {       {

    }       }       }

        {       {

            }       }
{       {       {

    }       }       }

        {       {

            }       }
{       {       {

    }       }               }

        {           {


            }           }
{       {       {

    }       }               }

        {           {


            }           }
{       {       {

    }       }               }

        {           {


            }           }
{       {       {               {

    }       }               }               }

        {           {               {


            }           }               }
{       {       {               {

    }       }               }               }

        {           {               {


            }           }               }
{       {       {               {

    }       }               }       }

        {           {           {

            }           }           }

                                {

                                        }
{       {       {               {

    }       }               }       }

        {           {           {

            }           }           }

                                {

                                        }
{       {       {               {

    }       }               }       }

        {           {           {

            }           }           }

                                {

                                        }
feedback is key
}
                                                    }
                                                {
                                                {



                                                    }
                                                    }
                                                {
                                                {




                                            g
                                       in
                                  er
                             ne
                        gi
                   en
               d
          ar
     rw
fo
fo
                                               rw
                                                ar
                                                  d
                                                     en
                                                     gi
                                                      ne
                                                          er
                                                          in
                                                           g
{               {
    {                   {                                      {               {
                            }                                      {               {
        }
        }                       actual development                     }               }
            }       {       }                                              }               }
fo
                                                               rw
                                           g
                                          rin




                                                                ar
                                          ee




                                                                  d
                                                                     en
                                      in
                                     ng




                                                                     gi
                                                                      ne
                                     ee




                                                                          er
                                 rs




                                                                          in
                                ve




                                                                           g
                                re




{               {
    {                   {                                                      {               {
                            }                                                      {               {
        }
        }                                       actual development                     }               }
            }       {       }                                                              }               }
{
        {
    }
    }
}
        {
                 reverse




{
        {
        }

}
                engineering
{
        {
    }
    }
}
        {
                 reverse




{
        {
        }

}
                engineering
{
        {
    }
    }
}
        {
                 reverse




{
        {
                              assessment




        }

}
                engineering
assessment is a discipline
assessment should be continuous
assessment should be contextual
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
A God Class centralizes too much intelligence


 Class uses directly more than a
 few attributes of other classes

         ATFD > FEW




  Functional complexity of the
       class is very high
                                   AND   GodClass
      WMC ! VERY HIGH




     Class cohesion is low


      TCC < ONE THIRD

                                                                   00   6
                                                    , Mari nescu 2
                                             Lanza
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
A picture tells
a thousand words
l pictures tell a
Not al
             words
th ousand
System Complexity shows class hierarchies




                                                  03
                                        ucasse 20
                               Lanza, D
Class Blueprint shows class internals
eDSM shows dependencies
Duplications shown side by side
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
ology.org
  ooset echn
m
What is this made of?




                                           03
                                 ucasse 20
                        Lanza, D
What is this made of?
Class A   method M
package 1
               Class B   method N
package 2
                  ...       ...
    ...


 source code
McCabe = 21

NOM =
        102
               OC
                    =
                        75
                          3,0
                              00


                                   clas
                                        ses
                                            se lect
                                                    : #isG
                                                           o  d
                                                                                              ...
              L




                                                          {                   {
                                                                  {                   {
                                                                                          }
                                                                      }
                                                                      }
                                                                          }       {       }
{
        {
    }
    }
}
        {
                 reverse




{
        {
                              assessment




        }

}
                engineering
feedback is key
feedback is key
assessment is a discipline
assessment should be continuous
assessment should be contextual
assessment is a discipline
assessment must be continuous
assessment must be contextual
Tudor Gîrba
        www.tudorgirba.com




creativecommons.org/licenses/by/3.0/

More Related Content

Similar to Enhancing agile development through software assessment

05 Problem Detection
05 Problem Detection05 Problem Detection
05 Problem Detection
Jorge Ressia
 
Helping you reengineering your legacy
Helping you reengineering your legacyHelping you reengineering your legacy
Helping you reengineering your legacy
Stéphane Ducasse
 
A Moose Slideshow
A Moose SlideshowA Moose Slideshow
A Moose Slideshow
Tudor Girba
 

Similar to Enhancing agile development through software assessment (15)

Assessing software systems
Assessing software systemsAssessing software systems
Assessing software systems
 
Humane assessment at ICSM 2010
Humane assessment at ICSM 2010Humane assessment at ICSM 2010
Humane assessment at ICSM 2010
 
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
 
Moose Overview
Moose OverviewMoose Overview
Moose Overview
 
05 Problem Detection
05 Problem Detection05 Problem Detection
05 Problem Detection
 
Modeling History to Understand Software Evolution with Hismo 2008-03-12
Modeling History to Understand Software Evolution with Hismo 2008-03-12Modeling History to Understand Software Evolution with Hismo 2008-03-12
Modeling History to Understand Software Evolution with Hismo 2008-03-12
 
Modeling History to Understand Software Evolution With Hismo 2008-02-25
Modeling History to Understand Software Evolution With Hismo 2008-02-25 Modeling History to Understand Software Evolution With Hismo 2008-02-25
Modeling History to Understand Software Evolution With Hismo 2008-02-25
 
What history can tell us
What history can tell usWhat history can tell us
What history can tell us
 
Software understanding in the large (EVO 2008)
Software understanding in the large (EVO 2008)Software understanding in the large (EVO 2008)
Software understanding in the large (EVO 2008)
 
Helping you reengineering your legacy
Helping you reengineering your legacyHelping you reengineering your legacy
Helping you reengineering your legacy
 
Restructuring (EVO 2008)
Restructuring (EVO 2008)Restructuring (EVO 2008)
Restructuring (EVO 2008)
 
History Analysis (EVO 2008)
History Analysis (EVO 2008)History Analysis (EVO 2008)
History Analysis (EVO 2008)
 
Reverse Engineering Techniques 2007-11-29
Reverse Engineering Techniques 2007-11-29 Reverse Engineering Techniques 2007-11-29
Reverse Engineering Techniques 2007-11-29
 
A Moose Slideshow
A Moose SlideshowA Moose Slideshow
A Moose Slideshow
 
The humane software assessment (Choose Forum 2009)
The humane software assessment (Choose Forum 2009)The humane software assessment (Choose Forum 2009)
The humane software assessment (Choose Forum 2009)
 

More from Tudor Girba

More from Tudor Girba (20)

Beyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalismBeyond software evolution: Software environmentalism
Beyond software evolution: Software environmentalism
 
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
Software craftsmanship meetup (Zurich 2015) on solving real problems without ...
 
GT Spotter
GT SpotterGT Spotter
GT Spotter
 
Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)Don't demo facts. Demo stories! (handouts)
Don't demo facts. Demo stories! (handouts)
 
Don't demo facts. Demo stories!
Don't demo facts. Demo stories!Don't demo facts. Demo stories!
Don't demo facts. Demo stories!
 
Humane assessment on cards
Humane assessment on cardsHumane assessment on cards
Humane assessment on cards
 
Underneath Scrum: Reflective Thinking
Underneath Scrum: Reflective ThinkingUnderneath Scrum: Reflective Thinking
Underneath Scrum: Reflective Thinking
 
1800+ TED talks later
1800+ TED talks later1800+ TED talks later
1800+ TED talks later
 
Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)Software assessment by example (lecture at the University of Bern)
Software assessment by example (lecture at the University of Bern)
 
Humane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development roomHumane assessment: Taming the elephant from the development room
Humane assessment: Taming the elephant from the development room
 
Moose: how to solve real problems without reading code
Moose: how to solve real problems without reading codeMoose: how to solve real problems without reading code
Moose: how to solve real problems without reading code
 
Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)Software Environmentalism (ECOOP 2014 Keynote)
Software Environmentalism (ECOOP 2014 Keynote)
 
The emergent nature of software systems
The emergent nature of software systemsThe emergent nature of software systems
The emergent nature of software systems
 
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)Presenting is storytelling at Uni Zurich - slides (2014-03-05)
Presenting is storytelling at Uni Zurich - slides (2014-03-05)
 
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
Presenting is storytelling at Uni Zurich - handouts (2014-03-05)
 
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
Underneath Scrum: Reflective Thinking (talk at Scrum Breakfast Bern, 2013)
 
Demo-driven innovation teaser
Demo-driven innovation teaserDemo-driven innovation teaser
Demo-driven innovation teaser
 
Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)Software assessment essentials (lecture at the University of Bern 2013)
Software assessment essentials (lecture at the University of Bern 2013)
 
Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)Demo-driven innovation (University of Zurich, June 2013)
Demo-driven innovation (University of Zurich, June 2013)
 
Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011Humane assessment with Moose at GOTO Aarhus 2011
Humane assessment with Moose at GOTO Aarhus 2011
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Enhancing agile development through software assessment

  • 1. enhancing agile development with software assessment www.tudorgirba.com
  • 3.
  • 4.
  • 6.
  • 7.
  • 8.
  • 9. { }
  • 10. { }
  • 11. { { } }
  • 12. { { } }
  • 13. { { } } { }
  • 14. { { } } { }
  • 15. { { } } { }
  • 16. { { { } } } { { } }
  • 17. { { { } } } { { } }
  • 18. { { { } } } { { } }
  • 19. { { { } } } { { } }
  • 20. { { { } } } { { } }
  • 21. { { { { } } } } { { { } } }
  • 22. { { { { } } } } { { { } } }
  • 23. { { { { } } } } { { { } } } { }
  • 24. { { { { } } } } { { { } } } { }
  • 25. { { { { } } } } { { { } } } { }
  • 27. } } { { } } { { g in er ne gi en d ar rw fo
  • 28. fo rw ar d en gi ne er in g { { { { { { } { { } } actual development } } } { } } }
  • 29. fo rw g rin ar ee d en in ng gi ne ee er rs in ve g re { { { { { { } { { } } actual development } } } { } } }
  • 30. { { } } } { reverse { { } } engineering
  • 31. { { } } } { reverse { { } } engineering
  • 32. { { } } } { reverse { { assessment } } engineering
  • 33. assessment is a discipline assessment should be continuous assessment should be contextual
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 39. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 40.
  • 41. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 42. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 43.
  • 44.
  • 45.
  • 46. A God Class centralizes too much intelligence Class uses directly more than a few attributes of other classes ATFD > FEW Functional complexity of the class is very high AND GodClass WMC ! VERY HIGH Class cohesion is low TCC < ONE THIRD 00 6 , Mari nescu 2 Lanza
  • 47. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 48. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 49.
  • 50.
  • 51. A picture tells a thousand words
  • 52.
  • 53.
  • 54. l pictures tell a Not al words th ousand
  • 55. System Complexity shows class hierarchies 03 ucasse 20 Lanza, D
  • 56.
  • 57.
  • 58. Class Blueprint shows class internals
  • 59.
  • 62. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 63. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 64. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 65. ology.org ooset echn m
  • 66. What is this made of? 03 ucasse 20 Lanza, D
  • 67. What is this made of?
  • 68. Class A method M package 1 Class B method N package 2 ... ... ... source code
  • 69.
  • 70.
  • 71.
  • 72.
  • 73. McCabe = 21 NOM = 102 OC = 75 3,0 00 clas ses se lect : #isG o d ... L { { { { } } } } { }
  • 74. { { } } } { reverse { { assessment } } engineering
  • 77. assessment is a discipline assessment should be continuous assessment should be contextual
  • 78. assessment is a discipline assessment must be continuous assessment must be contextual
  • 79. Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/