about      news      services      contact      email      links     
Please click on the above text to visit the corresponding page    
Fast Track IT Training
Quality Assurance & Methodology Seminars
Quality Assurance Analysis --- the preventive/design role of quality assurance
Quality Assurance Execution --- the detective/corrective role of quality assurance
Quality Assurance Governance --- how to encourage the use of SDLC methodology
Quality Assurance with Six Sigma --- how to effectively achieve higher quality goals

To complete work on time and within budget is easy, but to do so without compromising quality is more difficult. By focusing on time and budget you may inadvertently hide the fact that the deliverables are being compromised and that expectations may not be met. There are ways to intercept flawed deliverables prior to the rollout, but that is the least desirable point in time to make such an intervention, as the damage is already done.

The key to quality assurance is to focus on the quality of all the inputs to the projects, like the ingredients of haute cuisine that have to be of high quality to meet customer expectations. There is skill involved in identifying the business requirements, analyzing your development options, designing, and developing application software. Throughout the process there should be quality checks before the ingredients are committed to the result, the IT equivalent of a taste test. We have to assess our deliverables early in the process, when corrections can be made with relatively little impact on the project deadlines or budget, and before traditional testing commences.

Quality assurance is one of the major responsibilities of the project manager. Quality must not be compromised for cost or time expediency. Sometimes the extra cost early in a project can translate into a huge savings when compared to the high risk of having to fix problems late in the project when the impact on layers of contributions that need to be revised can be significant.

Full Methodology Governance

Projects should adhere to common processes that are proven to be effective in building quality application systems. Each project has unique aspects that need to be acknowledged and that must be accommodated in the scope of the methodology, rather than to be forced into an ill-fitting mould. Our program is based on the experience of consulting with development teams to establish how best to meet the intent of the methodology given the unique nature of specific projects. Methodology tries to anticipate the needs of an average project. Unless people have a good understanding of that intent they get mired in unnecessary work that does not fit the real requirements of their project, or they are unable to adapt to unique needs of their project.

We believe that people will use the best approaches when given a choice. A methodology is a critical tool for estimating project expenditures or else a project can be left with insufficient funds or time to complete the work activities in a quality manner. By making sure that these initial estimates are based on a sound understanding of what needs to be accomplished, you will find that many potential problems can be avoided. We have experience in a full methodology scope from formulating the initial vision to defining the business requirements, developing functional specifications, performing systems analysis and design work, developing the application code, executing all levels of testing, and then managing the deployment and rollout activities.

We have developed custom System Development Life Cycle methodologies for legacy systems and adapted these to e-Development initiatives, waterfall project models and iterative project models. We developed detailed user guides on quality management in business requirement analysis and on the implementation process from unit testing to system testing / acceptance testing. We also know that you cannot introduce these concepts overnight. The significance of adhering to a common methodology in order to develop applications that are maintainable tends not to be obvious just from reading the methodology. Training leads to better understanding of the benefits of developing software with support and maintenance in mind.

QA Testing & Test Automation

Testing is expensive, but needed to prevent catastrophic consequences from the deployment of software that is not fit to meet its intended business objectives. We believe that testing begins early in the project, as early as when business requirements are being defined, to make sure these requirements are verifiable and that all definitions can be interpreted in terms of how applications can be tested, which ensures that all requirements can be confirmed.

Testing is independent of other application development to reduce the risk of misunderstanding, as two parties would have to make the same mistake in order to overlook a given problem. That does not mean the two fields of expertise need to be segregated. We advocate extensive unit testing, and the use of testing frameworks while developing code modules so that any problems can be identified at the source. Problems identified when the code is first being written take less time (and cost) to fix than those identified in later system testing. We have explored effective testing frameworks for different programming languages, and we show examples that range from 3rd generation languages to modern object oriented languages.

Unit testing is done during development, but there should be a close cooperation between QA and development to establish the conditions to be considered. QA staff can develop levels of expertise with testing tools because that is their focus, and they should be able to share that expertise with the developers to establish quality in applications from the inside out. We also explore automation of system testing, from generating test scripts optimized for combinations and permutations of input values, to automating the execution of the test scripts and auditing the results against previous regression copies of the same test scripts. We have experienced testing of automated web applications, and we have explored tools to manage scripts and to compile scripts for manual and/or automated execution.

IT Development Best Practices

Quality Assurance depends on establishing and maintaining best practices for the development of IT projects. It is more effective to build quality into a project from inception than to identify possible failures and to request that problems be fixed at the end of the project and before product rollout. Most developers will want to produce problem free code instead of code that requires extensive post-integration debugging in response to problems identified in systems testing, or to see code deployed that is inherently flawed and that triggers many problem calls. We believe that every development organization is potentially capable of achieving a quality rating of CMM-4 because they are invariably staffed with bright people that have a keen interest in getting quality results. Establishing a best practices focus enables the organization to first achieve consistency. Later they can improve these practices to create the best possible applications that enable the business to achieve competitive advantages. QA Governance reinforces this consistent progress towards achieving overall excellence.

Design by Write4hire.com