18
Agility and Quality When Agility and Quality meet 1

When agility meets software quality

Embed Size (px)

Citation preview

Page 1: When agility meets software quality

Agility and QualityWhen Agility and Quality meet

1

Page 2: When agility meets software quality

QUALITYWaterfall Agile

2

Page 3: When agility meets software quality

What is software Quality?

• ISO/DIS 9126 [ISO90]:

• The totality of features and characteristics of a software product that bear on its ability to satisfy stated or implied needs.

3

Page 4: When agility meets software quality

Is software quality a concrete concept?

• In 384 BCE, Aristotle, as a scientist, knew all about medicine, philosophy. . . In 2005 AD, the concept of quality is the same as science in the age of Aristotle: Quality does not distribute in Specific part, when we talk about software quality, we talk about assessing entire items which are part of the concept of quality

4

Page 5: When agility meets software quality

Is software quality a concrete concept?

Different approaches for modelling quality exists:

• Hierarchical models, e.g. Boehm et al. [BBK+78], quantitative models, e.g. Gilb[Gil87], The same idea is present in the model by Eriksson and T¨orn [ET91]. • This model for IS quality forms “aims at a division of quality concepts consistent with the

different decision makers and decisions made during the software life cycle”. The main division is: IS Cost Effectiveness, IS Use Quality and IS Work Quality.

• Product/process based models, e.g. Kitchenham [Kit87].

• Main software quality metrics :• Metrics

• Product

• Process

• Resources

5

Page 6: When agility meets software quality

Evolution of software delivery – Time To Release matters

@2014 Forrester Research

6

Page 7: When agility meets software quality

Evolution of Software delivery – Shift of paradigm

@2014 Forrester Research

7

Page 8: When agility meets software quality

Evolution of Software delivery – Demand and Expectations

• Five 9’s availability and reliability.

• Five to 50 releases per year.

• Ease of use: Constituents figure out the app in less than a minute.

• User experience becomes an absolute requirement, not a nice-to-have.

This will lead to :• Process Chang :A tsunami of releases requires agile processes and new application

architecture. • Change in Technology : Refactor back-end architectures and applications. • Hearts and Minds : Transform to a software engineering group to change the operational

mindset.

8

Page 9: When agility meets software quality

Modern Software

According to Forrester Research :Systems of Engagement (SOE)

Mobile, web, and smart devicesFrequent changesUnknown requirementsDelivered frequently

Systems of Record (SOR)Stable requirementsHighly transactionalLess changeDelivered infrequently

Systems of Automation (SOA) Embedded, smart sensorsConsumption changesDelivered infrequently

Although lot of talks about agility however type of the software can influence the delivery methodology. Different types of software suit different approach for delivery

9

Page 10: When agility meets software quality

Agile Delivery – Methodology Adaptation

10

Page 11: When agility meets software quality

Agile Delivery – Essentials

• Modernize Delivery End To End • Modern Application delivery• Modern Management Technics

• The Success Of Modern Application Delivery Is Largely Dependent On Good PRODUCT OWNERS!• Their focus is product strategy, marketing, and Minimum viable Products (MvP) • They manage their products across their entire lifetime. • They manage requirements from a product-specific and longer-term perspective. • They prioritize user stories backlog!

• Role change for BAs• Someone must understand the problem and stakeholders. • Consultant, negotiator, leader ,Empowered to make decisions about the business • Drives projects to deliver business value• Can play dual role of product owner support

• Improve Your Agile Testing Practices Focus On Automation Testing Where Possible• Less focus on GUI automation • Services/Process automation • Better design and reuse • SDLC to develop automation tests • A growing task for developers • Standardize environments • Automate provisioning of the resources• Put configurations under version control and use automation tools to deploy them • Virtualize and create on demand • Implement CI and Gate check ins and auto-revert if tests fail

11

Page 12: When agility meets software quality

Agile Delivery -Design and requirement gathering

12

Page 13: When agility meets software quality

Agile Methodologies – BAs and QAs Engagement

13

Page 14: When agility meets software quality

Agile Delivery– Software Development Life Cycle

Focus On The Downstream & Tear Down Between Development & IT Operations

• Shared goals• Operations and development connected

• On business goals One lifecycle, one process• Everyone involved in releasing business value

• Streamline release

• Process Tooling that integrates• Huge opportunities for process automation

14

Page 15: When agility meets software quality

Test Continuously, Early, And Rapidly

Agile Delivery– Delivery, Testing and Release Process

15

Page 16: When agility meets software quality

Optimize And Automate The Delivery Pipeline

Agile Delivery – Standard Environment

On SiteOn Site/Offshore

16

Page 17: When agility meets software quality

Agile Software Quality– Principles for Software Quality

• The process for releasing/deploying software MUST be repeatable and reliable.

• Automate everything• A manual deployment can never be described as repeatable and reliable (not if I’m doing it anyway!).

• If somethings difficult or painful, do it more often

• Keep everything in source control

• Done means “released”

• This implies ownership of a project right up until it’s in the hands of the user, and working properly.

• Everybody has responsibility for the release process

• Improve continuously

• Continuous improvement means your system will always be evolving and therefore easier to change when needs be.

• Build binaries only once

• The binary should then be stored someplace which is accessible only to your deployment mechanism, and your deployment mechanism should deploy this same binary to each successive environment…

17

Page 18: When agility meets software quality

Agile Software Quality– Principles for Software Quality(Cont..)

• Use precisely the same mechanism to deploy to every environment

• If anything fails, stop the line!

• Throw it away and start the process again, don’t patch, don’t hack. If a problem arises, no matter where, discard the deployment (i.e. rollback), fix the issue properly, check it in to source control and repeat the deployment process.

• Working software as the primary measure of progress in the hands of the user, welcome changing requirements, even late in development.

• Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely

• Simplicity--the art of maximizing the amount of work not done--is essential

• Feedback loop , mean delivering “unfinished” demo software during your development iterations, and getting your users to give valuable early feedback, or it might mean deploying experimental software to a website cluster and tracking how successful this new site is as compared to the existing system. Either way, it’s all about feedback loops

• Fail Fast

• Deliver working software frequently, from a couple of Months to a couple of weeks, with a preference to the shorter timescale

• Build projects around motivated individuals. We are responsible to give them the environment and support they need, and trust them to get the job done

• Continuous attention to technical excellence and good design enhances agility

18