Conclusion

When we started looking at API usability, we didn’t know how to do it or whether the effort would be worthwhile. We can now unreservedly state that it is absolutely possible and absolutely vital. We have learned a lot about how different developers approach APIs and the different expectations they have of those APIs. We have been able to utilize that understanding both to design new APIs and to discover and fix usability issues in existing APIs.

For example, the scenario-based design approach has been used at Microsoft for a few years now. Our design guidelines and API review process reinforce the need to do scenario-based design [Cwalina and Abrams 2005] and usability studies on APIs.

But this is only the beginning. There is much work still to be done. Given how critical it is to find and address API usability issues before the API ships, we need to develop additional techniques that can be used as early in the API development process as possible. For example, Farooq et al. describe a method for evaluating the usability of an API that does not require a usability study [Farooq and Zirkler 2010].

It’s also important to understand how trends in application development impact the usability of APIs. For example, there is a trend toward the use of design patterns such as dependency injection [Fowler 2004]. There are very clear and sound architectural reasons for such patterns, but how do they affect usability? Jeff Stylos has investigated these issues and learned that there can be surprising usability consequences associated with some popular design patterns [Stylos and Clarke 2007], [Ellis et al. 2007].

Being in a position to ask and answer these questions is very satisfying. Now, over 10 years since I joined the Visual Studio User Experience team, I can appreciate how much we have learned about how best to create a positive impact on the developer user experience. I look forward to seeing similar advances in the future.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset