If you are developing a platform or framework or hardware or OS and want other people to develop applications on top of your creation, then the following will make it easier for them and save you from being cursed by your developers:
- Ability to script all steps involved in building software.
- Ability to run script-based regression testing.
- Make your source code available to the developers, so that they can fix bugs which kill their applications, work around annoying limitations which you did not realize, and in general avoid the Stallman’s Printer Driver syndrome.
- Make it possible for people with limited budgets to participate in the party, because cool ideas and money do not necessarily go together.
- Build in logging and debug support.
- Training for developers – courses.
- Mailing lists and Web forums for your developers.
- Excellent documentation, with several examples, is mandatory!
- Mechanism for reporting runtime failures. Due to psychological reasons, it must be as easy and pleasant as possible for software developers to activate it in their software.
The above checklist was put together at November 2001 after having using few platforms for developing cellular applications, which drove me crazy by their utter failure to follow the above principles. I won’t mention names here but my resume is available in my Web site…