Professional Documents
Culture Documents
Built-In Software Quality in Agile Development: Mehdi Saleh
Built-In Software Quality in Agile Development: Mehdi Saleh
in Agile development
Mehdi Saleh
1
this could result in unexpected penalty costs and failure to satisfy legal
requirements. The solution to downsize the intensive quality check
after each iteration, is to improve development quality during the
development and building quality into development processes. This is
what we refer as “Built-in quality”; the quality that is built during
software artefacts development on a continuous basis.
Built-in quality can be a huge challenge for organizations with
developers from different background and quality mind-set, who are
benefiting from different quality methods and tools.
This study conducted at Volvo Cars during Agile transformation time
and the main objective was to connect and emphasize the importance
of built-in quality in agile software development. In this study we look
at existing challenges that decrease quality of software artifacts
during the development. Thus, by prevailing those challenges we can
improve the software quality during iteration delivery. Such an
improvement decreases the amount of intensive quality check after
each iteration. Additionally we look at guidelines and tools that used
by different development teams to improve software artifacts’ quality.
We also investigate how quality assurance engineer can support built-
in quality during agile transformation.
Keywords
Built-in quality, Agile development, SAFe, Just in time reporting,
Building quality in code, building quality in requirement specification
2
Table of content
1. Introduction .................................................................................. 4
1.1. Background ..............................................................................4
1.1.1. Traditional quality assurance activities .......................... 9
1.1.2. Agile development and SAFe framework ........................9
1.2. Problem statement ................................................................ 11
1.3. Research questions ................................................................ 11
1.4. Delimitation ........................................................................... 12
1.5. Outline ................................................................................... 12
2. Theoretical framework ................................................................ 14
2.1. Quality, Internal Quality and Built-in software quality ...... 14
2.2. Agile way of working ............................................................. 15
2.3. Built-in quality method and tools ......................................... 17
2.3.1. Built-in quality into requirement .................................. 17
2.3.2. Built-in quality into code ............................................... 20
3. Study design ............................................................................... 23
3.1. Research method ................................................................... 23
4. Data collection ............................................................................ 24
4.1. Strategy ................................................................................. 24
4.2. Questionnaire ........................................................................ 24
4.2.1. Demographics ................................................................. 24
4.2.2. Main questions ............................................................... 24
4.3. Collected Data ....................................................................... 26
5. Findings and conclusions ............................................................ 32
5.1. Summary of the findings and conclusion .............................. 32
5.2. Future work ........................................................................... 35
References......................................................................................... 36
Appendix ........................................................................................... 39
A Appendix: Software Development Standards .............................. 39
B Appendix : Quality assurance documents .................................... 40
3
1. Introduction
This chapter discusses the background and the purpose of the study.
It describes the importance and the relation between agile
development and built-in quality. It defines the problem area along
with the related research questions. The delimitations of the thesis are
also be presented and an outline is listed at the end.
1.1. Background
4
development methodology is needed with shorter release and delivery
time for new functions and features.
Previously, Waterfall methodology was broadly used for software
development and has been used at Volvo Cars. Figure 1 shows
waterfall software process model (Ajmer Rajasthan, 2013) “Its name is
derived from structural specification. Every phase comes after a phase
is completed and tasks can be divided according to phases. The output
of one phase becomes input of next phase but we have the option to
revisit phases in the next cycle.” (Ajmer Rajasthan, 2013)
5
In past decade, Agile as incremental software development
methodology has been introduced and commonly used in different
industries. Agile is based on iterative deliveries with focus on
customer’s need and freedom to change. In such a development,
customer may change or modify the requirements. (Figure 2)
6
the quality activities will lag behind the deliveries and become
ineffective. (Figure 3) Activities like joint reviews, comprehensive
documentation and complete risk assessment prior to development.
7
reporting during the development. The developer can instantly update
his/her work product to achieve the desire quality of work.
For example, deep nesting is one of the characteristics of code
complexity. The automated reporting system measures code nesting
and provides with instant reporting. If nesting was above that
maximum threshold (based on company quality policy), the developer
should refactor and improve his/her software code.
Volvo Cars has already started the agile transformation journey and
adaptation to agile software development methodology.
8
1.1.1. Traditional quality assurance activities
9
organization (50 – 125 people) that plans, commits, and executes
together. ARTs are organized around the enterprise’s significant Value
Streams and exist solely to realize the promise of that value by
building Solutions that deliver benefit to the end user.” (Agile Release
Train - SAFe f for Lean Enterprise, 2018)
10
1.2. Problem statement
11
What are the existing challenges and activities related to building
software quality into the product on a continuous basis within
Volvo Cars electronic and software department?
What are the existing guidelines and automated software quality
measurement systems used in Volvo Cars electronic and software
department?
How quality assurance engineer can support and improve built-in
quality in large enterprise agile environment?
1.4. Delimitation
1.5. Outline
12
questionnaire displayed in chapter four and at the end; chapter five is
the place for discussions and conclusions.
13
2. Theoretical framework
This chapter explains the concept of built-in quality. In addition, we
will look at some methods and tools for automated feedback system for
improving software artefact quality.
There are several definitions for Quality. Here we look at few of them.
“The degree to which a set of inherent characteristics fulfils
requirements.” (SS-EN ISO 9000:2000)
“Fitness for use” (Joseph Juran, 1953)
“Conformance to requirements (requirements meaning both the
product and the customer's requirements)” (Philips Crosby, 1979)
“Quality of a product (part of service) is the ability to satisfy and
preferably exceed the customer needs and expectation” (Bergman
Klefsjö, 2004)
Quality means improving services, products, processes and systems, to
assure that the organization products or services are fault free and
satisfy customers’ need.
Internal Quality in software development is the degree of the design
excellence of software artefacts that comprise the software product.
Built-In Quality refers to the practice when the internal quality of
software is built-in the software development artefacts on a continuous
basis with help of automated measurement systems and guidelines.
Crucially, internal quality of software (figure 5) has a decisive impact
on product quality. The benefits of built-in quality practice are: (V.
Antinyan, etal. ,2017)
14
Significantly reduced number of defects
Minimized risk of late design modification
250-500 % reduced maintenance time
15
Agile methodology emphasizes on Empowered team. A self-organized
knowledgeable team that is responsible and capable of high quality
product delivery.
As stated earlier, Agile proved to be a successful methodology for
software development. Faster delivery in shorter iteration, delivering
customer value on every
iteration, with the
possibility to change of
requirement; increase
customer satisfaction.
Figure 6 is a comparison
between agile and
waterfall methodologies.
In Agile, developers are
within an empowered, Figure 6 – Agile vs Waterfall
self-organized team
without traditional management and fixed deadlines. Agile team is
responsible for software quality and there will not be a dedicated
separate team looking after quality and quality assurance activities.
Many software companies found agile methodology as a suitable way
of working with better performance and moving toward this change.
To build a quality product, every software product artefact, including
requirement specification, architect, model, code, test and
documentation, must be well qualified during the development. For
example writing bad requirement may lead to wrong architect and
wrong code. Necessary methods and tools are needed to support this
success.
16
2.3. Built-in quality method and tools
17
Are all prerequisites clearly defined?
Clear
Does the requirement contain enough information? (Boolean
expressions like AND, OR, should be kept as simple as possible)
It is recommended that all statements written in positive terms.
Does each requirement state WHAT the system SHALL do and
under which conditions?
Interpretation of the requirement must be free of contradictions.
Verifiable
It should be possible to test all requirements through system
demonstration, inspection and analysis.
Does the requirement define what quantity shall be measured
and in what unit?
Traceable
Can the requirement be traced back to the requirement it
originates from?
Requirement should have a unique ID.
Requirement vs Implementation
Is the requirement as free of solutions as possible?
(Focus on WHAT the system shall do. Avoid describing HOW the
system will do something)
Is the requirement feasible / realistic to achieve in terms of Cost,
implementation & added value?
The question is how to measure textual requirements quality. Briand
et al. (1996) proposed a set of internal quality properties for software
artefacts. An overview presented in Figure 7
18
In the left side, there are measure aspects including complexity,
coupling and size, and the right side is the list of measures to quantify
those aspects. For example large number of conjunctions and/or vague
phrases indicates the high complexity of the requirement.
19
Table 1 – Measures and measurement method
Some companies like Volvo Cars developed their own internal system
to provide with just-in-time feedback to requirement writer, based on
above or similar methods. These kinds of methods empowers the
systems responsible to get instant feedback while specifying the
requirement.
20
Nesting depth, control statement, misleading comments, multi
developers, multi-tasking, frequent changes and complex
21
There are several metrics and measurement systems that can give
automated feedback on software complexity; like SonarQube, Pylint
and Pycodestyle.
22
3. Study design
23
4. Data collection
This chapter represents the strategy and questioners that I used
during interviews for data collection.
4.1. Strategy
4.2. Questionnaire
The interview consists of three sections and planned for 30-45 minutes.
4.2.1. Demographics
The second and main part the interview structured in a way to achieve
following objectives that are directly link to research questions.
Main challenges and activities to increase built-in quality of
source code or requirement.
Existing standard and guidelines to improve quality.
24
Metrics and measures for built-in quality.
To investigate above mentioned objective, following interview
questionnaire was designed and used.
1- Can you please describe the main challenges that decrease the
quality of Software artefact?
2- What activities do you have that intend to increase the quality of
Software artefact?
3- How often do you perform them?
4- How much do you think it helps to increase code quality?
5- What guidelines and standards do you use for improving Software
artefact quality?
6- What metrics or measurement systems do you have that can give
automated feedback on Software artefact quality?
7- How much do you thinks it helps?
8- What decision criteria are defined based on measurements to
trigger corrective actions?
9- What do you think is missing from the current state of measures,
guidelines, and tools?
Above nine questions are directly link to research problem and allow
us to draw patterns to answer the research questions.
25
4.3. Collected Data
26
Below Table 3 is the list of main challenges that decrease the quality
of software artefact. (Second question of questionnaire)
27
Activities that intend to increase the quality of software artefact is
shown in Table 4. The second column is the total number of positive
responses and the third column is the total number of interviewees
that the activity was applicable to their working software artefact.
They perform those activities whenever there is new requirement or
software release. Whenever new code is going to be merged. At least
once in every sprint. A sprint is the development iteration and usually
two weeks long.
All the interviewees believed those activities helps in different ways. They
mentioned following statements.
It will be much easier for developers to find issues early before
integration to complete software.
It is good but there is a lot of room to make it better.
It helps a lot in a long run, keeps the high maintainability.
Learning from each other and correcting each other mistakes
Total
Activities Number number of
interviewee
Peer review - design review 8 8
Unit test 3 4
Integration test 2 4
Test coverage 3 4
1
Knowledge transfer within the team 4
28
Next question was about guideline and standards that they use for
improving software artefact quality. Below table 5 is the list of
interviewees’ feedbacks. In this table the first column is the guidelines
and standards that one or more interviewees mentioned during the
interviews and second column is the number of interviewees who
benefit from this guideline and standard.
Number of
Guideline and Standards
interviewees
29
Table 6 is the list of metrics and measurement systems that can give
automated feedback on software quality artefact. The column two is
the number of interviewees that use related tool.
Number of
Tool name
interviewees
Code coverage tool for unit test. Pass/fail for unit test 1
30
Table 7 shows the list of items that are missing from the current state
of measures, guidelines, and tools. Second column indicates number of
interviewees who mentioned the missing item during interviews.
Number of
Items
interviewees
Developers training 1
31
5. Findings and conclusions
This chapter is the summery of finding and conclusions. At the end it
presents the future work.
All interviews were open discussions for open equations and findings,
to allow the interviewees to discuss any uncovered area. All of
interviewees were well experienced in their field of expertise. Built-in
quality was a very interesting subject for all, especially during agile
transformation at Volvo Cars.
The first and important observation was the finding in main
challenges. The expectation was to find more about code complexity
characteristics and technical subjects. Although some of the main
challenges were technical challenges, but majority of them were
around communication and business non-technical concerns. Some of
the points like “delivery vs qualified delivery” was more personal and
team dependent.
However, this is an improving opportunity for Volvo Cars during agile
transformation. Because communication and self-organized team is
one of the agile essentials. Such conclusion proves that agile
transformation was the right decision for Volvo Cars to overcome with
these challenges. It was interesting to see how hardware performance
can challenge software product quality. It shows that quality
engineers must look at bigger picture to be able to help more
efficiently. It should not be only about code and requirement, it is
about overall software quality life cycle. More communication with
32
other stakeholders including higher management can resolve some
business-related challenges like personal rotation.
Based on answers to second question, almost non-of the suggested
activities that intend to increase the quality of the software artifact
are directly related to exiting challenges in fist question. Table 8 shows
the relation between challenges and activities suggested by each
interviews.
Knowledge
Lack of good test Peer review -
transfer within
platform design review
the team
Lack of software
development knowledge
Unit test isolated
from main Statistic code
Hardware performance Integration test
development analyser
machine
Table 8 – Relation between challenges and activities
33
Another finding from this study is that the quality assurance engineer
can support and possibly improve built-in quality at Volvo Cars. This
can be achieved by meeting development team and understanding
their challenges and activities. It may not be the same in different
organizations. Hence, quality assurance engineer should not assume
that all companies operate in same way with similar challenges.
For guidelines and standards, the study indicates that large enterprise
solution with large number of development teams, requires centralized
guidelines and standards. This action can save lot of time and money,
and to some extent overcomes with staff turnover challenge. New or
transferred developer can be trained easier and best practices can be
discussed between teams.
34
5.2. Future work
35
References
Businessinsider.com (2018),
36
<https://www.businessinsider.com/how-many-lines-of-code-it-takes-
to-run-different-software-2017-2?r=US&IR=T&IR=T> [Accessed 25
August 2018].
37
SAFe f for Lean Enterprise (2018)
<https://www.scaledagileframework.com/#> [Accessed 25 April 2018].
Agile Release Train - SAFe f for Lean Enterprise (2018)
<https://www.scaledagileframework.com/agile-release-train/>
[Accessed 15 August 2018].
38
Appendix
39
B Appendix : Quality assurance documents
40
important to understand construction when adding/removing
functionality or bug fixing.
9- Hardware/Software Interface Specification. Hardware and
Software interface for memory mapping.
10- Software Product Specification (SWPS) How to recreate a certain
and configure files. To make sure that knowledge will be
transferred in team.
11- Software Version Description (SWVD). What was done in this
version compare to last one? Problems, what works what doesn't.
12- Software Test Plan (SWTP). Test organization. Test environment,
test levels, automatic tests / manual tests.
13- Software Test Description (SWTD). How a requirement is
tested, which test steps. If test case verifies requirement
14- Software Test Report (SWTR) Evidence that SW will have all
desired requirements. Correctly respond to all inputs. use it to as
part of decision of SW is good enough to release at Volvo
15- Software Worst-Case Analysis Report (SWWCA) In real-time
computing (in vehicle), the worst-case execution time is often of
particular concern since it is important to know how much time
might be needed in the worst case to guarantee that the algorithm
will always finish on time.
16- SPICE assessment, Process maturity is only one part that
contributes to product quality. The more structured one works, the
lower is the likelihood to introduce systematic faults.
17- SPICE assessment action plan. Who drives this to make sure
that improvements will be done? (effective if independent quality
organization)
41