Assignment A – Planning the development of a software
solution in Engineering

In this assignment I am going to be examining the different
project job roles and methodologies involved in typical software development
projects. In addition to this, I am going to writing a detailed report
summarising all of these findings and giving real life examples.

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

The first methodology that I am going to be talking about is
Rapid application development which is associated within the code of Netflix.
This Is used as an alternative to the waterfall model of software development,
where it places a great deal of emphasis on the client during the software
development process. It is a software development methodology that uses minimal
planning and less of a thought process in favour of rapid prototyping. The idea
of this methodology is to start developing as early as possible so that the
client can give improvements and make changes to suit their needs. With RAD,
the client is involved in a lot of the process, which is an important feature
of the methodology. Some people argue over the quality of the final product
when it comes to rapid application development as it prioritises the client’s
demands over the effectiveness of it. As a result of this, it gains high usage
because of the extent of user involvement in the development. RAD replaces
hand-design and coding processes, which are dependent upon the skills of certain
individuals, with automated design and coding, which is an inherently more stable
and arguably faster process.

(BBC, RAD, n.d.)

The first stage of rapid application development is
requirement planning. In this stage, it staff, managers and users agree on
business needs, project scope (the part of project planning that involves
determining and documenting a list of specific project goals, deliverables,
tasks, costs and deadlines) and systems requirements that are best suited. This
is important for the final product

The second stage of rapid application development is user
design tasks. This is where the user interacts with the systems and develops
models and prototypes. In this stage a user can do JAD type sessions. This is a
Joint application design where the user collects business requirements while
developing new information systems for a company.

In the next stage of rapid application development, the user
conducts construction tasks such as coding. The user is involved with the
program and application development. This is similar to the systems development
life cycle however RAD involves the user more, as they can still suggest
changes and improvements that can be made.

Finally, the last stage of RAD is the cutover phase. This
stage resembles the final tasks in the SDLC implementation phase, including:

• Data conversion

• Full-scale testing

• system changeover

• user training

Advantages

Disadvantages

” Flexible
and adaptable to changes

It
can’t be used for smaller projects

It
is useful when you must reduce the overall project risk

Not
all application is compatible with RAD

It
is adaptable and flexible to changes

When
technical risk is high, it is not suitable

It
is easier to transfer deliverables as scripts, high-level abstractions
and intermediate codes are used

If
developers are not committed to delivering software on time, RAD
projects can fail

Due
to code generators and code reuse, there is a reduction of manual coding

Reduced
features due to time boxing, where features are pushed to later version
to finish a release in short period

Due
to prototyping in nature, there is a possibility of lesser defects

Reduced
scalability occurs because an RAD developed application begins as a
prototype and evolves into a finished application

Each
phase in RAD delivers highest priority functionality to client

Progress
and problems accustomed are hard to track as such there is no
documentation to demonstrate what has been done

With
less people, productivity can be increased in short time

Requires
highly skilled designers or developers ”

 

The second methodology that I am going to be talking about
is the waterfall methodology. This methodology places a great deal of
importance on the process of developing software. It is one of the less
iterative and flexible approaches, as progress flows in one direction, like a
waterfall, through the phase of 

       •    Analysis

·       
Design

·       
Implementation

·       
Testing

·       
Documentation

·       
Evaluation

·       
Maintenance

Unlike the rapid application development methodology,
waterfall prioritises the process that should be followed rather than the final
solution and the client’s needs. Waterfall follows the traditional step by step
order, as follows:

Analysis, Design, implementation, testing, documentation,
evaluation, maintenance.

The waterfall methodology is typically used in game
development. The developers who develop a game such as ‘FIFA’ create a rigid
structured process however because it puts the process over the clients needs,
it might not be exactly what the developer wants from the game, therefore it won’t
be the best final product.          

The first step of waterfall game development is analysis. This
is where a development team plan out the structure of the game and they focus on
planning the game to get the best result. The next stage of the waterfall
methodology is the design phase. Similarly, this is where they plan the structure
of the game, however they focus more on the graphical/visual aspects. In
addition to this, the software developers might plan out how the game is going
to flow. After design, it moves onto implementation. This is where the ideas
and planning get implemented into code that makes up the game. Next, voluntary every-day
gamers as well as high level game developers will test the game in a ‘beta’
phase. The purpose of this is to highlight any errors in the code, resulting in
bugs or glitches. Feedback will be presented to the developers so that they can
debug the problem and make the game the best that it can be. After testing, documentation
occurs. After this, the team will do an evaluation on the game. This is where
they rate the game for specific age groups, the complexity of the game,
interaction, playing time etc. At this point, developers will usually refer to
the analysis and design phases to check that they have met the requirements and
objectives. Additionally, they will check that they have fixed any errors in the
testing phase. Finally, the next step is maintenance. This occurs after the
launch of the game and the purpose of it is to keep the game running smoothly
with minimal glitches/errors. If there are any errors they will debug them, then
an update file will be available for the user to download the latest version of
the game.

In game development, the purpose of analysis is to set goals
and objectives for what you want the game to be like. This is significant because
by setting goals you are giving yourself something to work towards rather than
just writing code and hoping for the best. A job role in this phase would be an
analyst. The purpose of this job is to conducts analysis and give ideas. The
purpose of the design phase is to give the program a start, without the design
phase you could not begin the write the code. A job role in this phase is a designer.
The role of a designer is to design the graphical user interface of the game. In
addition to this a designer can design how the code will flow, which is important
to the outcome of the game. This is a key part to the development of a game,
fusing the visual and hidden aspects of the game. The purpose of implementation
is to put together parts are the code to make a full game. Without this step,
the game will not run because there is no code therefore it is a crucial step
to a successful game. A job role in this part is a programmer. programmers
write code to create software programs. They turn the program designs created
by software developers and engineers into instructions that a computer can
follow. Programmers must debug the programs—that is, test them to ensure that
they produce the expected results. Next, the purpose of the testing phase is to
run the game, and check for any bugs or glitches. This is important because the
best games are the ones that have no bugs or glitches, which will make he game
sell better. A job role in this phase is a game tester; someone who tests the
games and different versions of them for bugs. Linking onto this, the
evaluation team will debug these glitches to improve how the game runs. Usually,
a job role in this part is a programmer, as it can involve changing snippets of
code. Finally, maintenance is the main factor of keeping a game relevant on the
market and keeping it at a high level of skill. Constantly gamers are finding new
glitches or exploits, therefore it is crucial for developers to patch this and bring
updates out regularly. Regular updates can improve the stability of the game
and improve the performance. This can be done by improving the graphics for example.

Advantages of using the waterfall methodology include:

• It is simples and easy to follow (step by step)

• It is easy to manage due to the rigidity of the model

• In this model phases are processed and completed one at a time.
Phases do not overlap

• the waterfall model works well for smaller projects as it is
simple to follow, however it can be used for larger projects too such as games.

Disadvantages of using the waterfall methodology include:

• it can only be used when they requirements are very clear and
well known

• Once an application is in the testing stage, it is very
difficult to go back and change something that was not well-thought out in the
concept stage.

• it is not suitable for projects that have a risk of requirements
changing

• the project will not work until near completion

• does not allow scope changes