to keep track of the project’s state, manage milesto-
nes and assign tasks to team members. This control
allows an increase of productivity and overall quality,
but more importantly in the domain of critical sys-
tems, it allows to create quality evidences for regula-
tory entities.
The intangible nature of software allows for a
great variety concerning life cycle models, that can
differ in aspects such as overall flow, work products,
level of discipline, customer involvement and team
autonomy.
3.1 Plan Driven Approaches
Considered the first approach to software develop-
ment, the waterfall model, credited to Winston W.
Royce (Royce, 1970), is a popular example of a plan-
driven approach to software development. It por-
trays unidirectional communication between the cy-
cle’s activities. This model is considered to be linear,
because it suggests a sequential systematic approach.
Although originally Royce predicted a certain degree
of iteration between consecutive activities (feedback
loops), most corporations implement straightly linear
waterfall methodologies.
The process begins with a requirements specifi-
cation activity, in which the main functionality and
services provided by the application are agreed upon
with the relevant stakeholders. After that, the team
designs the system, building a global architecture
from the elicited requirements. The implementation
activity follows and the solution is built, before being
integrated and tested. There is also room for a mainte-
nance phase, that implies bugfixing and overall impro-
vement of the product. At each phase of the process,
high priority is given to documentation.
The waterfall model is still a big favorite for deve-
lopment in the healthcare industry because of its plan
driven nature (McCaffery et al., 2016). Its stringency,
attention to quality and priority to documentation sti-
mulate the production of tangible evidences needed to
satisfy regulations and audits.
On the other hand, this line of thought can be-
come less appealing if the software solution has a
more unpredictable nature concerning scope and re-
quirements. The first working version of the software
solution is only finalized in later stages of the deve-
lopment process and that can lead to very high costs
in case something has to be changed.
The strictness of plan-driven approaches is advan-
tageous in some points, mainly when certification is
needed, as we have seen. However, with the intro-
duction of the Medical Device Regulations, one can
predict a change in the nature of the software aiming
to become certified as medical devices, namely be-
cause more lightweight standalone applications will
become relevant. Using a linear model in these ca-
ses can lead to frustration and become unappealing
(Spence, 2005).
3.2 Agile Approaches
In the eighties and beginning of the nineties, linear
life cycle models based on quality assurance and strict
planning were considered the standard approach to
obtain quality. This vision came from experience de-
veloping critical systems (Ian Sommerville, 2010).
However, as this strategy began to be applied by teams
in much smaller businesses, the overhead implied by
the implementation of the development model itself
became unbearable. Most of the resources available
were needed just for quality assurance tasks, and not
for development tasks.
The consequent discontent concerning waterfall
approaches lead to the uprising of the Agile Mani-
festo (Agile Alliance, 2001). This line of thought gi-
ves high priority to ideas such as customer collabora-
tion, reaction to change and communication between
team individuals and disregards production of com-
prehensive documentation and following a rigid plan.
What makes agile so appealing is the priority gi-
ven to accommodate change. In a traditional model,
the cost of change rises non-linearly as the project
progresses. This means that at later stages, when the
stakeholders see the finished product, it’s extremely
costly to change anything. Agile proposes that change
should be possible at any stage of the development
process without major costs.
But the agile philosophy is more than that. It’s a
work paradigm where communication is encouraged
between team members and fast delivery of working
solutions is emphasized (Warden and Shore, 2008).
SCRUM is a popular implementation of the agile
philosophy introduced by Ken Schwaber and Jeff Su-
therland (Schwaber, 1997). It proposes incremental
deliveries of working products through iterative cy-
cles.
The SCRUM team includes an element called a
Product Owner, who is the person in charge of maxi-
mizing the overall value of the solution, which is de-
signed and built by the development team. He is re-
sponsible for prioritizing and ordering the develop-
ment tasks, which are called user stories, in a product
backlog. The development team should guaranty a
functional delivery at the end of each increment.
The time frame between each delivery is called a
sprint. The scrum master, who is part of the deve-
lopment team, is in charge of making sure the scrum
ICSOFT 2018 - 13th International Conference on Software Technologies
136