You are on page 1of 20

Database Systems Journal vol. V, no.

3/2014 37

Comparative study on software development methodologies

Mihai Liviu DESPA


mihai.despa@yahoo.com

Bucharest University of Economic Studies

This paper focuses on the current state of knowledge in the field of software development
methodologies. It aims to set the stage for the formalization of a software development
methodology dedicated to innovation orientated IT projects. The paper starts by depicting
specific characteristics in software development project management. Managing software
development projects involves techniques and skills that are proprietary to the IT industry.
Also the software development project manager handles challenges and risks that are
predominantly encountered in business and research areas that involve state of the art
technology. Conventional software development stages are defined and briefly described.
Development stages are the building blocks of any software development methodology so it is
important to properly research this aspect. Current software development methodologies are
presented. Development stages are defined for every showcased methodology. For each
methodology a graphic representation is illustrated in order to better individualize its
structure. Software development methodologies are compared by highlighting strengths and
weaknesses from the stakeholder’s point of view. Conclusions are formulated and a research
direction aimed at formalizing a software development methodology dedicated to innovation
orientated IT projects is enunciated.
Keywords: software development, project management, development methodology

1 Introduction
The management process of a
software development projects follows
development projects are notorious for
frequently changing initial planning and
specifications. What do you believe are the
the basic rules of project management but main reasons for changing specifications
also includes particular features. A during the development stage? Project
software development project manager managers responded on 3 out of the 11
has to deal with challenges and setbacks groups. The 3 groups are: PMO – project
that are proprietary to the IT industry. management office, Agile Project
Also in software development there are Management Group and International
benefits and strong points that help ease Society for Professional Innovation
the burden of management. Management. Based on the information
collected from the LinkedIn discussions and
Software development projects are on the author’s own experience as software
notorious for frequently changing initial development project manager specifications
planning and specifications. In order to change due to the fact that:
identify the main reasons for changing  the project owner identifies new
specification during the development business opportunities and decides to
stage of a software product debates were integrate them into the software
started on LinkedIn project management being developed;
groups. Debates were initiated on 11  due to the technical nature of
LinkedIn groups starting the discussion software development projects there
with the following introduction: Software is a lack of shared understanding of
38 Comparative Study on Software Development Methodologies

expected outcomes; development in order to meet the project


 original planning was based on owner’s requirements and in order
specifications that were coordinate effectively the project team.
misinterpreted by the project
manager or poorly illustrated by Software development projects involve
the project owner; project teams that are made up of highly
 project team is unable to skilled and highly trained individuals with
implement planned functionalities predominantly technical backgrounds.
due to lack of expertise or Highly skilled and highly trained individuals
technological limitations; will require significant compensation for
 the context in which the software their work and that will translate into high
is going to be used changes thus man-hour or man-day rates. So the project
generating the need for the manager is under considerable pressure to
software to change; provide accurate time estimates in terms of
 new technology or software required man-days as every inconsistency
product is launched on the market. will generate significant additional costs.
Also highly skilled individuals don’t
Changing specifications has a negative integrate well in a team as they have a
impact on the project management tendency of being arrogant and self-
process as it reduces predictability and absorbed. The project manager should be
exercises pressure on the budget and able to exploit their ego in the best interest
deadlines. of the project and mitigate disputes and
opinion clashes that occur between team
The software development field is members.
characterized by high dynamics of
technology and standards. Programming Software development projects are often
languages evolve, new frameworks arise implemented by teams that have members
and fall with astonishing speed, user distributed all over the globe. Building
interfaces become more and more diverse software does not require formal face-to-
as software is required to work on a face communication. Task assignment and
larger array of devices. PHP server-side task tracking is done by using online
scripting language registered 16 releases management tools like Pivotal Tracker,
on new and improved versions in 2014 Basecamp or Producteev. Code version
alone [1]. The software development control is ensured by using versioning tools
community widely accepted Phalcon and like SVN or GIT. File sharing is
Laravel, as two of the most powerful accomplished by using tools like Dropbox,
PHP frameworks. Both were released in Google Drive or Box. Online meetings can
2012. The project manager has to keep up take place using Skype video conferences.
with the latest trends in software
Table 1. Software development projects characteristics
Characteristic Positive Impact Negative Impact
jeopardize deadlines
frequently changing results in exceeding the project
- budget
specifications
causes stress and discontent for
the development team
software can become obsolete
generates new
high dynamics of by the time it hits the market
opportunities in terms of
technology and standards software developers have to
design and codding
invest a lot of time in
Database Systems Journal vol. V, no. 3/2014 39

researching new technologies


increases the likelihood of high cost generated by human
skilled workforce achieving innovative resources
results
work can be performed monitoring and control
around the clock becomes more difficult
globally distributed teams
cultural diversity nurtures integrating new code is more
creativity challenging

Table 1 summarizes the impact that behaviour patterns. The project team is
software development characteristics have responsible for evaluating the requirements
on the project management and implicitly from a technical perspective. The project
on the project team. The only team will have to research the frameworks,
characteristic that does not have a positive API’s, libraries, versioning tools and
impact is frequently changing of hosting infrastructure that will be required
specifications. in order to build the software product.

2. Software development stages Planning is the stage where all the


Building a software product is a process elements are set in order to develop the
consisting of several distinct stages. Each software product. Planning starts with
stage has its own deliverables and is bound defining the overall flow of the application.
by a specific time frame. Depending on the Next step is to breakdown the flow into
project, certain stages gain additional smaller, easier to manage subassemblies.
weight in the overall effort to implement For each subassembly a comprehensive set
the software product. of functionalities has to be defined. Based
on the required functionality a database
Research is the stage where the project structure is designed. Taking into account
owner, the project manager and the project the overall flow of the application, the
team gather and exchange information. subassemblies, functionalities and database
The project owner is responsible for structure, the project manager together
formulating requirements and passing them with the project team have to choose the
on to the project manager. In order to technology that will be employed to
properly formulate requirements the develop the application. Also the project
project owner has to first define a set of manager should decide on the best suited
goals. Then he has to envision the way a management methodology and the proper
software product will help him achieve work protocol for the project at hand.
those goals. In the research stage the
project owner will try to find people or Design is the stage where the layout of the
companies with similar goals and application is created. Web applications
document the way those people or and mobile applications tend to grant more
companies acted upon fulfilling their goals. impotence to layout than desktop
The project manager is responsible for applications. Depending on the nature of
receiving the requirements from the project the application designs can range from
owner, evaluating them and passing them rough and functionality driven to complex
to the project team as technical and artistic. An accounting application will
specification. The project manager has to only require basic graphic design but an
be able to evaluate the requirements from online museum will require high end
both a business perspective and a technical design work. In an accounting application
perspective. The project manager has to design has to emphasize and enhance
research market characteristics and user functionality whereas in an online museum
40 Comparative Study on Software Development Methodologies

functionality has to be tailored in order to issue. Design errors are actually


fit the design. The graphic design can inconsistency between what the project
overlap with the planning and with the owner requested and what the project team
programming stage. The graphic design ended up implementing. Design errors
stage is important because it will display to occur in the planning stage, have a
the project owner a preview of the significant impact on the project and are
application before it is actually built. At usually harder to fix. Identifying design
this stage usually the project owner comes errors is considerably more efficient when
up with new requirements that have to be the project owner is involved as he is the
summited to research and planning. one that formulated the application
requirements.
Development is the stage where code is
written and the software application is Setup is the stage where the application is
actually built. The development stage starts installed on the live environment. The
with setting up the development setup stage precedes the actual exploitation
environment and the testing environment. of the software product. The setup entails
The development environment and the test configuring the live environment in terms
environment should be synchronized using of security, hardware and software
always the same protocol. Code is written resources. Back-up procedures are defined
on the development environment and and tested. The actual setup of the software
uploaded on the test environment using the product includes copying the source code,
synchronization protocol. Another importing the database, installing third
important aspect of the development stage party applications if required, installing
is progress monitoring. The project cron-jobs if required and configuring API’s
manager has to determine actual progress if required. Once the application is
and evaluate it against the initial planning. installed it will go through another full
The project manager should constantly testing cycle. When testing is completed
update the project owner on the overall content is added to the application.
progress. When writing code the software
developers should also perform debugging Maintenance is the stage that covers
operation in order to upload clean and bug software development subsequent to the
free updates on the testing environment. application setup and also the stage
Software developers should also comment responsible for ensuring that the
their code so that they can easily decipher application is running within the planned
later or make it easy to understand for parameters. Ensuring that the application is
other developers. running properly is done by monitoring the
firewall, mail, HTTP, FTP, MySQL and
Testing is the stage where programming SSH error logs. Also monitoring traffic
and design errors are identified and fixed. data will provide valuable input on
Programming errors are scenarios were the potential issues that may affect the
application crashes or behave in a way it application’s performance. An important
was not supposed to according to the part of the maintenance stage consists of
designed architecture. Programing errors systematically testing functionalities for
also consist in security or usability issues. errors that were not identified in the testing
If the application is vulnerable to attacks stage or for issues that are not displayed in
and can therefore allow attackers access to the error logs. The maintenance stage also
private data, then that is regarded as a provides the opportunity to add new
programming error. If users have problem features of functionality to the software
with slow response time from the application. Adding new code or changing
application than that also is a programming the old code will have to be submitted to
Database Systems Journal vol. V, no. 3/2014 41

research, planning, programing, testing and their core characteristics. The analysis
setup. includes specifying the scale of the project
the methodology is suited for, the stage
The above mentioned stages are generally project owner feedback is delivered and a
agreed by the software development graphic representation of the methodology.
community as being the cornerstones of For coherence reasons stages defined in the
every software development project. second section of the article are also used
Depending of software development in depicting the graphic representations of
methodology they may be found under the methodologies.
different naming conventions, they may be
overlapping changing order or missing Waterfall is the first methodology
altogether. generally acknowledged as being dedicated
to software development. Its principals are
3. Current software development for the first time described by Winston W.
methodologies Royce even though the actual term
A software development methodology is a waterfall is not used in the article [24]. It
set of rules and guidelines that are used in emphasizes meticulous planning and it
the process of researching, planning, outputs comprehensive documentation.
designing, developing, testing, setup and The Waterfall methodology is linear-
maintaining a software product. The sequential process where every stage starts
methodology also includes core values that only after the previous has been completed.
are upheld by the project team and tools Each stage has its own deliverables. The
used in the planning, development and Waterfall methodology is predictable and
implementation process. This paper values rigorous software planning and
reviews 20 of the most popular software architecture.
development methodologies and highlights

Fig. 1. Waterfall methodology

The project owner’s feedback is received software development projects where


after the software application is completely requirements are clear and detailed
developed and tested. The Waterfall planning can be easily drafted for the entire
methodology is suitable for small scale project.
42 Comparative Study on Software Development Methodologies

Prototyping is a methodology that evolved specifications as it acts as baseline for


out of the need to better define communication between project team and
specifications and it entails building a project owner. The prototype is not meant
demo version of the software product that to be further developed into the actual
includes the critical functionality. Initial software product. Prototypes should be
specifications are defined only to provide built fast and most of the times they
sufficient information to build a prototype. disregard programming best practices [2].
The prototype is used to refine

Fig. 2. Prototyping methodology

The project owner’s feedback is received software application one step at the time in
after the prototype is completed. The the form of an expanding model [3]. Based
Prototyping methodology is suitable for on initial specification a basic model of the
large scale projects where is almost application is built. Unlike the prototype,
impossible to properly define exhaustive the model is not going to be discarded, but
requirements before any actual codding is is instead meant to be extended. After the
performed. Prototyping methodology is model is tested and feedback is received
also suitable for unique or innovative from the project owner specifications are
projects where no previous examples exist. adjusted and the model is extended. The
process is repeated until the model
Iterative and incremental is a becomes a fully functional application that
methodology that relies on building the meets all the project owner’s requirements.

Fig. 3. Iterative and incremental methodology

The project owner’s feedback is received methodology has 4 major phase: planning,
after each iteration is completed. The risk analysis, development and evaluation.
Iterative and incremental methodology Project will fallow each phase multiple
emphasizes design over documentation and times in the above mentioned order until
is suitable for medium and large projects. the software application is ready to be
setup on the live environment. The Spiral
Spiral is a methodology that focuses on methodology emphasizes risk analysis and
identifying objectives and analysing viable always evaluates multiple alternatives
alternatives in the context well documented before proceeding to implementing one.
project constrains [4]. The Spiral
Database Systems Journal vol. V, no. 3/2014 43

Fig. 4. Spiral methodology

The project owner’s feedback is received much faster development and higher-
after the first iteration of the spiral is quality results than those achieved with the
completed. The Spiral methodology is traditional methodologies. It is designed to
suitable for medium and large scale take the maximum advantage of powerful
projects. It has also proven more effective development software [15]. Rapid
in implementing internal projects as application development imposes less
identifying risks proprietary to your own emphasis on planning tasks and more
organization is easier. emphasis on development. Development
cycles are time boxed and multiple cycles
Rapid application development is a can be developed at the same time.
development lifecycle designed to give

Fig. 5. Rapid application development methodology

The project owner’s feedback is received projects with the constraint that projects
after each module is completed. The Rapid have to be broken down into modules.
application development methodology is
suitable for small, medium and large scale Extreme programming breaks the
conventional software development
44 Comparative Study on Software Development Methodologies

process into smaller more manageable and the other is supervising. They change
chunks. Rather than planning, analysing, roles at regular intervals. For reducing the
and designing for the entire project at once, number of errors it relies heavily on unit
extreme programming exploits the testing and developers are required to write
reduction in the cost of changing software tests before writing the actual code. There
to do all of these activities a little at a time, is a collective ownership code policy
throughout the entire software where any developer can change any code
development process [5]. It enforces pair sequence even if it was not written by him.
programming where two developers use The project owner is the one that decides
the same computer. One is writing code the priority of the tasks.

Fig. 6. Extreme programming methodology

Extreme programming methodology V-Model methodology is a software


requires that a represented of the project development process which is an extension
owner is always with the development of the waterfall model [16]. It emphasizes
team in order to have access to continuous thorough testing by pairing each software
and relevant feedback. The Extreme development stage with a matching phase
programming methodology is suitable for of testing.
small, medium and large scale projects.

Fig. 7. V-Model methodology

The project owner’s feedback is received suitable for small and medium scale
in the form of acceptance testing after the projects.
entire application is completed. The V-
Model development methodology is Scrum is a methodology for incrementally
building software in complex
Database Systems Journal vol. V, no. 3/2014 45

environments [6]. Software requirements assessed in daily meetings that are


are formulated and prioritized by the confined to 15 minutes and are known as
product owner and are called stories. All Daily Scrum. Task assignment is not done
the stories make up the Product Backlog. by the project manager or by any other
The Scrum methodology adopted a time individual. Scrum development teams are
box approach where development cycles self-organized and task assignment is a
known as Sprints take no more than 4 process where every team member is
weeks and end with a working version of involved. The team efforts are kept on
the application. All the stories of a sprint track by a Scrum Master.
make up the Sprint’s Backlog. Progress is

Fig. 8. Scrum methodology

The project owner’s feedback is received methodology is to construct software with


at the end of each sprint. The Scrum no defects during development [7].
methodology is suitable for small, medium Cleanroom methodology relies on a box
and large scale projects. structure method to design the software
product. Quality control is performed by
Cleanroom is a methodology that focuses using mathematic models and it also
on defect prevention. The motivation for introduces a statistical approach to testing.
this approach is the fact that defect Developers do not test the code that is the
prevention is much less expensive than testing team’s responsibility.
defect removal. The goal of the Cleanroom

Fig. 9. Cleanroom methodology

The project owner’s feedback is received


at the end of each increment. The Dynamic systems development
Cleanroom methodology is suitable for methodology is focused on developing
small, medium and large scale projects. application systems that truly serve the
46 Comparative Study on Software Development Methodologies

needs of the business [17]. Dynamic standards at the beginning of the project
systems development methodology is an and it sets non-negotiable deadlines.
iterative development model that uses a Testing is done early and continually
timebox approach and MoSCoW task throughout the entire development cycle.
prioritization. It defines strict quality

Fig. 10. Dynamic systems development methodology

Project team and project owner share a the-box roadmaps for different types of
workplace, physical or virtual, in order to software projects and it provides guidance
facilitate efficient feedback at every stage for all aspects of a software project. It does
of the project. The Dynamic systems not require the project team to engage in
development methodology is suitable for any specific activity or produce any
medium and large scale projects. specific artefact. It provides guidelines that
help the project manager tailor the process
Rational unified process methodology if none of the out-of-the-box roadmaps
provides a disciplined approach to software suits the project or organization [8].
development. It comes with several out-of-

Fig. 11. Rational unified process methodology

The project owner’s feedback is received is suitable for small, medium and large
as agreed at the start of the project as the scale projects.
methodology does not enforce a rule on
project team – project owner collaboration. Lean software development is a product
The Rational unified process methodology development paradigm with an end-to-end
Database Systems Journal vol. V, no. 3/2014 47

focus on creating value for the project also insures that team members are
owner and for the end user, eliminating motivated by empowering them to make
waste, optimizing value streams, significant decisions regarding the
empowering people and continuously application. The Lean software
improving [9]. Value is defined as development methodology does not
something that the project owner would enforce a certain process in terms of
pay for. Anything that is not adding value conducting the project. Project manager
is considered waste and has to be and team members are free to use any
discarded. Lean software development process they see fit as long as it stays true
delivers early iterations of working code. It to core lean development principals.

Fig. 12. Lean software development methodology

The project owner’s feedback is central to new functionality. If the tests work then
the Lean software development there is no need to write any code as the
methodology. The Lean software functionality already exists, it was just not
development methodology is suitable for know to the developer. This scenario is
small, medium and large scale projects. often encountered when dealing with
legacy code. If tests do not compile then
Test-driven development is a the developer will write the code and run
methodology developed around unit the tests again. The process is repeated
testing. Before writing any actual code the until all requirements are met [10].
developers write automated test cases for

Fig. 13. Test-driven development methodology

The project owner’s feedback is received projects. It is also recommended for


after the code tested successfully. The scenarios where developers have to work
Test-driven development methodology is with legacy code.
suitable for medium and large scale
48 Comparative Study on Software Development Methodologies

Behaviour-driven development acceptance test scenarios developers will


methodology is developed around implement functionality. When
acceptance testing. The project owner functionality in developed it is tested using
writes the requirements in the form of the same acceptance testing scenarios. If it
acceptance tests using a standard format. passes the tests code is moved on the live
Requirements are defined as user stories environment. The entire process is
and include a title, a narrative part and repeated until all requirements are met.
acceptance criteria [18]. Based on the

Fig. 14. Behaviour-driven development methodology

The project owner’s feedback is received Feature-driven development is a


after the code tested successfully. The methodology focused on actual
Behaviour-driven development functionality. Each feature in the Feature-
methodology is suitable for small, medium driven development methodology reads as
and large scale projects. It is also a requirement which is understandable by
recommended for scenarios where the project owner, it has true business
developers have to work with legacy code. meaning and describes true business value
[11].

Fig. 15. Feature-driven development methodology

The project owner’s feedback is received ways of handling requirements [12]. Based
after the application is already setup but on project owner’s requirements a
constant interaction between development metamodel is define. The metamodel is
team and project owner takes place actually a platform independent model that
throughout the entire length of the project. can be migrated onto any environment.
The Feature-driven development UML is usually used for building the
methodology is suitable for small, medium metamodel. The metamodel is then
and large scale projects. converted into a model that is specific to a
certain platform. Based on the model the
Model-driven engineering is a complex actual code is then generated.
methodology that uses domain models as

Fig. 16. Model-driven development methodology


Database Systems Journal vol. V, no. 3/2014 49

process, are the most important factor in


The project owner’s feedback is received any software project. Crystal Methods is a
after the code tested successfully. The myriad of methodology elements and does
not tackle every project in the same
Model-driven engineering methodology is manner but instead uses custom tailored
suitable for small, medium and large scale processes and tools depending on the
projects. It is also recommended for project’s profile and scale. Large or safety
projects that will have long exploitation critical projects require more methodology
period as metamodels can be easily elements than small non-critical projects.
migrated and adapted to new technologies. With Crystal Methods, organizations only
develop and use as much methodology as
Crystal Methods is a family of their business needs demand [19]. Crystal
methodologies that developed around the uses an iterative approach but does not
theory that people, and not tools or enforce a release with every iteration.

Fig. 17. Crystal Methods methodology

The project owner’s feedback is received requirement determination by involving


after each iteration is finished. The Crystal end users, project owner and project team
Methods methodology is suitable for small, in a series of freely interacting meetings
medium and large scale projects. It has a [13]. End user and project owner are also
different approach depending on the scale heavily involved in the design and
of the project. development stages. Joint Application
Development methodology uses
Joint application development is a prototyping as the basis for the actual
methodology that focuses on system software development.

Fig. 18. Joint application development methodology

The project owner’s feedback is received development methodology is suitable for


at every JAD meeting and after the medium and large scale projects.
prototype is finished. The Joint application
50 Comparative Study on Software Development Methodologies

Adaptive software development is a project’s mission. It is a timeboxed model


methodology that was built as a response that values delivering features and accepts
to an economy that is increasingly changes in all stages of the project.
changing and evolving [14]. Adaptive Adaptive software development responds
software development is based on iterative accepts risks and handles them efficiently.
development and is oriented on the

Fig. 19. Adaptive software development methodology

The project owner’s feedback is received of programmers work on writing,


after each iteration is finished. The debugging and testing software without
Adaptive software development expecting any direct compensation. Most
methodology is suitable for small, medium open source software developers will never
and large scale projects. meet face to face and yet find a way to
collaborate in harmony. Open source
Open source software development is a software development has the advantage of
decentralized methodology with no central comprehensive testing as code is reviewed
authority, project owner, no compensation by a large number of developers and also
for the project team, no accountability and benefits from around the clock work on the
yet with a high success rate [20]. Open project as developers are geographically
source software development defies scattered all around the globe.
traditional economic theory as thousands

Fig. 20. Open source software development methodology

In open source software development there The methodology is suitable for small,
is no project owner to provide feedback. medium and large scale projects.
Database Systems Journal vol. V, no. 3/2014 51

Microsoft Solutions Framework is a both lightweight and heavyweight


deliberate and disciplined approach to implementation so it can be applied in an
technology projects based on a defined set agile manner or using a waterfall approach.
of principles, models, disciplines, It fosters open communication and
concepts, guidelines, and proven practices empowers team members but at the same
from Microsoft [21]. Microsoft Solutions time establishes clear accountability and
Framework methodology has versions for shared responsibility.

Fig. 21. Microsoft Solutions Framework methodology

The project owner’s feedback is received They were not included in the current
after deployment. The Microsoft Solutions comparative study as they are variation of
Framework is suitable for small, medium other methodologies and their
and large scale projects. characteristics were already submitted to
analysis.
Apart from the above mentioned
methodologies a further research of the 4. Strengths and weaknesses
topic might consider analysing the Software development methodologies
following methodologies: follow one of two paths: heavyweight or
 Dual Vee model – a variation of the lightweight. Heavyweight methodologies
V model; are derived from the waterfall model and
 Evolutionary project management – emphasizes detailed planning, exhaustive
forerunner of the current agile specifications and detailed application
methodologies [23]; design. Lightweight methodologies are
 Agile Unified Process – a derived from the Agile model and promote
simplified version of the Rational working software, individuals and
Unified Process; interactions, acceptance of changing
 Essential Unified Process – a requirements and user feedback. The
variation of the Rational Unified Microsoft Solutions Framework includes
Process; variations for both heavyweight and
 Open Unified Process - a variation lightweight philosophies.
of the Rational Unified Process
[22].

Table 2. Software development methodologies characteristics


Methodology Characteristics Strengths Weaknesses
- comprehensive - easy to manage - working code is delivered
documentation - easy to understand for the late in the project
- meticulous planning project owner and team - does not cope well with
Waterfall
- linear-sequential process changing requirements
- each phase has its own - low tolerance for design
deliverables and planning errors
- build one or more demo - accurate identification of - leads to unnecessary
versions of the software application requirements increase of the
product - early feedback from the application’s complexity
Prototyping - project owner is actively project owner - increased programming
involved - improved user experience effort
- prototypes are meant to be - early identification of - costs generated by
discarded missing or redundant building the prototype
52 Comparative Study on Software Development Methodologies

- writing code is valued over functionality


writing specifications
- build an initial model that - continuous feedback -each iteration is a rigid
is meant to be extended in from the project owner structure that resembles a
successive iterations - multiple revisions on the small scale waterfall
Iterative and
- emphasizes design over entire application and on project
incremental
documentation specific functionality
- project owner is actively - working code is delivered
involved early in the project
- focuses on objectives, - working code is delivered - costs generated by risk
alternatives and constrains early in the project handling
- has 4 major phase: - minimizes risk - dependent on accurate
planning, risk analysis, - strong documentation risk analysis
development and evaluation
Spiral
- emphasises risk analysis
- evaluates multiple
alternatives before
proceeding to the planning
stage
- less emphasis on planning - applications are - poor documentation
tasks and more focus on developed fast - high development costs
Rapid application development - code can be easily reused
development - code integration issues
- timebox approach - application has to be
broken into modules
- pair programming - application gets very fast - lack of documentation
- unit testing in the production - developers reluctance to
- fast consecutive releases environment pair programing
- collective ownership - frequent releases of - developers reluctance to
- on-site project owner working code write tests first and code
Extreme
- open workspace - reduced number of bugs later
programming
- project owner decides the - smooth code integration - requires frequent
priority of tasks - continuous feedback meetings
from the project owner - lack of commitment to a
well-defined product leads
to project owner reluctance
- introduces testing at every - low bug rate - vulnerable to scope creep
development stage -easy to understand and - relies heavily on the
V-Model
- highlights the importance use initial set of specifications
of maintenance
- iterative development - deliver products in short - lack of documentation
- timebox approach known cycles - requires experienced
as Sprints - enables fast feedback developers
- daily meetings to assess - rapid adaptation to - hard to estimate at the
progress known as Daily change beginning the overall effort
Scrum required to implement
Scrum
- self organizing large projects; thus cost
development team estimates are not very
- tasks are managed using precise
backlogs; product backlog
and sprint backlog

- iterative development - considerable reduction in - increased development


- box structure method bug rate costs
- using mathematic models - higher quality software - increased time to market
Cleanroom in quality control products for software product
- statistical approach to - requires highly skilled
testing highly experienced
developers
Dynamic systems - iterative development - focusses on addressing - requires large project
development - MoSCoW prioritisation of effectively the business teams at it has multiple
Database Systems Journal vol. V, no. 3/2014 53

method tasks needs roles to cover


- timebox approach - post project - requires very skilled
- non-negotiable deadlines implementation developers
- strict quality standards set performance assessment
at the beginning of the - complete documentation
project - active user involvement
- project team and project
owner share a workplace
(physical or virtual)
- test early and continually

- iterative development - accurate and - requires highly qualified


- prioritize risk handling comprehensive professionals
- adequate business documentation - development process is
modelling - efficient change request complex and poorly
Rational Unified
- change management management organized
Process
- performance testing - efficient integration of
new code
- enables reuse of code and
software components
- iterative development - reduced project time and - project is highly
- discards all components cost by eliminating waste dependable on individual
that do not add value to the - early delivery of working team members
Lean software product code - a team member with
development - amplify learning - motivated project team strong business analysis
- customer focus skills required
- team empowerment
- continuous improvement
- unit testing - less time spent on - tests are focused on
-testing scenarios are debugging syntax and overlook actual
developed before actual - higher quality code functionality
coding - by designing tests the - requires more code than
Test-driven
- repeated short development developer empathizes with most methodologies
development
cycles the user - the developer is actually
- suitable for debugging - less defects get to the end the one doing the testing
legacy code developed with user - writing unit tests
other techniques increases costs
- unit testing - easy to maintain - project owners are
- focuses on business value - usability issues are reluctant to write
Behavior-driven - genuine collaboration discovered early behaviour scenarios
development between business and - reduced defect rate
development - easy to integrate new
code
- iterative development - multiple teams can work - individual code
- application is broken down simultaneously on the ownership
into features project - iterations are not well
- no feature should take - scales well to large teams defined
Feature-driven - good progress tracking
development longer than two weeks to
implement and reporting capabilities
- uses milestones to evaluate - easy to understand and
progress adopt

- uses domain model - high degree of - requires considerable


- models are automatically abstraction technical expertise
transformed into working - increased productivity - documentation is
Model-driven code - delivers products with a readable only by domain
engineering - knowledge is encapsulated high degree of experts
in high level models compatibility and - is difficult to implement
- emphasizes reuse of portability version control on
standardized models - shorter time to market modelling environment
54 Comparative Study on Software Development Methodologies

- lowers maintenance costs


- focusses on people and - easy to implement - critical decisions
skill and not on process - frequent delivery of regarding the architecture
- more than one iteration in a working code of the application are made
Crystal Methods
release - developers have by individuals and not by
Methodology
- different approaches dedicated timeslots to the entire team
depending on the projects reflect on possible code
size and criticality improvements
- emphasises system - accelerates design - relies heavily on the
requirement determination - enhances quality success of the group
- involves the project owner - promotes teamwork with meetings
Joint Application and end user in the design the customer - does not have a
Development and development - creates a design from the documented approach for
- JAD meetings customer's perspective stages that follow system
- prototyping - lowers maintenance costs requirements
determination and design
- iterative development - effective handling of - low risk handling
- focusses on the final goal change and scope creep - uses assumptions and
Adaptive software of the project - easy to understand and predictions
development - feature based implement - lacks tangible
- timeboxed - enables innovation documentation
- risk driven
- iterative development - low costs - low accountability for
- geographically distributed - highly motivated and submitted code
Open source
teams dedicated developers - no central management
software
- collaborative work - comprehensive testing as authority
development
code is reviewed by a large - unstructured approach to
number of developers development
- has versions for both - supports multiple process - difficult to setup and
lightweight and heavyweight approaches configure
implementation - solid risk handling
Microsoft - fosters open policies
Solutions communication - built to respond
Framework - empower team members effectively to change
and establishes clear - reduces team size
accountability and shared
responsibility
degree of flexibility as changes occur
Out of a total of 20 software development often.
methodologies that were analysed 6 were
based on the heavyweight model and 13
were based on the lightweight model. One 5. Conclusions
methodology offered support for both a Software development methodologies
lightweight and a heavyweight approach. follow two major philosophies:
In order to choose the appropriate software heavyweight and lightweight.
development methodology for a project Heavyweight methodologies are suitable
one should consider: project owner profile, for projects where requirements are
developer’s technical expertise, project unlikely to change and the software
complexity, budget and deadlines. An complexity allows for detailed planning.
innovative software development project is Heavyweight methodologies are easy to
difficult to match with one of the existing understand and implement. They provide
development methodologies. Innovative solid documentation and appeal to project
software development projects require owners because they are well structured
writing comprehensive documentation in and showcase tangible deliverables for
order to patent any original output that every stage of the project. With
might result. It also requires a considerable heavyweight methodologies the project
Database Systems Journal vol. V, no. 3/2014 55

manager can easily perform tracking,


evaluation and reporting. The project [1] http://php.net/ChangeLog-5.php
owner is considerably involved only in the [2] J. E. Cooling, T. S. Hughes, “The
research and planning stages. Lightweight emergence of rapid prototyping as a real-
methodologies are suitable for projects time software development tool”,
were specifications are unclear or are Proceedings of the Second International
likely to change due to project internal or Conference on Software Engineering for
external factors. Lightweight Real Time Systems, 18-20 Sep. 1989,
methodologies are based on an incremental Cirencester, UK, Publisher: IET, 1989, pg.
approach were software is delivered in 60-64
multiple consecutive iterations, all of them [3] C. Larman, V. R. Basili, “Iterative and
being functional versions of the Incremental Development: A Brief
application. Lightweight methodologies History”, Computer, vol. 36, no. 6, pg. 47-
provide great flexibility and can easily 56, 2003, doi:10.1109/MC.2003.1204375
adapt to change. They promote early [4] B.W. Boehm, “A spiral model of
delivery of working code, self-organizing software development and enhancement”,
teams and adaptive planning. The project Computer, vol. 21, no. 5, pg. 61-72, 1988,
owner is heavily involved in all the stages doi: 10.1109/2.59
of the project as its input and feedback is [5] K. Beck, “Embracing change with
critical for the success of lightweight extreme programming”, Computer, vol. 32
methodologies. When choosing a software , no.10, pg. 70 – 77, 1999, doi:
development methodology project owner 10.1109/2.796139
profile, developer’s technical expertise, [6] L. Rising, N. S. Janoff, “The Scrum
project complexity, budget and deadlines Software Development Process for Small
must be taken into account. Often no Teams”, IEEE Software, vol. 17, no. 4, pg.
methodology will fit perfectly the profile 26-32, 2000, doi:10.1109/52.854065
of a specific project. Then the best [7] A. Spangler, “Cleanroom software
matching methodology should be used or engineering-plan your work and work your
in the case of experienced project teams plan in small increments”, IEEE
and project managers a combination of Potentials, vol.15, no. 4, pg. 29 – 32, 1996,
methodologies could be introduced. In the doi: 10.1109/45.539962
case of innovative software development [8] G. Pollice, Using the Rational Unified
projects a new methodology is required. Process for Small Projects: Expanding
This topic is a subject for further research Upon eXtreme Programming, Rational
in the software development field. Software White Paper, 2001
[9] C. Ebert, P. Abrahamsson, N. Oza,
6 Acknowledgment “Lean Software Development”, IEEE
This paper was co-financed from the Software, vol. 29, no. 5, pg. 22-25, 2012,
European Social Fund, through the [10] E. M. Maximilien, L. Williams,
Sectorial Operational Programme Human “Assessing test-driven development at
Resources Development 2007-2013, IBM”, Proceedings. 25th International
project number Conference on Software Engineering,
POSDRU/159/1.5/S/138907 "Excellence ICSE 2003, 3-10 May 2003, Portland,
in scientific interdisciplinary research, USA, Publisher: IEEE, 2003, doi:
doctoral and postdoctoral, in the economic, 10.1109/ICSE.2003.1201238, pg.564-569
social and medical fields -EXCELIS", [11] D. J. Anderson, Feature-Driven
coordinator The Bucharest University of Development, Microsoft Corporation, Oct.
Economic Studies. 2004
[12] J. Bezivin, Model Driven
References Engineering: An Emerging Technical
56 Comparative Study on Software Development Methodologies

Space, International Summer School, using natural language processing”,


Summer School on. Generative and Proceedings of the 50th International
Transformational Techniques. in Software Conference on Objects, Models,
Engineering, 4-8 Jul. 2005, Braga, Components, Patterns, TOOLS 2012, 29-
Portugal, Publisher: Springer Berlin 31 May 2012, Prague, Czech Republic,
Heidelberg, pg. 36-64, doi: Publisher: Springer Berlin Heidelberg,
10.1007/11877028_2. 2012, doi: 10.1007/978-3-642-30561-0_19,
[13] E. W. Duggana, C. S. Thachenkaryb, pg. 269-287
“Integrating nominal group technique and [19] J. A. Livermore, “Factors that Impact
joint application development for Implementing an Agile Software
improved systems requirements Development Methodology”, Proceedings
determination”, Information & of IEEE SoutheastCon, SECON 2007, 22-
Management, vol. 41, no. 4, pg. 399–411, 25 Mar. 2007, Richmond, USA, Publisher:
2004, DOI: 10.1016/S0378- IEEE, 2007, doi:
7206(03)00080-6 10.1109/SECON.2007.342860, pg.82-86
[20] G. Madey V. Freeh R. Tynan, “The
[14] D. Riehle, “A comparison of the value open source software development
systems of Adaptive Software phenomenon an analysis based on social
Development and Extreme Programming: network theory”, Proceedings of the 8th
How methodologies may learn from each Americas Conference on Information
other”, Proceedings of the First Systems, AMCIS, 9-11 Aug. 2002, Dallas,
International Conference on Extreme USA, 2002, pg. 1806-1813.
Programming and Flexible Processes in [21] G. Lory, D. Campbell, A. Robin, G.
Software Engineering, XP 2000, 21-23 Simmons, P. Rytkonen, Microsoft
Jun. 2000, Cagliari, Italy, pg. 35-50 Solutions Framework version 3.0
[15] J. Martin, Rapid application Overview, White Paper, June 2003.
development, Publisher: Macmillan [22] R. Balduino, Introduction to OpenUP
Publishing, 1991, pg. 788, ISBN:0-02- (Open Unified Process)
376775-8 http://www.eclipse.org/epf/general/OpenU
[16] S. Mathur, S. Malik, “Advancements P.pdf
in the V-Model”, International Journal of [23] S. Woodward, “Evolutionary project
Computer Applications, vol. 1, no. 12, pg. management”, Computer, vol. 32, no. 10,
29-34, 2010, doi: 10.5120/266-425 pg. 49-57, 1999, doi: 10.1109/2.796109
[17] J. Stapleton, P. Constable, DSDM, [24] W. W. Royce, “Managing the
dynamic systems development method: the development of large software systems:
method in practice, Publisher: Cambridge Concepts and techniques”, IEEE
University Press, 1997, pg. 192, ISBN-10: WESCON, vol. 26, no. 8, pg. 1-9, 1970
0201178893
[18] M. Soeken, R. Wille, R. Drechsler,
“Assisted behavior driven development

Mihai Liviu DESPA has graduated the Faculty of Cybernetics, Statistics


and Economic Informatics from the Bucharest Academy of Economic
Studies in 2008. He has graduated a Master’s Program in Project
Management at the Faculty of Management from the Bucharest Academy
of Economic Studies in 2010. He is a PHD Student at the Economic
Informatics PHD School and he is currently Project Manager at GDM Webmedia SRL. His
main field of interest is project management for software development.

You might also like