ASSURING THE QUALITY OF EXTERNAL PARTICIPANTS' CONTRIBUTIONS Introduction It is impossible to Imagine a project without evaluation. Therefore it is all the more important to understand how to ensure the quality of the evaluation. Having said that, it is a difficult enough process to evaluate the quality of contributions by internal projects and tasks. This report has ben written in regards to the quality of work done for parts of the project, by an non-internal entity. This is a much more difficult task to comprehend, however if one properly implements SQA (software quality assurance) activities as described later in the report, then problems behind many software failures or delays could have been avoided, and the prevention of such troubles is the subject of this report. Types of external participants In the past, partners to software development were seen as the only participants in a given project. The term “partners” is refers to two organisations. Firstly the “customer”, is defined as the organisation whom has desired to acquire the software system. Secondly the “contractor” the organisation of whom the customer has given the responsibilty of completing the project. Other organisations that contribute to the project through a set of structured agreements with the contractor can be seen as “external participants”. This definition excludes the contactor’s partners. It is said that the larger and more complex the project, the increased likeliness of aquiring the assistance of external participants. Galin (2004) states that external participants can be divided into three main categorys. 1. 1. 2. Subcontractors Suppliers of Commercial off the shelf software (COTS) and previously used modules The customer may contribute to the project Risks and benefits associated with the introduction of external participants Risks for the contractor and customer usually correspond with each other. It is obvious that when work done by an external particpant is delayed, it causes a ‘knock-on’ effect and consequently brings further, much larger delays with regards to the completion of the project as a whole. This problem however is not common when relying on COTS suppliers and can be seen as one of the many advantages of using such software. Infact a shorter project schedule is just one of the benefits for the contractor, obtained from involving external participants generally within the project. Invariably it reduces cost and releases high-impact problems such as staff shortages to other organisations. These external organisations are also taken advantage of when requiring expertise is specialised areas and provide sufficient advantages to the contractor. To take the focus away from benefits to the contractor and concentrate on risks for both parties again, there may be occasions when faced with a gifted salesman, one can be convinced of the benefits of using the ‘latest’ software package that is yet to be released. In actual fact there can be significant risks involved in doing so. It is common that the pending release of this new package suffers an on-going delay which in turn affects customers project completion date. Another problem is general low quality coding on the parts of the project supplied by external participants, with the root causes being anything from defects in the code to the programmer adopting non-stardard coiding practices. There are two difficult maintenance situations that often occur, both arising from the simple fact that many organisations collaborate to develop the project but essentially only one of them is wholly responsible. The first difficult situation being that the contractor is responsible for maintenance, however the contractor may be faced with the problem of low quality work as described above leading to low quality maintenance and eventually costing the contractor more money. Secondly, and quite to the contrary, is when maintenance services are supplied by more than one organisation (supplier of COTS, subcontractors) and a failure is discovered, the contractor must determine which individual organisation is to be held responsible. The loss of control over project parts is another typical downfall. It is often the case for external participants to under estimate the overall project outlook. If a problem occurs, as it inevitably does, and the contractor is not informed immediately then the likelihood of finding an effective solution decreases. There are benefits for the customer of course. As well as cost reductions, the utilisation of external partiipants provides a way of protecting the customer’s commercial secret by means of legal agreement. Moreover, the provision of employment to internal software development department, and aquisition of project understanding for self-supplied maintenance (Galin, 2004). Before entering into these agreements, the contractor must assess the relevent benefits and risks of introducing external participants in a project (Galin, 2004). Objectives Having looked extensively at the risks involved of involving external participants in parts of the project, it is clear what the objectives of implementating any SQA tools are. According to (Galin, 2004) 1. To prevent the task from being completed later then scheduled, and ensure early notification of pending delay. 2. Assure the quality of work done is satisfactory and receive notification of any failure to meet the quality requirements. 3. Assure enough documentation is available to serve the maintenance team. 4. Assure complete control over external participant’s performance. SQA tools utilised Any organisation collaborating with an external participant should make certain that they have their own SQA systems for ensuring there own product’s quality levels which should be applied before and during integration (Galin, 2004). Having said that, most of the SQA tools which are applied to the external participants are defined in the contracts signed between the relevant parties. The main goal of this process is to assure the quality of the work supplied by the external participants. Requirements documents reviews This process is departmental process performed by the members of the contractor and subcontractors. It has direct effects on the quality of the software products because failures in the project proposal and project contract are liable to pass to the other project development life-cycle phases and their output products (Korkmaz, 2007). It is very important to start the error detection in this very early stage of the project development. Contracts are not always adequete enough to prevetn all problems, and it is thought that a stricter contract containing more clauses should be out into effect. Often it is disovered that the subcontractor has subcontracted their assigned work out to another firm. The contractor obviously loses control over the project at this stage which then leads to delays. Choice of external participant This process requires the collection and systematic evalutaion of information about the suppliers and subcontractors based on previous experience in order to induce the contracotr towards a particluar organisation. The contractor will have access to a file which records past performance in projects.Teams of committees then evaluate the reports with a designated commitee member who is responsible for following the project up. Regular users of whom have previously found bugs in the software also contribute to the reporting. The problem which this however is that the same contractor is likely to have failed to care about completing similar reports about their own experiences. Also, the reports often are written in an unstructured manner which leads to difficulties when evaluating. The supplier often encourages auditing to stimulate accpetance on their QA system. This serves a different purpose to other processes as it does not aim to increase the quality of the software directly, rather to control the performance of SQA activities. Finally, and perhaps most obviously a survey is conducted to gain inisght into opinions from outside companies. Project co-ordination and joint control committee The role of the committee is to co-ordinate and keep track on the progress of the project. There a number of different activities of which are common to the committees schedule. Ofcourse, these varie depending on the contributions of the external participant. It is the commitee’s task is to serve as main moving force of the SQA system and its application. Some of the main activities according to Galin (Galin, 2004) are as follow: (a) Ensure the timeline of the project is acceptable and that milesontes are met (b) Conduct the relevent follow ups (c) In severe situations, meetings and conferences must be arranged (d) Desicion making about timetable/resource problems that were identified during the follow up (e) Desicion making regarding solution of problems identified in design reviews and software tests (f) Solving conflicts regarding contract implementation Participation in design reviews The main goal of design reviews is to realise the approval of documents produced in the design phase, so the developer can continue to the next stage of develepmoent process. Participation in software testing When required it should use all the stages of the testing process: design reviews of planning and design of the tests, evaluation of the results and follow up meetings for correction and regression testing (Galin, 2004). Galin also said that shortcomings of the testing phase were one of the main causes of software errors. Specialised procedures Usually adaptions of processes already applied and discussed in this report but supported by templates, checklists and forms. Standardising the format by using a template makes it easier for the SQA team to review and run the tests. The main objectives according to Galin are as follows: (a) Preparation of requirements documents for external participants (b) Choice of external participant (c) Audit of subcontractors in SQA system (d) The supplier’s file (e) Appointment of commitee for project parts carried out by external participants and preparations of instructions (f) Progress reporting requirements for project parts Certification of external participants’ team leaders and other staff Certification standards focus on the external issues of the project and are vital to a good contractual relationship. Many aspects of contractual requirements can be partially violated by the subcontractor violating the original agreement. For exmaple, frequently subcontractors under pressure replace qualified members of a team by a non-qualified or even splitting a persons time between two given projects. This breaches one of clauses that were set up from the outset. A solution to this problem is that the certification of staff should be listed as a contractual requirement and changes made should first be approved by the contractor and this procedure should be regualrly deployed. Progress Reports It is the job of the co-ordination and joint progress control committee to collect progress reports from the various external participants of whom are contributing to the project. These reports address the postition of affairs concerning risks identified in previous reports and their possible solutions. They also focus on activities behind schedule and discuss current strategies. Furthermore, they propose new ideas that can be approved by the commitee to minimise delays. Two other issues to be overed in progress reports are the follow up of the usage of budget and resources. (Galin, 2004). These issues are predominately an immidiate concern for any given subontractor especially when the task is agreed at a fixed-cost beforehand. However it is obvious that should these issues develop, then the problem will soon become a concern for the contractor as the project quality could become compromised. Review of deliverables and acceptance tests Acceptance tests are an effective way to obtain confirmation from the customer of the system, thus it ensures that the system meets mutually agreed upon requirements. It is carried out by the contractor and is one of the final stages of a project. It often occurs before the customer accepts a new system. If you combine this process along with a thorough review of the deliverables (development documentation), often using a software deliverables requirements form (SDRF) by the contractor then an independent review has been conducted. Conclusion The role of quality assurance regarding external participants is vital across different industries. In the software world, essentially every contractor utilises COTS suppliers which highlights the importance of assuring the quality of this work. From my research, it seems that the advantages gained from introducing external participants far outweigh the drawbacks. Evidence suggests that should all of the SQA tools be applied, the likelihood of maintaining complete control over the project, and achieving the remaining objectives is increased. References Galin, D. (2004) Software Quality Assurance: From Theory to Implementation, Addison Wesley Ang, M. & Eich, B. (2000), “A look at the Mozilla technology and architecture” [online at http://mozilla.org/docs/ora-oss2000/arch-overview/intro.html accessed: 11 Nov 2009]. Mozilla. (2009), “Quality Assurance page” [online at http://www.mozilla.org/quality/ accessed: 11 Nov 2009]. Gouge, I. (2007) Shaping the IT Organization - The Impact of Outsourcing and the New Business Model (Practitioner Series),Springer Korkmaz, O. (2007), "System simulation for software Quality Assurance (SQA)", The Graduate School of Natural and Applied Sciences, Atilim University, Turkey Accessed: 2009 http://www.library.atilim.edu.tr/tezler/1027397.pdf Testa, L, M. (2009) Growing Software : Proven Strategies for Managing Software Engineers