Unter dem Begriff Software werden seit den späten 1950er-Jahren Computerprogramme sowie Ressourcen, die zu deren Ausführung notwendig sind, zusammengefasst — Schriften, Grafiken, Konfigurationsdateien und so weiter. Fasst man den Begriff weiter, können die Firmware eines Geräts oder dessen Betriebssystem ebenfalls als Software bezeichnet werden, und bei einer sehr weit gefassten Definition auch Daten, die darauf gespeichert sind.

Bei Programmen, die für den Einsatz in Unternehmen angeschafft werden sollen, stellt sich außerdem die Frage zwischen Standard- und Individual-Software: Während Funktionsumfang und Preis von Standardsoftware vom Entwickler festgelegt werden, wird Individual-Software speziell für das eigene Unternehmen entwickelt. Dies kann zum Beispiel notwendig sein, wenn die Anforderungen des Unternehmens von keiner auf dem Markt erhältlichen Software abgedeckt werden.

Bei der Auswahl von Software sollten die gewünschten Funktionen an erster Stelle stehen: Welche Daten können damit verwaltet oder bearbeitet werden, und welche Funktionen stehen zur Bearbeitung zur Auswahl? Kann die Software durch Plugins um fehlende Funktionen erweitert werden? Was die technischen Anforderungen betrifft, dürfte in einem Unternehmen relevant sein, wie gut sich die Software in die bestehende IT-Landschaft einfügt, außerdem die Frage, ob sie auf der vorhandenen Hardware lauffähig ist oder dafür neue Hardware angeschafft werden muss. Hinsichtlich der Architektur der Software können unter anderem die Bedienbarkeit und die Möglichkeit, die Software an eigene Bedürfnisse und Arbeitsabläufe anzupassen, entscheidend sein.

Nachdem der Entscheidungsbedarf festgestellt wurde, sollte zunächst ermittelt werden, welche Software grundsätzlich infrage kommt. Die Entscheidungskriterien sollten festgelegt und — beispielsweise durch Tests von Demoversionen — validiert werden. Nach der Auswertung der schriftlichen Testergebnisse und der Entscheidung für eine Software sollten die Gründe für diese Entscheidung möglichst ausführlich festgehalten werden. Die Protokolle der Testergebnisse und der Begründung können zum Beispiel dann sinnvoll sein, wenn es später einmal um die Frage geht, ob ein Update auf eine neue Version der Software durchgeführt oder zu einer Alternative gewechselt werden soll.

Besonders in Unternehmen ist die Anschaffung von Software häufig mit hohen Kosten verbunden, und Fehlentscheidungen können nicht nur dazu führen, dass neue Software angeschafft werden muss, sondern zusätzlich kann diese eine Umschulung der Mitarbeiter erforderlich machen. Vor der Anschaffung sollte daher ein systematischer Entscheidungsprozess stehen.

Der Begriff Softwaretechnik (vom englischen „software engineering“) bezeichnet den Prozess der Entwicklung einer Software: Das reicht von der Tätigkeit des Entwicklers, der ein Softwareprojekt im Alleingang erledigt, bis hin zu komplexen Projekten mit Hunderten von Mitarbeitern.

Einige weit verbreitete Softwareprojekte wie der Webbrowser Firefox, das Betriebssystem Linux und die Office-Suite OpenOffice werden unter einer Lizenz vertrieben, die es Benutzern erlaubt, den Quelltext der Software einzusehen, ihn beliebig zu verändern und weiterzugeben. In der Regel wird erwartet, dass die geänderte Version dann auch wieder mit offenem Quelltext und unter der selben Lizenz vertrieben wird. Dies ist aber zum Beispiel bei den Betriebssystemen der BSD-Familie nicht der Fall: Diese können beliebig verändert werden, ohne dass die geänderten Quelltexte offengelegt werden müssen.

Als geistiges Eigentum unterliegt Software grundsätzlich dem Urheberrecht: Der Verkauf sämtlicher Rechte an einer Software kommt damit fast nur zwischen Unternehmen vor. Bei einer Software, die man als Benutzer kauft, erhält man dagegen lediglich ein Nutzungsrecht. Inzwischen kommt es auch häufiger vor, dass Software als Service angeboten wird, also je nach Bedarf für bestimmte Zeiträume gemietet werden kann.

Je nach Blickwinkel lässt sich zwischen verschiedenen Arten von Software unterscheiden: Direkt auf der Hardware laufen das Betriebssystem und systemnahe Programme, Treiber und Dienste, die für die Arbeit mit dem System notwendig sind. Auf diesem System laufen die Anwendungen, die vom Benutzer installiert wurden, und diese Anwendungen werden wiederum von ihm benutzt, um darauf seine Daten zu bearbeiten und zu speichern. Darüber hinaus lässt sich zwischen Software für verschiedene Anwendungsbereiche — Textverarbeitung, Datenbank, Bildbearbeitung, Lernsoftware, Spiele etc. — unterscheiden, oder nach Lizenzen, unter denen Software angeboten wird.

Die Unterscheidung zwischen Soft- und Hardware begann zwischen den 1950ern, als der Begriff Software zum ersten Mal auftauchte, und den 1970ern, als IBM begann, die Kosten für Hard- und Software auf Rechnungen getrennt aufzuführen. Zur gleichen Zeit entstanden die ersten Unternehmen, die sich auf die Entwicklung und Vermarktung von Software spezialisiert hatten.

Eine weitere Eigenschaft, durch die sich Soft- und Hardware unterscheiden, ist die beliebige Kopierbarkeit von Software. Grundsätzlich fallen außer für den Datenträger keine weiteren Kosten an, und die teilweise recht hohen Preise für Software werden vor allem für die Lizenz zu deren Benutzung bezahlt, nicht für den Datenträger. Software verschleißt durch den Gebrauch nicht, kann mit der Zeit aber veralten, von anderer Software überholt werden oder aufhören, zu neueren Computersystemen kompatibel zu sein. Dabei können Programme aber durch Software-Aktualisierungen auf einen neueren Stand gebracht und Fehler können dadurch ausgebessert werden. Auch die Emulation von Hardware eines älteren Computers ist durch Software möglich: Auf diese Weise können Programme, die für den älteren Computer entwickelt wurden, auf neueren Systemen wieder lauffähig gemacht werden.