Thursday 2 November 2017

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

No comments:

Post a Comment