Category: Software Process Management

Implementing Six Sigma practices for better Quality

In a typical software development and testing projects – Agile and SDLC (Software Development Life cycle) practices are sufficient although to further improve quality beyond a certain extent advanced techniques are required. In this article the discussion is about how six sigma can be introduced to further improve the quality of the software product development and its delivery. For illustration purpose a software organization can be depicted as consisting the following:

• Business
• Process and
• People

pic1m

In the above diagram improvements cannot be introduced although its enough to deliver the projects as per customer requirements. Six sigma techniques provides the possibilities for further improvements by adding to activities that can be introduced that will also further the overall organizational capabilities. Hence the purpose of improving the quality is just one aspect of overall capability improvements that are possible and can be depicted in the diagram shown below:

pic3m

It is also observed that due to reporting to client/customer andt changing customer expectations the basic software testing in the SDLC processes is not enough hence additional data needs to be collected in ensuring reporting and also demonstrating quality as per customer expectations. Thus its imperative to improve by training in teams throughout organization and to be familiar with the additional activities to improve quality. These are categorized as below:

• Each team will have at least one six sigma champion – if not team member manager that can be designated.
• The designated team member will perform checks on the following sub-tasks

    • Continuous improvement
    • Maintaining customer satisfaction / loyalty by asking questions
    • Root cause analysis as a process
    • Identifying the performance metrics and reporting QA and development activities to client and stake holders
    • Voice of customer – understanding and establishing the end user/consumer
    • Trend analysis of requirements, delivery and issue tracking
    • Cause and effect analysis as a process
    • Identifying a process to fulfill a requirement and helping in improving it in discussion with client and within organization
    • Identifying and improving by taking special initiatives on poor quality areas

pic2m

• In addition its possible to build on following capabilities :

    • ISO 9000
    • Project Management

• Further Each project and product development can customize the development process by introducing the Plan – Do – Check – Act process for development activities

• Continue to strict adherence to Agile and other SDLC practices for software development activities


The result of doing the above tasks will result in overall quality improvement.

Further following metrics can be measured:

• Improved predictability
• Delivering the project on time and as per schedule
• Better resource management
• Improved customer satisfaction

Advertisements

Agile Process for Web Applications Development

Developing agile enables rapid application development if all requirements are understood and documented before starting for the web application development project. Hence to reach an agile-able state there are a lots of prerequisites that need to understood and documented before the Agile sprint can be started:

Here is a process diagram that can be implemented to enable the rapid application development.

PMDevProcess

As you see that there are input documents for each phase of software development. Before the project starts most important being the Requirement Analysis. Requirement analysis accurately documents all necessary features in details and functionality desired. In web applications this is not enough because additionally a visual design is necessary to create how the app will actually be used by end user. The mock-up of all the pages and visual design gives a clear flow of the app.

Based on the visual design and requirements documentation its now possible to create a Product Test Plan. This test plan is actually used by the Tester/QA to start with Test Case development. As shown the Tester/QA engineer develops the Use Case document so all Test scenarios can be developed. All these documents are input documents for Detailed Technical Design document.

A detailed technical document is then reviewed and approved by all stakeholders. An Agile Scrum master is now ready to take this forward since all the detailed technical design and the tasks can be identified. Scrum Master then proceeds with a 10 day sprint cycle and delivers a demo at end of each sprint.