After doing one thing for over eight years, one would usually expect to have a certain level of competence in that activity. One would even expect to say: "I know know how to do X."

However, when it comes to developing sustainable relationships with small organizations involving technology and the Internet, I realize that I just don't know how to do it.

And - I don't think I'm alone. In fact, I've worked and continue to work closely with dozens of very smart people, and we just can't seem to figure it out.

Here's the scenario:

A small group (less than 10 paid staff, often no paid staff) has a web site or online database. Perhaps the relationship starts with me building that web site or database. In either event, they periodically need changes made. No database or web site is ever finished. As long as the organization is growing and changing, so is there database and web site.

The problem is that these changes come in dribbles. Six months go by with no changes. Then, a 10 minute change is need. Or a thirty minute change is needed. Often, these changes come with a huge urgency. Something is not working that is needed immediately.

Sometimes the organization can pay for the changes and expect to, sometimes the organization can't pay for the changes and expect them for free. Sometimes the changes reveal a bug in the first implementation. Sometimes organizations understand that bug fixes are a normal part of any technology deployment, other times organizations think the bugs are like a product defect and fixing them for free is the responsibility of the developer.

The problem is that the relationship becomes one based on exchange: the organization needs X changed. The developer will deliver X at a price of $Y.

There are a number of bigger political problems with the exchange model, which we could discuss for hours, and I think that's a good discussion.

For now, however, I want to only address the impracticality of that model. Developers, like all humans on this planet, need a steady income in order to live. Even when the organizations are available and willing to pay for all changes, this model is a really hard one to live on. The pay is too unpredictable and too little. The only way to survive on this model is to over commit and over promise.

There are some solutions to this problem, but they all have draw backs:

What other models are there?