Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

E N A B L I N G E F F I C I E N T H E A L T H C A R E Mufrid Krilic Senior Software Developer/Coach DIPS AS, Norway @mufridk Building Quality In Legacy Systems – The Art of Asking Questions Her kan du legge inn bilde. Du finner figurer her: Link

Slide 5

Slide 5 text

Maslow’s Hierarchy of Needs

Slide 6

Slide 6 text

Gojko Adzic - Using Maslow as an Analogy for Defining Software Quality Blogpost: • «Redefining Software Quality» • https://gojko.net/2012/05/08/redefining-software-quality/

Slide 7

Slide 7 text

Maslow - Physiological Needs • Quality methods: • TDD • Correct metrics: • Bug count • Code Coverage Roles to focus on: • Beta-users • Operations

Slide 8

Slide 8 text

Maslow – Safety Needs • Quality methods: • Performance testing • Risk analysis • Architecture and design patterns Roles to focus on: • End-users • People working with information security

Slide 9

Slide 9 text

Maslow – Love/Belonging Needs • Quality methods: • Usability testing • Design thinking • UX design Roles to focus on: • End-users

Slide 10

Slide 10 text

Intermezzo We usually invest most in the lowest three levels

Slide 11

Slide 11 text

Maslow – Esteem Needs • Quality methods: • Continuous delivery • DevOps • Correct metrics • Production environment measurements Roles to focus on: • End-users, Management

Slide 12

Slide 12 text

Maslow – Self-actualization Needs • Quality methods: • Impact Mapping • Correct metrics • What impact did the software product make? • Did we make or save money? Roles to focus on: • Decision makers • Broader user community • Public relations

Slide 13

Slide 13 text

Good enough – how to know where to invest? The more you invest in quality on this level the better Focus on good enough

Slide 14

Slide 14 text

How to apply this when working with legacy systems? The Art of Asking Questions

Slide 15

Slide 15 text

Different perspectives in the legacy system ▪ Ask questions related to – Delivery process – Conditions of acceptance – Code and product maintainability – Security and performance – Domain-specific context in existing operational environments ▪ Questions should be asked before or during the development process, not after

Slide 16

Slide 16 text

Delivery process related questions ▪ Any manual steps in the delivery process? ▪ Compatibility with previously installed versions in production – Can multiple versions of the product exist side by side? ▪ Documentation Deployable?

Slide 17

Slide 17 text

Conditions of Acceptance ▪ Automatic and explorative testing ▪ Testing integration points with other parts of the system – How to avoid introducing undesirable behavior? – Learn from experiences of the past – Talk to people in your organization ☺ Functionally ok?

Slide 18

Slide 18 text

Case: Patient Admission Letters – Context Map Admission Letter Templates Referral Appointments Surgery Send Letter to Patient Patient Information Next of Kin Send Message to GP Type of Integration: • Which team • What type of relation with the team Health Record

Slide 19

Slide 19 text

Code and product maintainability related questions ▪ Diagrams and maps – How to document integrations with other parts of the application? ▪ Logging and profiling – Just enough to be able to monitor usage in production Functionally ok?

Slide 20

Slide 20 text

Security and performance related questions ▪ Performance testing, memory footprint, authentication, authorization…. ▪ Code analysis for discovering patterns that could lead to bugs in production – Asynchronous communication patterns – Multithreading issues ▪ Concurrency control – Could new functionality introduce concurrency conflicts elsewhere in the system? Performant, secure?

Slide 21

Slide 21 text

Domain-specific context in existing operational environments ▪ How is the legacy system used today? – To what extent will users’ behavior change with new functionality? ▪ Examples from healthcare: Essential functionality customers takes for granted Usable? Useful? The most challenging questions to address are domain-specific

Slide 22

Slide 22 text

Case - Constraints imposed by customers’ organizational structure

Slide 23

Slide 23 text

Case - Constraints imposed by governmental ruling

Slide 24

Slide 24 text

Summary: Mapping of different perspectives to the software quality pyramid Conditions of acceptance Delivery process Code and product maintainability Security and performance Domain-specific context in existing operational environments

Slide 25

Slide 25 text

What about “Successful” ? Product management approach Design approach

Slide 26

Slide 26 text

Application of this Approach • Start with a set of questions that work for you • Engage with your users • Every piece of work is bigger than initially assumed

Slide 27

Slide 27 text

It boils down to this…. • Strengthen the team’s ability in decision-making • Relentless learning

Slide 28

Slide 28 text

Thank you! ▪ Blog: www.medium.com/@mufridk ▪ Twitter @mufridk

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

www.hjernekraft.org