|
Newsletter
Sponsors |
|
Software Planner is
an
award winning
web-based solution for managing the software life
cycle. Tracks customer requirements, defects, test cases and allows document sharing.
Provides project management, with importing/exporting from Microsoft
Project®,
customizable dashboards and Microsoft Outlook®
Synchronization. |
Software Planner Awards:
::
Best ALM/QA Tool
::
Best Project Management Solution
::
Best Bug and Defect Tracking Tool |
Software Planner Upcoming Events:
::
Mar
14/15 - 2007 Squad Conference, Denver, CO
:: Apr 18/19 -
2007 STP Conference, San Mateo, CA
:: May
17/18 - 2007 StarEast, Anaheim, CA |
Exploring Agile
Development
The primary goal in delivering software is to:
- Deliver software that meets the requirements and
specifications
Deliver the software within the time frame promised
Ensure that the software is of high quality
Meeting these 3
goals is not easy. It requires your entire software team to have a defined
development / project management methodology, and tools to make implementing the
methodology easy.
When choosing your development methodology, you have
many to choose from, each having advantages and disadvantages. The
latest buzzword is "Agile Development", this newsletter explores the advantages
and disadvantages of Waterfall vs. Agile.
Waterfall Methodology
Traditionally, companies have used the Waterfall methodology. The
Waterfall methodology performs each phase of the software lifecycle
sequentially:
- The team creates a list of all requirements before
any design is done.
Upon requirements completion, a detailed design is created for each
requirement.
Upon design completion, all tasks are estimated and submitted for
approval.
Upon approval, coding begins and test cases are created in preparation
for quality assurance.
Upon code completion, testing begins and continues until all test cases
are run and all defects are fixed.
Upon quality assurance completion, the software is documented and moved
to production.

The advantage of Waterfall is that it is a very
disciplined methodology, producing very detailed specifications that can be
translated to user and technical documentation. It also provides very
detailed oversight, including continual risk management and disciplined project
management planning and measurement.
The disadvantage of the Waterfall methodology is that it
takes a long time to deliver software to production (normally more than a year).
The reason is due to the effort involved in defining all features of the
software and creating detailed designs for all of them. It is also
problematic because if major flaws are found in the requirements or design, it
does not appear until the testing phase, and reworking a flawed design adds risk
to the project as well as a lot of effort. Last, because the duration of
Waterfall tends to span a year or more, business rules and needs can change, and
the original design of the software may not still apply, making features of the
new software obsolete before it ever makes it to production.
Agile Methodology
Agile is all the buzz these days. With Agile, analysis is done similar to
the Waterfall method. However, once analysis is done, each requirement is
prioritized as follows:
- High - These are mission critical
requirements that absolutely have to be done in the first release.
- Medium - These are requirements that are
important but can be worked around until implemented.
- Low - These are requirements that are
nice-to-have but not critical to the operation of the software.

Once priorities have been established, the release
"iterations" are planned. The first release (Release 1.0) begins by
working on just the high priority items. Unlike Waterfall, new
requirements can be introduced into the release anytime before quality assurance
begins, and high priority items can be reprioritized, allowing you to drop
features you had originally slated for the release. Normally, each Agile
release iteration takes between 1 to 3 months to deliver.
Below are the advantages of the Agile Iterative Life Cycle:
- The Design phase goes much faster, as designs are
only done on the items in the current release (Release 1.0 for example).
- Coding and Testing go much faster because there are
less items to code and test. If major design flaws are found, re-work is
much faster since the functional areas have been greatly reduced.
- The client gets into production in less than 3
months, allowing them to begin earning revenue or reducing expenses quicker
with their product.
- If market conditions change for the client, changes
can be incorporated in the next iterative release, allowing the software to
be much more nimble.
- As the software is implemented, the client can make
recommendations for the next iteration due to experiences learned in the
past iteration.
Searching the Internet for Agile will produce results
that discuss different "methods" of Agile. You will see Scrum, Extreme
Programming, Adaptive Software Development, Crystal Clear, and many others.
These are simply different adaptations of Agile to fit the needs of specific
teams.
You may also hear that Agile is a "cowboy coding"
methodology. This simply means that teams are coding without regard to how
the end product will look and feel, and they make adjustments on the fly to meet
the needs of the day. "Cowboy coding" has a negative connotation because
it implies that there is no oversight, measurement, or prediction as to when the
first usable version of the software will be ready for production.
Conclusion
In the coming months we will discuss Agile development in more detail, and
explain how you can use Pragmatic Agile Development (PAD) to gain the
benefits of nimbleness of Agile, combined with the oversight, project
management, and deliverable measurement, resulting in a methodology that is both
nimble and has discipline. If you wish to learn more about Pragmatic
Agile Development, visit
http://www.pragmaticsw.com/ServicesTraining.asp#PADTraining.
|