thoughts on software quality
play

Thoughts on Software Quality Is it just a cultural thing? Are we - PowerPoint PPT Presentation

Thoughts on Software Quality Is it just a cultural thing? Are we doomed? Bertrand Delacrtaz @bdelacretaz, grep.codeconsult.ch Principal Scientist, CQ/AEM R&D group, Adobe Basel Apache Software Foundation Member and Director


  1. Thoughts on Software Quality Is it just a cultural thing? Are we doomed? Bertrand Delacrétaz 
 @bdelacretaz, grep.codeconsult.ch Principal Scientist, CQ/AEM R&D group, Adobe Basel 
 Apache Software Foundation Member and Director ApacheCon:Core Europe, October 2015 
 slides revision 2015-09-29

  2. created in 2007 powers “a few” major websites still going strong something must be right

  3. how can we create a culture of quality in our teams?

  4. Quality is usually visible from far away Engineering culture?

  5. Good tools for good craftsmen

  6. Defensive & Conservative

  7. Avoid broken windows

  8. Do one thing and one thing well

  9. Cultural traits? you can’t measure those… no broken automate! windows do one thing and defensive one thing well obvious quality, conservative measurable where possible

  10. so, quality is a cultural thing?

  11. maybe a few axes will help us measure

  12. Code coverage? Not a silver bullet. Code coverage: 100% Semantic coverage: zero! A generator with return 42; would pass. Not useless…but just one tool among others.

  13. quality is much wider than that

  14. Happy users! ?

  15. Happy Developers!

  16. Simplicity & adequation “Conceived to help motorize the large number of 
 farmers still using horses and carts in 1930s France” 
 (Wikipedia: Citroën 2CV)

  17. Simplicity & adequation Sling Core Felix JCR 
 custom WebD standard OSGi 
 content 
 JSP repository Ruby JSR servlet/ resourc Velocity OSGi framework (Apache Felix)

  18. Robustness

  19. Robustness [INFO] ------------------------------------------------------------------------ [INFO] Building Apache Sling Launchpad Testing 7-SNAPSHOT [INFO] ------------------------------------------------------------------------ ... Tests run: 529, Failures: 0, Errors: 0, Skipped: 1 ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:08 min [INFO] ------------------------------------------------------------------------

  20. Security the best way to avoid risk is to do nothing, of course. Nobody will steal this picture, but it’s quite a boring slide.

  21. Apache culture! Security

  22. Focus

  23. Focus HTTP debugger fj lesystem browser Sling Core JCR API Felix OSGi 
 ECMAscript WebDAV standard custom servlets 
 JCR 
 console server servlets and components content 
 JSP repository Ruby resource servlet/script JSR 223 scripting resolution resolution Velocity etc .. OSGi framework (Apache Felix) scarce resources help to focus!

  24. Apache culture! Backwards compatibility

  25. REST culture! Transparency

  26. Transparency REST -> naturally transparent Good names Helpful messages Introspection tools

  27. Good names? LoginException AbstractResource ModifiableValueMap AbstractResourceVisitor ModifiableValueMapDecorator AccessSecurityException ModifyingResourceProvider Adaptable NoAuthenticationHandlerException AdapterFactory NonExistingResource AdapterManager ObservationReporter AttributableResourceProvider ObserverConfiguration Authenticator OptingServlet CompositeValueMap ParametrizableResourceProvider DeepReadValueMapDecorator PersistableValueMap DynamicResourceProvider PersistenceException ExternalResourceListener PropertyBuilder HtmlResponse ProviderContext SlingAllMethodsServlet RefreshableResourceProvider SlingBindings RequestDispatcherOptions SlingConstants RequestParameter SlingException RequestParameterMap SlingHttpServletRequest RequestPathInfo SlingHttpServletRequestWrapper RequestProgressTracker SlingHttpServletResponse RequestUtil SlingHttpServletResponseWrapper ResolveContext SlingIOException Resource ResourceAccessSecurity ResourceChange

  28. Low coupling

  29. Low coupling HTTP debugger fj lesystem browser Sling Core JCR API ECMAscript WebDAV Felix OSGi 
 standard custom servlets 
 JCR 
 server console servlets and components content 
 JSP repository Ruby resource servlet/script JSR 223 scripting resolution resolution Velocity etc .. OSGi framework (Apache Felix) sailboats are very cool but we shouldn’t take their high coupling as an example…

  30. quality has many dimensions often hard to measure

  31. so, how is doing?

  32. “many eyeballs” I’d say not bad thanks to a strong community with a culture of quality in design, implementation 
 and testing.

  33. Coda Y ou can’t measure it all: quality is multi-dimensional and needs to be part of your team’s culture. Thinking and reviewing along those axes can help build such a culture. And in the end the only thing that really matters is happy users… “Thoughts on Software Quality” - Bertrand Delacretaz, Principal Scientist, Adobe (C) Adobe 2015 - these slides are licensed under a Creative Commons Attribution 4.0 International License - images and illustrations are (C) fotolia.com, used with permission, cannot be reproduced separately.

Recommend


More recommend