Customers expect software quality to be very high; and yet we frequently hear in the news about bugs or design errors that cost time, money or worse, lives. As software development becomes more complex; innovative; and created by distributed teams; delivering quality is increasingly difficult.
Quality assurance (QA) generally focuses on testing the software in the final stages of a project, when budgets are scarce and the pressure to deliver the product is high. To ensure quality, project managers must balance quality assurance with time-to-market.