Page 74 - DCAP405_SOFTWARE_ENGINEERING
P. 74
Unit 5: An Agile View of Process
knowledge is hard to put on paper. Left alone programmers must assume they know everything Notes
they need. When asking questions is difficult or slow the knowledge gap grows. The system will
get built, but it won’t solve the problem like one guided by an expert on a daily basis.
Perhaps the biggest problem with software development is changing requirements. Agile
processes accept the reality of change versus the hunt for complete, rigid specifications. There
are domains where requirements can’t change, but most projects have changing requirements.
For most projects readily accepting changes can actually cost less than ensuring requirements
will never change.
We can produce working software starting with the first week of development so why not show
it to the customer? We can learn so much more about the project requirements in the context of
a working system. The changes we get this way are usually the most important to implement.
Agile also means a fundamental change in how we manage our projects. If working software is
what you will deliver then measure your progress by how much you have right now. We will
change our management style to be based on getting working software done a little at a time.
The documents we used to create as project milestones may still be useful, just not as a measure
of progress.
Notes Instead of managing our activities and waiting till the project ends for software, we
will manage our requirements and demonstrate each new version to the customer. It is a
hard change to make but it opens up new ways to develop software.
“Agile process model” refers to a software development approach based on iterative
development. Agile methods break tasks into smaller iterations or parts and do not directly
involve long term planning. The project scope and requirements are clearly laid down at the
beginning of the development process. Plans regarding the number of iterations, the duration
and the scope of each iteration are clearly defined in advance.
Each iteration is considered as a short time “frame” in Agile process model which typically lasts
from one to four weeks. The division of the entire project into smaller parts helps to minimize
the project risk and to reduce the overall project delivery time requirements. Each iteration
involves a team working through a full software development life cycle including planning,
requirements analysis, design, coding and testing before a working product is demonstrated to
the client.
Agile process model can be implemented with the help of various methods such as Extreme
Programming, Essential Unified Process, DSDM, Agile Data Method, Agile Modeling, Agile
Unified Process and so on. Most models promote a business approach that maps software
development with customer needs and company goals.
“Flash Application Development” is a professional IT solutions company committed to deliver
higher-end IT solutions based on Agile process model. Agile methods help minimize overall
risk and lets the project adapt to changes quickly, which is very critical if business has to succeed
in today’s competitive world.
5.2.1 XP (Extreme Programming)
The first Extreme Programming project was started March 6, 1996. Extreme Programming is one
of several popular Agile Processes. It has already been proven to be very successful at many
companies of all different sizes and industries world wide.
LOVELY PROFESSIONAL UNIVERSITY 67