Managing complex
software development projects is about efficient utilization of
resources, risk management, accurate estimation of budgets and timelines,
experienced selection of appropriate technologies, and scheduling feature
development to meet time-to-market requirements. Risk is a reality in
every project; ISHIR's iterative methodology for software development
is designed specifically to mitigate risk.
The most important question to answer before starting product
development is: Why is this product needed in the marketplace? The
answer to this question constitute the business objectives of the product
that should drive its entire lifecycle. A software product's development
lifecycle is comprised of four facets:
- Requirements: What features will the product have?
- Design: How will the product offer these features?
- Coding: How will the features be coded and unit tested?
- Testing and delivery: How will the product be tested and delivered
to customers?
These four facets are managed by a project plan that determines when
the software product will offer the required features.
In a traditional Waterfall lifecycle model, the project plan organizes
the four phases in a strict serial order. A lot of time is spent up
front to define and analyze requirements and to complete the design
of the target system before a line of code is written. This model does
not handle changes in requirements or design well. In addition, it creates
an artificial separation between business analysts, architects, designers,
and programmers, leading to the risk of miscommunication and divergence
between the business objectives and vision of a software product and
its implementation.
Using an Iterative lifecycle model, the four facets of a software product
are integrated so that business objectives drive the entire process,
and the requirements and design are continuously refined while the code
evolves. The project plan arranges the development into small releases,
and mandates continuing integration of all coded components, incremental
builds, and periodic validation of refined requirements and design.
By doing so, it encourages a shared ownership of the product among business
analysts, software architects, designer, programmers, and testers; this
shared ownership reduces the risk of miscommunication and divergence.
It also enables continuing refinement and integration to avoid any unpleasant
surprises just before the delivery date.
The Benefits of ISHIR's Iterative Methodology are the following:
- Quick feedback loop from business stakeholders to engineering back
to business stakeholders
- Rapid software product conceptualization and materialization through
prototyping
- Ability to refine requirements and design, and handle changes in
both in the early phases of a product lifecycle
- Focus on getting the highest priority features and the highest risk
features implemented as fast as possible
- Ability to validate pieces of design incrementally, providing continuous
analysis and mitigating the risks
|