Software adalah suatu perangkat lunak yang dapat dijalankan pada perangkat keras seperti komputer, handphone, dan perangkat keras lain yang menghubungkan dengan user. Kegunaan software itu sendiri yaitu sebagai sistem yang dapat berguna untuk manusia sebagai user dalam memudahkan pekerjaannya. Seperti halnya sistem operasi yang termasuk ke dalam software atau perangkat lunak berguna untuk mengelola sumber daya perangkat keras.
Dengan semakin berkembangnya hardware, akan diikuti oleh perkembangan software untuk mengimbangi kebutuhan software terhdap hardware. Perkembangan software yang sangat cepat ini tidak lepas dari banyaknya software yang bersifat open source yang dapat dikembangkan oleh para developer, seperti Google yang menyediakan dari beberapa produknya (Google Maps, Google Translate, dan lain-lain) yang dapat dikembangkan oleh developer sehingga semakin meluaskan fungsi. Dengan banyaknya pihak developer atau programmer ini akan semakin meningkatkan perkembangan software baik yang bersifat komersil maupun yang sifatnya freeware.
Tak sedikit orang atau perusahaan yang memanfaatkan pengembangan software sebagai mata pencarian atau sumber pendapatan. Software yang bersifat komersil dibedakan menjadi 3 segi kebutuhan, yaitu:
1. Software sebagai produk. Merupakan manfaat software dijadikan sebuah produk yang dapat dijual kepada masyarakat atau perusahaan yang membutuhkan. Misalnya: sistem kasir, sistem pos (Point of Sale), sistem keuangan, dan lain-lain. Sistem tersebut bersifat paten yang dibuat oleh perusahaan tertentu yang kemudian dijadikan produk dari perusahaan tersebut yang dapat dijual kepada perusahaan lain yang membutuhkan. Biasanya produk software ini diberi nama yang dijadikan trend atau ciri khas dari perusahaan tersebut. Misalkan dari perusahaan Bitncode, semua produk aplikasi yang dibuat diberi nama Bit, Yaitu: BitFinance, BirKasir, BitAbsensiOnline, dan lain-lain. Kegunaan software sebagai produk ini telah diterapkan di Jepang, dan negara-negara barat.
2. Software sebagai bisnis. Yaitu bisnis yang dilakukan dengan menciptakan sebuah software yang dapat memberikan penghasilan secara terus-menerus dari software tersebut melalui jalur bisnis. Software yang dibuat lebih pada pendekatan memberikan layanan atau jasa yang dapat dimanfaatkan oleh pihak lain dengan membayar license atau sewa.
3. Software sebagai proyek. Yaitu seorang individu/perorangan atau suatu perusahaan yang menjadikan software hanya sebagai proyek untuk mendapatkan penghasilan. Pembuat software hanya akan membuat software ketika ada permintaan dari user. Dan ketika software telah selesai dibuat, berakhir pula software tersebut sebagai software milik pembeli. Kegunaan software sebagai proyek ini banyak diterapkan di Indonesia. Itulah sebabnya software di Indonesia susah berkembang. Biasanya yang menggunakan software sebagai proyek ini adalah mahasiswa dan software house. Mereka tidak membuat software sebagai produk mereka, melainkan membuat software ketika ada permintaan dari user.