Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Software systems have emergent structures.
Software systems are irregular.
Software systems are contextual.
Software systems are intricate.
text
This is a real software system.
It is irregular.
It is contextual.
It is intricate.
Its structure emerges out all its tiny details.
This is another real software system.
It is irregular.
It is contextual.
It is intricate.
These two systems come from different domains.
And they have radically different shapes.
But, why do they look so different?
Is it only because they come from different domains?
Let’s take a step back.
This visualization shows one class, its methods and its attributes.
The class exhibits a rather regular shape.
Add some collaborator classes to the mix, and its shape changes.
Some of it seems to want to be in a different place.
Add some more, and the shape shifts even more.
Look at the whole system, and the class is unrecognizable.
Look at the whole system, and the class is unrecognizable.
This is a tiny system.
This system is actually the result of only a few man-weeks of work.
This system is also the result of a few man-weeks of work.
In fact, both systems have similar functionality.
Yet, they have radically different shapes.
These three systems also have similar functionality.
And these two systems have similar functionality, too.
Yet, they have radically different shapes.
Why is it that even functionally similar systems look so different?
Because software systems are irregular.
Software systems are contextual.
Software systems are intricate.
Software systems have emergent structures.
The structure emerges out of
tiny independent commits.
The structure emerges out of
changes in requirements.
The structure emerges out of
human interaction.
Software systems have emergent structures.
Treat software systems for what they are.
Upfront control is unlikely to work.
Embrace their emergent nature.
humane-assessment.com
Tudor Gîrba
www.tudorgirba.com
creativecommons.org/licenses/by-nc-sa/3.0/
Upcoming SlideShare
Loading in …5
×

The emergent nature of software systems

2,951 views

Published on

This slideshow offers an argument for how the structure of a software system has an inherently emergent nature.

More information can be found at: http://humane-assessment.com

Published in: Software
  • There are over 16,000 woodworking plans that comes with step-by-step instructions and detailed photos, Click here to take a look  http://ishbv.com/tedsplans/pdf
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Want to preview some of our plans? You can get 50 Woodworking Plans and a 440-Page "The Art of Woodworking" Book... Absolutely FREE ♣♣♣ http://tinyurl.com/yy9yh8fu
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

The emergent nature of software systems

  1. 1. Software systems have emergent structures.
  2. 2. Software systems are irregular.
  3. 3. Software systems are contextual.
  4. 4. Software systems are intricate.
  5. 5. text
  6. 6. This is a real software system.
  7. 7. It is irregular.
  8. 8. It is contextual.
  9. 9. It is intricate.
  10. 10. Its structure emerges out all its tiny details.
  11. 11. This is another real software system.
  12. 12. It is irregular.
  13. 13. It is contextual.
  14. 14. It is intricate.
  15. 15. These two systems come from different domains.
  16. 16. And they have radically different shapes.
  17. 17. But, why do they look so different?
  18. 18. Is it only because they come from different domains?
  19. 19. Let’s take a step back.
  20. 20. This visualization shows one class, its methods and its attributes.
  21. 21. The class exhibits a rather regular shape.
  22. 22. Add some collaborator classes to the mix, and its shape changes.
  23. 23. Some of it seems to want to be in a different place.
  24. 24. Add some more, and the shape shifts even more.
  25. 25. Look at the whole system, and the class is unrecognizable.
  26. 26. Look at the whole system, and the class is unrecognizable.
  27. 27. This is a tiny system.
  28. 28. This system is actually the result of only a few man-weeks of work.
  29. 29. This system is also the result of a few man-weeks of work.
  30. 30. In fact, both systems have similar functionality.
  31. 31. Yet, they have radically different shapes.
  32. 32. These three systems also have similar functionality.
  33. 33. And these two systems have similar functionality, too.
  34. 34. Yet, they have radically different shapes.
  35. 35. Why is it that even functionally similar systems look so different?
  36. 36. Because software systems are irregular.
  37. 37. Software systems are contextual.
  38. 38. Software systems are intricate.
  39. 39. Software systems have emergent structures.
  40. 40. The structure emerges out of tiny independent commits.
  41. 41. The structure emerges out of changes in requirements.
  42. 42. The structure emerges out of human interaction.
  43. 43. Software systems have emergent structures.
  44. 44. Treat software systems for what they are.
  45. 45. Upfront control is unlikely to work.
  46. 46. Embrace their emergent nature.
  47. 47. humane-assessment.com
  48. 48. Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by-nc-sa/3.0/

×