Agile
Software Quality Assurance
Agile methods
produces product with better quality. Agile development method integrates quality
assurance practices in development activities, rather than practicing them
independently and separately. Merging quality
assurance activities in software development, agile methodologies cut short the
organizational role of quality assurance. After the complete analysis some problems have been identified in the
agile methods. The identified problems are as follows:
As per the agile manifesto the main
focus is to develop working software with only comprehensive
documentation. But sometimes due to
managerial or organizational issues, customer or project requires some
standards to be followed. And for standard conformance generation of
documentation is essential. As proper documentation is not there, hence at
times proper quality is not ensured.
In agile methods, the customer is
involved in all the phases. The continuous interaction with the customer is a
positive value to product quality. The
developer is the one who continuously interacts with the customer. As the developer got the technical
background, hence at times the customer may not able to understand the
developer’s point of view which can further lead to misunderstandings and
wastage of time.
If the responsibility of requirement
analysis and testing is shifted on developer, it may overload the work of the
developer causing lack of quality in process and product. Testing is the soul
of the quality. If the developer is testing his own code then at times he may
not be able to identify the errors.
Developers may be aware of designing but might be less aware of quality
standards.
Agile methods are based on the concept
of incremental, adaptive to change and self- organization i.e. the development
team can organize them and can take decisions independently. But in some
situation, leadership is required because self organization can lead to
conflicts when the requirements get complex or the system gets complex.
Hence the proposed solution is to
redefine developers’ role and activities in the agile development process to
ensure the overall good quality of the product.
Proposed
Solution for Identified Problems
Various techniques like refactoring,
on-site customer etc helps in improving the quality of the product. But there
is still a need for Quality Analyst in the agile methodologies. The proposed
solution is to introduce the role of Quality Analyst in agile methods and to
redefine the roles and activities of the developer.
It is proposed that the development team
should be divided into groups and then there should be one quality analyst for
each group. This quality analyst will not play the role of developer but as the
monitoring authority of teams over all the work. It should be the
responsibility of the Quality analyst to interact with the customer and during
this continuous interaction he should gather all the requirement information
and then must explain these requirements to the developer. Instead of educating
the customer it is better to utilize expertise of those people who have
abilities to interpret customer need to be implemented technically. In
situation where the customer does not possess technical knowledge, the presence
of quality analyst can be of great help.
Documentation has been the critical
issue among the conventional and agile methodologies. Agile development is not
against documentation but it encourages comprehensive documentation in order to
save time and resources. But in some situations when customers demand or
software is complex, documentation needs to be extensive. Hence in the proposed
approach the quality analyst is supposed to perform this task only within their
development teams. This may avoid the extra work load on developer.
Interaction between the quality analysts
of different development teams is also an important factor. Development teams
must interact with each other through the quality analyst via daily meetings of
short durations. These quality analysts must maintain their mutual interaction in
order to measure the progress, discuss critical issues, and share knowledge and
their resources within the project. The conflicts arising in the development
team can be solved by the management. The development teams are allowed to make
their own decisions but major decisions relating to the project will be taken
by the management.
The Proposed
Model
The
proposed model for strengthening the software quality assurance in agile
developments:
Explanation Of The Proposed Model
The proposed model consists of the
customer, quality analyst, developers and the top management. There should be a
good communication between the customer and the quality analyst. The quality
analyst should transform the requirement information into technical details and
then he should send them to the developers.
There should be good coordination
between the quality analyst and the developing team. Coordination is basically
synchronization of the efforts. It is the orderly arrangement of group effort
to provide unity of action in the pursuit of a common purpose. The quality
analyst will help in the documentation, testing and maintaining other quality
standards.
The proposed model also suggests a
hierarchical system i.e. management at the top and developers and the quality
analyst at the bottom. Basically the management will take major decisions about
the project. Management is also
responsible for removing the conflicts arising in the development team. Another
important advantage of hierarchy is that it acts as an instrument of
integration and coherence in the organization. Unity of command means that an
employee should receive orders from one superior only. It means that the
management team, as a whole would come to one single decision and then that
decision is passed to the developers. Depending on the type of project, span of
control is decided. Span of control means the number of sub-ordinates or the
units of work that a manager can personally direct, control and supervise. If
the project is routine types then the span of control is large else small.
In
hierarchical systems, delegation of power also takes place. Delegation means
conferring of specified authority by a higher to a lower authority. Here the
developing teams have delegated power of taking their own decisions within
their teams. Delegation can be permanent or temporary. The main advantage of
using this is to increase the sense of responsibility and interests in the
developers.
Ms. Snehlata
Assistant Professor
Dept of Information Technology
Ms. Snehlata
Assistant Professor
Dept of Information Technology
No comments:
Post a Comment