Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Architectures and Alternatives

Architectures and Alternatives

Limiting software architecture to the traditional ideas is not enough for today's challenges. This presentation shows additional tools and how problems like maintainability, reliability and usability can be solved.

Eberhard Wolff

October 12, 2017
Tweet

More Decks by Eberhard Wolff

Other Decks in Programming

Transcript

  1. Software Architecture > Definition ISO 42010 Fundamental concepts or properties

    of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution
  2. Software Architect? > A title? > A role! > …in

    particular in agile teams. > Anyone / someone is doing architecture
  3. Architecture > If architecture = organization > …then change to

    architecture = reorganization > …or organization is a constraint.
  4. Reliability > Software has to be available > Classic approach:

    > Highly available hardware > Run in a cluster > …and cluster-enabled software
  5. Decrease MTTR – How? > Find a problem faster >

    Measure > Monitoring > Logs > Alerts…
  6. Decrease MTTR – How? > Get the fix out faster

    > Deployment > …or fail-over
  7. Decrease MTTR – How? > Monitoring and Deployment: > Ops

    challenges > …not classic architecture
  8. Usability > Might be very important > …e.g. to gain

    a huge market share. > How do you make it happen?
  9. Some Ideas to Improve Usability > Hire an UX expert

    > Usability tests > Prototypes + feedback > Look at support cases / hotline calls
  10. Usability > Quality attribute > Part of the technical decisions

    > Beyond “usual” architecture measures
  11. Testability > Another contributing to maintainability > IMHO: Should be

    tests, not just testability > Bonus if tests need not be changed for refactoring. > Unit tests? > Acceptance tests?
  12. Deployment > It’s nice to change code. > It’s (lean)

    waste until it is in production. > Deployment: another factor for maintainability.
  13. Maintainability > Not clean architecture and code > Recyclable, very

    decoupled microservices > Not just structure of the system, but also > …test and deployment > …continuous delivery pipeline
  14. Architect? > Technical manager > In charge of achieving the

    quality attributes > Influencing organization > …and Ops, Dev, QA
  15. Agile Team > Self Organization > i.e. not necessarily a

    defined architect > Architecture activities cover Ops, Dev, QA > Cross-functional!