Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Java Enterprise Performance Organisational and Conceptual Antipatterns
People and Performance <ul><li>Good programmers write well performing code </li></ul><ul><ul><li>Functional bugs are ok </...
Types of Antipatterns Technical Conceptual Organisational
Antipatterns – A Selection <ul><li>Conceptual </li></ul><ul><ul><li>Misunderstanding Scalability </li></ul></ul><ul><ul><l...
<ul><li>Conceptual Antipatterns </li></ul>
Misunderstanding Scalability
Misunderstanding Scalability <ul><li>Description </li></ul><ul><ul><li>Scalability is taken for granted </li></ul></ul><ul...
Premature Optimization <ul><li>Taken from K. Scott Allen‘s Blog : (www.odetocode.com) </li></ul>
Premature Optimization <ul><li>Description </li></ul><ul><ul><li>See performance management as premature optimization </li...
Guesswork ?
Guesswork <ul><li>Description </li></ul><ul><ul><li>People rely on their feelings instead of real numbers </li></ul></ul><...
Black Box
Black Box <ul><li>Description </li></ul><ul><ul><li>Developers use foreign code without understanding concepts </li></ul><...
<ul><li>Organisational </li></ul><ul><li>Antipatterns </li></ul>
Ad-hoc Performance Management <ul><li>Description </li></ul><ul><ul><li>Performance Management follows no defined process ...
Lack of Responsibility <ul><li>Description </li></ul><ul><ul><li>Nobody is responsible for performance management </li></u...
Wait for the Pain <ul><li>Description </li></ul><ul><ul><li>Performance is not actively managed and considered as given </...
alois.reitbauer@dynatrace.com  Mail blog.dynatrace.com  Blog AloisReitbauer   Twitter
Nächste SlideShare
Wird geladen in …5
×

W JAX Performance Workshop - Organisational Antipatterns

623 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie, Business
  • Als Erste(r) kommentieren

W JAX Performance Workshop - Organisational Antipatterns

  1. 1. Java Enterprise Performance Organisational and Conceptual Antipatterns
  2. 2. People and Performance <ul><li>Good programmers write well performing code </li></ul><ul><ul><li>Functional bugs are ok </li></ul></ul><ul><ul><li>Performance problems are not </li></ul></ul><ul><li>Performance Management is difficult </li></ul><ul><ul><li>Problems difficult to find </li></ul></ul><ul><ul><li>Stress Situations </li></ul></ul><ul><li>Performance is a moving target </li></ul><ul><ul><li>If it works today, it might not work tomorrow </li></ul></ul><ul><ul><li>Even testing does not prevent you from problems </li></ul></ul><ul><ul><li>Unknown performance goals </li></ul></ul>
  3. 3. Types of Antipatterns Technical Conceptual Organisational
  4. 4. Antipatterns – A Selection <ul><li>Conceptual </li></ul><ul><ul><li>Misunderstanding Scalability </li></ul></ul><ul><ul><li>Performance Management as Premature Optimization </li></ul></ul><ul><ul><li>Guesswork instead of Figures </li></ul></ul><ul><ul><li>Black Box </li></ul></ul><ul><li>Organisational </li></ul><ul><ul><li>Ad hoc Performance Management </li></ul></ul><ul><ul><li>Lack of Responsibility </li></ul></ul><ul><ul><li>Wait for the Pain </li></ul></ul>
  5. 5. <ul><li>Conceptual Antipatterns </li></ul>
  6. 6. Misunderstanding Scalability
  7. 7. Misunderstanding Scalability <ul><li>Description </li></ul><ul><ul><li>Scalability is taken for granted </li></ul></ul><ul><ul><li>Missing performance to be solved by adding hardware </li></ul></ul><ul><ul><li>Scalability is not tested </li></ul></ul><ul><li>Effects </li></ul><ul><ul><li>Performance problems are neglected </li></ul></ul><ul><ul><li>Architecture has to be changed for scalability late in development </li></ul></ul><ul><ul><li>Project is put at a high technical risk (maybe too high) </li></ul></ul><ul><li>Solution </li></ul><ul><ul><li>Understand that scalability has to be engineered into an application </li></ul></ul><ul><ul><li>Identify the scalability points </li></ul></ul><ul><ul><li>Test whether the system can scale </li></ul></ul>
  8. 8. Premature Optimization <ul><li>Taken from K. Scott Allen‘s Blog : (www.odetocode.com) </li></ul>
  9. 9. Premature Optimization <ul><li>Description </li></ul><ul><ul><li>See performance management as premature optimization </li></ul></ul><ul><ul><li>Do not validate dynamic application behaviour </li></ul></ul><ul><ul><li>Critical parts of the application are unknown </li></ul></ul><ul><li>Effects </li></ul><ul><ul><li>Performance Management gets neglected </li></ul></ul><ul><ul><li>Problems are discovered late </li></ul></ul><ul><ul><li>Resolution of problems takes long </li></ul></ul><ul><li>Solution </li></ul><ul><ul><li>Perform architecture reviews as part of development process </li></ul></ul><ul><ul><li>Make basic performance checks part of your Continuous Testing Processes </li></ul></ul><ul><ul><li>Identify the hot spots in your application </li></ul></ul>
  10. 10. Guesswork ?
  11. 11. Guesswork <ul><li>Description </li></ul><ul><ul><li>People rely on their feelings instead of real numbers </li></ul></ul><ul><ul><li>The most clever people start to believe in „Performance Voodoo“ </li></ul></ul><ul><ul><li>Trial-and-Error Problem resolution </li></ul></ul><ul><li>Effects </li></ul><ul><ul><li>Phantom problems are solved </li></ul></ul><ul><ul><li>Long problem resolution times (with high costs) </li></ul></ul><ul><ul><li>Problems get more complex than they are </li></ul></ul><ul><li>Solution </li></ul><ul><ul><li>Implement proper performance analysis procedure </li></ul></ul><ul><ul><li>Educate people on performance management </li></ul></ul><ul><ul><li>Build a solid toolbase people can use </li></ul></ul>
  12. 12. Black Box
  13. 13. Black Box <ul><li>Description </li></ul><ul><ul><li>Developers use foreign code without understanding concepts </li></ul></ul><ul><ul><li>A framework is considered a „silver bullet“ </li></ul></ul><ul><ul><li>Developers expect frameworks to work how they think </li></ul></ul><ul><li>Effects </li></ul><ul><ul><li>Performance problems due to inadequate usage of frameworks </li></ul></ul><ul><ul><li>High reengineering efforts </li></ul></ul><ul><ul><li>Long testing cycles </li></ul></ul><ul><li>Solution </li></ul><ul><ul><li>Analyse the dynamics of foreign code and interactions with your code </li></ul></ul><ul><ul><li>Get detailed knowledge about frameworks </li></ul></ul><ul><ul><li>Never assume - always </li></ul></ul>
  14. 14. <ul><li>Organisational </li></ul><ul><li>Antipatterns </li></ul>
  15. 15. Ad-hoc Performance Management <ul><li>Description </li></ul><ul><ul><li>Performance Management follows no defined process </li></ul></ul><ul><ul><li>The actual performance of an application depends on the responsible people </li></ul></ul><ul><ul><li>Delivering performance is not a key goal </li></ul></ul><ul><li>Effects </li></ul><ul><ul><li>Performance of an application cannot be guaranteed </li></ul></ul><ul><ul><li>Performance management is highly ineffective </li></ul></ul><ul><ul><li>Skills will not improve </li></ul></ul><ul><li>Solution </li></ul><ul><ul><li>Implement performance management in development, test and prod. </li></ul></ul><ul><ul><li>Define Processes and Responsibilities </li></ul></ul>
  16. 16. Lack of Responsibility <ul><li>Description </li></ul><ul><ul><li>Nobody is responsible for performance management </li></ul></ul><ul><ul><li>Everybody thinks „the others“ will do it </li></ul></ul><ul><li>Effects </li></ul><ul><ul><li>There is NO performance management </li></ul></ul><ul><ul><li>Applications will fail due to performance reasons </li></ul></ul><ul><ul><li>Performance of applications is unknown </li></ul></ul><ul><ul><li>There is no budget (time and money) </li></ul></ul><ul><li>Solution </li></ul><ul><ul><li>Define responsibilities of developers, testers, prod. People </li></ul></ul><ul><ul><li>Create the role of a „performance engineer“ and assign it to somebody </li></ul></ul><ul><ul><li>Communicate performance goals to your team (first you have to have some) </li></ul></ul>
  17. 17. Wait for the Pain <ul><li>Description </li></ul><ul><ul><li>Performance is not actively managed and considered as given </li></ul></ul><ul><ul><li>Performance management is driven by problems </li></ul></ul><ul><li>Effects </li></ul><ul><ul><li>Problems are discovered late in the lifecycle </li></ul></ul><ul><ul><li>Problem must be resolved under time pressure </li></ul></ul><ul><ul><li>No dedicated ressources for performance management </li></ul></ul><ul><li>Solution </li></ul><ul><ul><li>Define performance charateristics of your application </li></ul></ul><ul><ul><li>Define how to verify they are fulfilled </li></ul></ul><ul><ul><li>Verify as part of your software delivery process </li></ul></ul>
  18. 18. alois.reitbauer@dynatrace.com Mail blog.dynatrace.com Blog AloisReitbauer Twitter

×