The answer lies in whether a program was built using open-source code. If so, then anyone can see and improve the code by, for example, designing compatible extras. Many users prefer open-source programs because they are usually free, can be easily tweaked, and are frequently updated with new tools. However, there’s often no central point of contact if something goes wrong.
In contrast, ‘proprietary’ software can only be altered by its developers, so ordinary users can’t build extras for it. Companies like Microsoft (with Windows, Skype) and Apple (Mac OS, itunes) take this route because they want to retain complete control of their software, typically to maximise their revenues.