When you are developing a platform, developers are your users, and like any user they deserve the utmost in usability and user-centered design. I drive usability into developer tools such as IDEs, API design, samples, documentation, and development environment. I use state of the art usability tools such as inspection methods, field observations, and usability lab studies.
Developer usability is no different than typical usability, except that the user interface has programming language and api components as well as the graphical user interface of the tools and development environment.
Like all usability, the first step is to understand and model the users. Good user modeling depends on synthesizing multiple research inputs, such as user visits, usability studies, survey data, etc... I gather as much data as time and budget permit.
I use a variety of methods to model the users, depending on what fits the needs. However, a typically effective approach is to create a persona or profile. We had tremendous success with this when I was doing usability for Visual C#. I even blogged about it, so you can see the results for yourself.
Read my post on the typical C# developer, and see what users thought about it
I had the great pleasure through much of my time at Microsoft of working with Steven Clarke. Steven is one of the brightest people I have ever worked with, and is very passionate about API design. We worked together on a system of analyzing APIs by specializing the Cognitive Dimensions work that went before to focus on APIs. Steven and I wrote a paper on appling the Cognitive Dimensions to APIs. After that, I went on to focus on tools usability, but Steven really stretched the state of the art of thinking about APIs and API design. I still use his framework for API design today, as I have not seen anything that is nearly as user-centered or as complete. Good think Steven keeps a blog and publishes frequently.
When I was studying for my Master's at George Mason University, I had the privledge of learning usability and cognitive analysis from Wayne Grey and Deborah Boehm-Davis. Both were pioneers in their fields, Dr. Gray especially focused on task analysis, and Dr. Boehm-Davis on the psychology of programming. I added many important tools to my toolbox under their tutelage, such as GOMS, Heuristic Reviews, and Cognitive Walkthroughs.
I was soon in a position to contribute back to the community that trained me by creating a specialization of the cognitive walkthrough method, called the Streamlined Cognitive Walkthrough. This method provides great usability data in a team environment in a short amount of time.
Read my original paper on the SCW
Usability testing provides stark emperical data about both your users, and your product. I have run countless usability studies with developers to improve the experience of developer focused projects. These studies are used for both improving the design of existing features, as well as identifying opportunities for groundbreaking new features. Referencing again my work with the Visual C# team, you can see new features such as "hover values" and "visualizers" that came directly out of our observations during usability tests. I wrote several programs in both C# and VB and implanted several bugs in each. Some bugs were easy to find, and some were devilishly difficult. I recruited developers to come in and find and fix the bugs. By watching them work with the debugger we were able to both improve the design of the existing feature, as well as ...
I've done similar work across the breadth of Microsoft's developer tools, ranging from typical Visual Studio features, to the Virtual Earth javascript control, and the Tablet PC developer platform. Of course, most of the results must remain secret, but I did blog some of the work on the debugger.