 |  |  |
|  |
 |
 | agile software development |
 |  |
 |
Agile development is a style of software development that challenges many
previously conventional development tenets. It addresses the issue of changing requirements
by putting a minimal system into production quickly and growing it in whatever
directions prove most valuable. It aims for continuous integration and testing
of the system. It is based on producing extensive unit tests before programming,
and keeping all tests running at all times. These tests allow for refactoring
(modification) of a system as each iteration progresses and requirements change.
While Nicheware Solutions has not adopted all of the practices from Agile and XP related processes
(for example we believe strongly in high level architecture and design documentation),
we have integrated the following concepts into our RUP-based process:
-
Short Iterations:
Constructions phase iterations are short and frequent. Each iteration (depending on project attributes)
would be from two to six weeks in duration. The client will have access to a working
system at the end of each iteration.
-
Test Driven:
All developed subsystems and components must be fully unit tested. These tests are
controlled by the Nicheware Solutions test-data extensions to Junit/TestNG.
Integration, Web and System Tests are developed during each iteration, and are fully automated,
allow progressive system and regression tests each iteration.
Performance tests are also automated and developed and run at each iteration, not
just at project completion.
Similarly, the client is encouraged to develop and perform User Acceptance testing at
the end of each iteration.
-
Changing Requirements:
At the start of each iteration the client is allowed to modify
the use case development order, the use case details, or the original business requirements.
The project plan is updated at the start of each iteration, and client informed of
the impact of any of these changes to this and subsequent iterations.
|  |
|
|