System software and application software are the two main types of software. System software includes operating systems, utility programs, and device drivers that manage computer hardware and provide services to other programs. Application software performs specific tasks for users like word processing, web browsing, or games. Software can be acquired by writing it in-house, hiring external consultants, purchasing off-the-shelf packages, or leasing packages with annual fees for use and automatic upgrades. Buying an existing package is generally cheaper than custom software but lacks flexibility, while writing software internally keeps information confidential but has higher development costs.