It is important to distinguish between the main types of software project because what is appropriate in one context might not be so in another.
1. Compulsory versus voluntary users: POS software has different requirement and user than Games.
2. Information System versus Embedded Systems: Information Systems helps in office day to day processes and embedded system are used to control machines. Examples of Information system are A stock control system, transaction processing system, knowledge management system, learning management system, database system etc. While Embedded systems control Microwave oven, AC, Mp3 Player, Digital Camera, Washing Machine etc.
3. Outsourced Project: Most of the companies outsource parts of its work to other companies. There can be several reasons to outsource project, e.g. company does not have sufficient expertise, or project is to be completed in limited period in that case it can be outsourced to company with their development centre.
Outsourced project fetch one time revenue in good amount while product based company project earn over period of time.
4. Object-Driven Development: Project also vary depending on the aim of the project. If aim of the project is to create product then client has the responsibility for justifying the product. In that case Service level agreements are important as organisations contract out functions to external service suppliers.