Hver gang vi køber software til vores computere, ønsker vi altid den, der har flest funktioner, der allerede er inkluderet. Men ofte er problemet med software enten at de ikke har de rigtige funktionaliteter, som du leder efter, eller de har for mange funktioner, så det er umuligt at finde den, du leder efter hurtigt. For at tilpasse udseendet og følelsen af deres programmer har softwareproducenter tilladt brugen af plug-ins eller tilføjelser.
Plug-in og Add-on er to udtryk, der peger på den samme funktionalitet; de er simpelthen udvidelser, der udvider programmets brugervenlighed. Det afhænger bare af softwareproducenten, hvad de skal kalde softwareudvidelser til deres programmer. Disse udvidelser kunne udføres af andre virksomheder, enkeltpersoner eller af softwareproducenterne selv.
Plug-in er det udtryk, der normalt bruges, når der henvises til tredjepartssoftware, der er beregnet til at interagere med et bestemt program. Tag for eksempel din webbrowser; skal du installere et plug-in kaldet flash-afspiller for at afspille videoer. Flash-afspiller er ikke hjemmehørende i nogen browser, men er lavet af et separat firma. Det er også kompatibelt med alle de populære webbrowsere som IE, Firefox og Opera.
En tilføjelse udvider også funktionaliteten i et bestemt program, men de er normalt beregnet til at fungere på et bestemt program. Når man tager webbrowseren til sammenligning, ville tilføjelser, der er beregnet til Firefox, kun fungere med Firefox, og det ville også være for andre browsere. Disse er normalt ikke fuld blæst software, men er blot kodestykker, som du kan bruge til at ændre grænsefladen. De mest almindelige tilføjelser til browsere er værktøjslinjer, der tager lidt mere plads og giver dig øjeblikkelige genveje til visse onlinetjenester. Add-ons er også meget fremtrædende i online spil som World of Warcraft, hvor spillere, der har lidt know-how, kan oprette deres egne add-ons for at hjælpe andre spillere.
Adskillelsen mellem en add-on og en plug-in er ikke rigtig så klar. De er begge lavet til at udføre specifikke funktioner, der er tilpasset en bestemt brugers præference. Den primære årsag til, at disse koder ikke er indlejret i programmet i første omgang, er, at de ikke virkelig er så vigtige, og mens nogle mennesker måske værdsætter at have det, kan andre måske ikke og synes det er gener. Dette er også værktøjer, som en softwareproducent kan bruge til at motivere medlemmerne af deres samfund til at blive involveret i forbedring af softwaren.