From its inception, Microsoft defined itself as a platform company and understood the importance of attracting third-party programmers. It did so by providing development tools, training, access to proprietary APIs in early versions, and partner programs. Although the resulting ubiquity of Microsoft software allows a user to benefit from network effects, critics and even Microsoft itself decry what they consider to be an "embrace, extend and extinguish" strategy of adding proprietary features to open standards or their software implementations, thereby using its market dominance to gain unofficial ownership of standards "extended" in this way.