How does quality retain a
customer in the first place?. Good quality work in any industry means that the
service/product offered meets the need of the buyer. This is translated into
time and cost parameters for the buyer. Any organization which can give
quality time and quality cost to its customer at a sustainable volume and cost
for itself will be successful. This, in a nutshell, is the paradigm behind
offshore software development.
In the software industry,
quality is dependent fundamentally on three factors - the process of
development, quality of people and the technology used. When these factors are
appropriately used, good quality ensures as seen in case of several successful
software ventures.
Critical Areas of Quality
We have
identified the following business areas of Critical
Areas of Quality importance:
1) In Execution
software projects
Pre-development
activities which involves:
- Study and
record client's requirements
- Assess risks,
estimate effort and cost, and submit proposal
- Review
contract
- Finalize
contract
- Initiate
project
2) Managing projects
which involves:
- Preparation
and review of plans (project management, quality management, test,
configuration management)
- Periodic
review of progress, project status, risks and best practices
implementation
- Execute
project as per contract/plan which could involve:
- Preparation
of detailed software requirements specifications
- Preparation
of detailed design document and program specifications
- Coding and
unit testing
- System and
Integration testing
- Support
for acceptance testing
- Providing
post-implementation warranty support
- Obtain
feedback from client
3) In Provide
on-site software consultancy services
- Understand and
record client's requirements
- Match
available skills with client's requirement
- Select candidates.
- Submit
proposal to client and finalize order/contract
- Allocate
personnel and provide on-site services
- Update skills
database.
Other processes
like recruitment, resource allocation, network and system
administration, invoicing and training also leave impact on quality
improvement process.
|
This is the fundamental strategy of the famous
SEI-CMM model
of development. Let us see how these factors affect the time and cost parameters
.
Lack of Quality
It is estimated that time
taken for completing a software project overshoots its target in 80% cases. How
is time lost on a project ? Time maybe lost in several ways. Some of them
are
- Lack of proper
requirement understanding - when the original specifications are not covered
because of one reason or other.
- Lack of change request
tracking and version control
- Lack of build
management and distributed file synchronization
- Improper naming
conventions which lead to non-trace ability of versions of files and
documents.
Software
Configuration Management
To avoid such problems we
advice clients to establish certain basic parameters at the beginning within
which the project is defined and understood. This is called as software
configuration management. It implies requirements management, establishing
integrity rules for maintaining data, development environment, standards and
rules set for the entire project as well as its conduct, receivables and
deliverables at every stage of the project. Any changes to the project are
recorded and its effect on the configuration of the project is measured each
time. Procedures for documenting the project too are decided at this stage. In a
nutshell, the context and environment of the project is first gathered.
Software Development Management
"Where there is no
vision, people perish" is a popular quote from the bible. Software projects
often prove this to be true when development is done without proper analysis and
design. Yet other times, analysis forgets to document the limitations and
unknown areas of the project which leads to loss of time later. This is more so
when the incremental model of development is used..
A properly documented
design document takes care of such problems. They contain all the stages of
development based on requirements gathered in the previous stage. All issues are
documented as they arise, and using the integrity rules, these are maintained
between the client and the developer. Since the issues are well defined here, it
becomes possible to manage risk as well as forecast dates and estimate time and
cost of the project. In cases where ad-hoc development is the only way to come
up with a good output, a prototype may be more useful.
Consequently good
functionality specs are available, which makes the job of the developer easy
since the task is well defined. Typically at this level of progress the system
design, functionality specification, user requirements and analysis report are
in place. Such a scheduled development plan is the output of the software
development management stage.
Tracking Your Project
At this level of
development it is easy to come up with a Planning and Tracking document
to show the deadlines and time estimates of each task. The configuration
management stage would have also defined the format in which the reporting and
tracking is done. A innovative approach is to use the web as a medium for
reporting as well as for document viewing, design and analysis. Again integrity
rules are followed in the planning and reporting documents too.
|