CBSE4103 SOFTWARE ENGINEERING
Agile process model
1.0 INTRODUCTION
Today,
a variety of applications process model used in
developing application systems.
Among them is the Waterfall model, V-shape model, and Rapid
Application Development (RAD).
The most recent is the Agile process model.
According to Scott W.Ambler,
"Agile Modeling (AM) is a practice-based
Methodology for effective modeling and documentation
of software-based systems" (Scott W.Ambler, 2011). Based on the statement Scott W.Ambler, Agile process
is an effective method
is used when we build
the model and documentation of an application
system. While Steve Hayes defines the Agile
process as "Agile
Methodologies are just as disciplined as
traditional Methodologies, and give managers
more control and
Customers over a
project, rather than
less" (Steve Hayes, 2003). In general, it also focuses on the
methods used in the
construction of an application system.
I will write the Agile process that includes characteristics,
approaches, strengths and drawbacks. In
this task will also be mentioned the difference between the Agile model and Waterfall
models.
2.0 Characteristics and Approaches
There are several
characteristics and approaches that lead to
Agile processes are
widely used. Well suited to its name, it communicates to us
that there are features in this process is very unique. paragraphs below
will explain the features and approaches used in Agile process..
2.1 Modularity
Modularity
is a process of dividing the activity of the
application development component
to the smaller ones. This approach
provides a more focused
solution for software
development modules. In other words, each
module development has been
broken is not independent
of each other.
2.2 Iterative
Agile process
method is a collaborative and iterative
approach to software development that can produce high-quality software in a
cost effective. Iteratively is a short cycle to be completed in
one process. Unlike traditional application
development, agile development is a flexible,
tested repeatedly and expedite the
delivery of application development functions.
2.3 Time-Bound
The
iteration process enables software development
carried out on time. For example, if we have a large activity
was divided into five
small activity. The
fourth activity can be continued even if the third activity to be having problems.
2.4 Parsimony
When
the software development
process is broken down into
groups of activities, it can indirectly reduce
the risk of error and thus can reach your target faster. In this way, developers can complete the system in a
faster time.
2.5 Adaptive
In
software development, each process has a risk of error
that can not be avoided. These conditions can
cause delays and alternative
arrangements are needed to overcome unexpected problems. New
approach activities to overcome this
unwelcome should be implemented so that the main goal
of software development is
achieved.
2.6 Incremental
As
we know, Agile process
does not build a
system as a whole. Therefore, each activity has a
time and a different burden. At the same time each activity was also tested
separately. Upon completion of testing, this successful process will be
integrated into the system separately one by one. This approach
does not interfere with each separate activity carried
out simultaneously.
2.7 People-Oriented
It
is ideal for developing skills.
This is because each person is in small batches and with different expertise.
The longer they are involved with development, then their
skills will increase. Indirectly,
any change in the future to be made on the
system will become easier.
2.8 Collaborative
Agile
processes foster cooperation
among the team. Cooperation among
members of the team known as collaboration. In the construction
of a software system, communication is very important.
When large projects
are broken down into several small groups, then
to combine the understanding
of each group into a project is very
important. This approach is the
integration between the small activities
and it is different from our everyday communication.
3.0 Strengths and Drawbacks
In
the process of building software,
of course there are strengths and
weaknesses in terms of the
techniques used. Agile process well suited to small groups who
want to create software in a short time.
3.1
Strengths
According
to Scott Sehlhorst,
he stated "Agile's Biggest
Strength is Agile's
Biggest Weakness" (Scott Sehlhorst, 2006).
This statement is basically because Agile
processes are designed to help the group to solve
the problem by changing the direction of the system. Thus, if the proposed
solutions have to change the direction
of the system, with the indirect implementation of it has changed the whole
project. This situation has
resulted in some disturbing
results that built
the system output.
Another
strength is the excellent
environment for skill
building. For example, each person
in the group that was formed with the opportunity to learn something new. They can also exchange ideas and skills
on the job. Indirectly, the project undertaken in a short time can increase the skills
of individuals in the group.
Agile
methods are usually done in small steps. Each step accompanied by unit tests.
It is also simple in design that is easily understood by everyone in the
group that was formed. If one of the
activities carried out are not perfect,
it will affect the output results for
the activity. However, how to overcome them are
discussed in the
characteristics of Agile processes.
These characteristics for the strength of the method of Agile process
itself.
3.2 Drawbacks
“Agile
has formal rules and structure, though they are quite a bit different from
those of other development approaches. Agile is iterative, it is adaptive and
it is supported by some outstanding tools and techniques, like burn-down
charts, product backlogs, user stories and stand-ups. Most important, Agile is
not anarchy” (cedarpointconsulting, 2011). Unfortunately, very few who really understand the true concept of Agile. This weakness brought
about by the concept of Agile
itself. For example, in many cases, software
developers, development managers and consultants
consider Agile processes
are not flexible and
difficult.
Agile
is weak on architectural planning. When
we want to build great software, the
architecture and the platform is done separately. As such, architecture and real platform can not
be ascertained more clearly when
the last big project is broken into small
groups. When the platform
is not identified in a uniform,
then there would be problems when we
want an integrated system in the final stages of construction.
As
we know, Agile is a short-term plans. As such it has the disadvantage of
long-term plan. Repetitive work often happens when we want to incorporate
some project components that interact. Normally there is no dependence between
several projects. However, the overhaul of the code written by programmers very
complicated when it is not parallel to each other. The most
significant weakness in this case is the same work over and
over again to correct the code.
Agile
concepts are not suitable for
large scale projects
involving a large organization. It becomes extremely difficult to
coordinate work when
the number of employees increased. For
example, a developer is
finalizing the design of programming
code which is built by other partners
in the same group. It is easy for them to interact if
something is not sure about
the design. Communication
will be difficult
if they work in
different groups with many other workers.
4.0
Comparison between Agile model and
Waterfall model.
In
a
software project, the comparison between the various methods
is very important when you want to
start the project. Waterfall model is among the
widely used at present. The table 1.0 below describes the comparison between waterfall model and agile model.
Agile
Model
|
Waterfall
Model
|
|
|
|
|
|
|
|
|
Table 1.0
5.0
Implementation
In
general, if we want to build a robust software,
some aspects should be considered before
it is implemented.
Among the aspects
of the specification, design,
Implementation and testing the software
system. In this case, successful Agile methods
comply with these requirements simultaneously and effectively in a short time. For example, in Agile methods,
each specification fully completed the
program in each activity. Unlike other software
construction methods such as waterfall model, the
specification is written across the entire application system.
In
terms of system design, the Agile methodology helps the designer to change the
layout or output even if the system has not been completed. This
advantage can be used to accommodate customers whenever they wanted to change the structure of the system design.
The
most important and critical in software development is the acceptance tests and
unit tests. The
most important and critical in
software development is the acceptance
tests and unit
tests. Acceptance tests are tests
specified by the customer. For
example, if customers want
the system to run concurrently in one module, then the
customer will test the system yourself with developers
to ensure that the results
are as desired. While the unit tests only involving
a developer and do before and after the coding
is written. Unit tests
are also run during
the time of writing the software coding.
6.0
Conclusion
In conclusion, Agile
methodology is more on software development and website design. Whereas
Waterfall models always suitable for a big projects consist of design,
implementation and deployment. However, if we intergrate and manipulate both
model, we can get the best choice and solution for customer satisfaction and
the final implementation.
7.0 REFERENCES
http://agilemodeling.com
http://agileintro.wordpress.com/2008/01/04/waterfall-vs-agile-methodology
http://www.johngoodpasture.com/2010/08/10-agile-strengths.html
http://www.cedarpointconsulting.com/deliver/articles/before-making-the-leap-to-agile
http://www.serena.com/docs/repository/solutions/intro-to-agile-devel.pdf
http://agileintro.wordpress.com/2008/01/04/waterfall-vs-agile-methodology
http://csdl.ics.hawaii.edu/~johnson/413f06/13.ProcessModels.pdf
http://www.builderau.com.au/program/development/soa/An-introduction-to-agile-methods/0,339024626,320274125,00.htm
http://tynerblain.com/blog/2006/05/03/agiles-biggest-strength-is-agiles-biggest-weakness
No comments:
Post a Comment