Kadarkoli kupujemo programsko opremo za svoje računalnike, si vedno želimo tisto, ki ima največ funkcij, ki so že vključene. Toda pogosto je težava s programsko opremo ta, da nimajo pravih funkcionalnosti, ki jih iščete, ali pa imajo preveč funkcij, da je nemogoče hitro najti tiste, ki jo iščete. Da bi prilagodili videz svojih programov, so proizvajalci programske opreme dovolili uporabo vtičnikov ali dodatkov.
Vtičnik in dodatek sta dva izraza, ki kažeta na isto funkcionalnost; so preprosto razširitve, ki širijo uporabnost programa. Od proizvajalca programske opreme je samo odvisno, kako poklicati razširitve programske opreme svojih programov. Te razširitve bi lahko opravila druga podjetja, posamezniki ali proizvajalci programske opreme sami.
Vtičnik je izraz, ki se običajno uporablja pri navajanju programske opreme tretjih oseb, ki naj bi bila v interakciji z določenim programom. Vzemimo za primer svoj spletni brskalnik; za predvajanje videoposnetkov bi morali namestiti vtičnik, imenovan bliskovni predvajalnik. Flash predvajalnik ni domač v nobenem brskalniku, ampak ga v celoti ustvari ločeno podjetje. Prav tako je združljiv z vsemi priljubljenimi spletnimi brskalniki, kot so IE, Firefox in Opera.
Dodatek prav tako razširi funkcionalnost določenega programa, vendar naj bi ponavadi deloval v določenem programu. Če za primerjavo uporabimo spletni brskalnik, bi dodatki, ki so namenjeni Firefoxu, delovali samo s Firefoxom in tudi pri drugih brskalnikih. To ponavadi ni popolna programska oprema, ampak so preprosto kosi, ki jih lahko uporabite za spreminjanje vmesnika. Najpogostejši dodatki za brskalnike so orodne vrstice, ki zavzamejo malo več prostora in vam nudijo takojšnje bližnjice do nekaterih spletnih storitev. Dodatki so zelo vidni tudi v spletnih igrah, kot je World of Warcraft, kjer lahko igralci, ki imajo malo znanja, ustvarijo svoje dodatke za pomoč drugim igralcem.
Ločitev med dodatkom in vtičnikom v resnici ni tako jasna. Oba sta narejena tako, da opravljata posebne funkcije, ki ustrezajo določenim uporabnikovim željam. Primarni razlog, da te kode niso vgrajene v program, je, da v resnici niso tako zelo pomembne, čeprav nekateri morda cenijo to, drugi pa ne in se jim zdijo nadležni. To so tudi orodja, ki jih proizvajalec programske opreme lahko uporabi za motiviranje članov svoje skupnosti, da se vključijo v izboljšanje programske opreme.