Before we delve into the differences, for better clarity, I would like to explain what are a software product and a software project.
Software product: A software application that is developed by a company with its own budget. The requirements are driven by market surveys. The developed product is then sold to different customers with licenses. Example for software products: Tally (by TCS), Acrobat reader/writer (Adobe), Internet Explorer (MS), Finnacle (Infosys), Windows (MS), QTP (HP) etc.
Software project: A software application that is developed by a company with a budget from a customer. In fact, the customer gives the order to develop some software that helps him in his business. Here, the requirements come from the customer. Example for software projects: A separate application ordered by a manufacturing company to maintain its office inventory etc. This application is used only by this company and no one else.
With the above insights, we will now discuss the differences.
As an end tester, there will not be much difference in testing either a product or a project. It is testing scenarios and test cases, and requirements everywhere. However, here below are some differences between a product and a project, and differences from a testing perspective:
- For a project, a test plan is a must. All the documents related to that are to be prepared. For a product, test plan would have been made a long time back. It is at max updated.
- In a project, the client has to approve the test plan and test cases and sign them off. In product, it is not necessary.
- In the project, tester directly interacts with the client. In a product, tester interacts with the FD team or business analysts.
- In the project, the deadlines are not flexible. In product testing, deadlines are flexible.
- In the project, clients hold the authority on the developed code. In product, a client doesn’t hold the ultimate authority on the code.
- The budget for the development of the project is given by the customer in case of project development. In the case of the product, the budget is given by its own company.
- The features in a project are always new. However, in Product, the basic features remain the same, and only a few new features will be added, or a few existing features will be modified.
- Because of point #6, more regression testing needs to be done in case of a product, and less in case of a project.
- Since a product runs for years, test automation saves a lot of effort, whereas, in the case of projects, it depends on the duration of the project.
A project is used by the specific client for a specific purpose only. Hence tester needs to test only in that end user’s perspective. In the case of a product, the same product can be used by a variety of clients. (For example, the same Enterprise Incentive Management application can be used by Pharma clients, Insurance clients etc). So, the tester needs to consider all types of potential users and their usage and needs to test accordingly. - Licensing comes into the picture in case of a product. Thus scenarios related types of license, their registration and expiry etc needs to be tested for a product. Licensing does not exist for a project.
- Test planning depends on the software development life cycle. Usually, it will be different for a project and a product.
- Chances are very high to get onsite opportunities for the tester working in a project. Chances are very less in case of a tester working on a product.
- Economic recession badly hits a software project. The customer may halt or stop the project, in which case, the test engineer may lose the job sometimes. In the case of a product, a short term (0-1year) recession may not hit the engineer, as the company keeps adding the new requirements. In fact, the test engineer may get more work, if the company tries to add some innovative requirements to lure the customers into buying their product.
- In case of a project, competitors do not come into the picture, except at the senior level management. In the case of a product, the tester also should consider the competitive products while testing. Sometimes, the tester needs to evaluate the performance against competitors’ products. The behavior of the product with the competitors’ products coexisting on the same machine needs to be considered. Also, the tester needs to check any violation of the copyrights.