I think I need to clarify the purpose of my various projects, and focus on designing interfaces to reach those aims.
For example, the sixthday library provides generic applications that developers can customize and reuse. The interface should help each developer discover a specific App, and then provide documentation so he can use it immediately.
Likewise, rantelope's interface should let users manage websites as efficiently as possible. Setup should be quick, publishing should be simple, and any errors that arise should come with a suggested solution.
The more focused a project's purpose, the more efficient and understandable its interface can become. As software expands to the point that it sends email, serves web pages, and makes you coffee, its learning curve steepens. The harder it is to learn, the less acessible it becomes to the market.
For a project to become popular, it must first be learnable. Of course, there are other criteria for success. The project must attract attention, pique interest, AND be simple enough to understand quickly. But simplicity is key. If a project is too complex, break it into simpler pieces, and provide a high level overview so potential users can find the piece that addresses their specific needs.
Defining a purpose also prevents bloat. Features that do not support the project's stated goals should be omitted, or relegated to an optional support module.
Now, so far I've used the word "project" to refer to software, but the principle also applies to writing, business, and other endeavors. A business that tries to be all things to all people will fail. Writing that sticks to a particular subject works better than writing that wanders to and fro. People that attempt to accomplish all their goals at once often accomplish nothing.
The purpose of a project depends entirely on the people involved. Most projects begin with a purpose, but it is often not concrete enough. For example (again), my rantelope project allows users to manage websites. But which users? Should it be a hosted tool that publishes to remote servers? A CGI script that users install themselves? With a minor facelift it could even become a desktop tool. All of these options satisfy the purpose of "managing websites". To choose between them, I will have to make my purpose even more specific.
I plan to devote quite a bit of time to this concept over the next few weeks, as I continue automating my business and writing software. If I can keep my projects in line with tightly defined purpose, they will be a lot simpler to complete and far more successful once presented to the world.