In section
I have illustrated
the basic activities of the development work of OSPs: work, coordination, communication,
documentation and decision-making. Since helping the project to succeed is the
primary goal of the technical support system, the support of the given activities
is a major task. Besides, there is an additional activity emerging out of the
technical environment: protection.
The presented activities (as action categories) give a good overview about the actual job of the technical support system, but when looking at concrete technical issues a sharp division is not useful anymore as the abstract tasks only appear in combination. For example, coordination is impossible without communication and version management covers more or less all six categories. Therefore I will not consider these categories in the following, but concentrate on presented problems to provide another view of the subject.
Computer systems control a lot of valuable information, many expensive devices and several charged services. As most people do not like losing valuable goods, they prefer to protected these things against any damage or misuse, if possible. This issue becomes even more important for computer systems connected to the Internet because it allows any other person linked with this computer network at the same time to interact with the system. Although many obstacles have to be removed before someone gains control over your system via the Internet, it is a possible threat as recent attacks like the I-love-you-virus have shown. This protection is the task of system security5. There are several different threats that have to be faced:
There are different strategies to make sure that nobody inside a technical support system is causing damage to the project. For instance the software could monitor all performed actions and enforce their correctness according to the policy rules by refusing forbidden ones. Another possibility is to leave the executive part to a human being and inform someone about undesired activities. However, it is often difficult to give generally valid rules of what the different participants are allowed to do and of what the software should refuse to process. By Being on the safe side security is increased, but developers' freedom is reduced and it would chase them away from this 'paranoid' project. Therefore observation (e.g. by logging performed actions) is sometimes the most reasonable procedure, although it takes away a lot of privacy from the participants.
Anyway, the usual situation is a responsible-minded developer who does not need to be controlled by a Big Brother and does not like to be. Still, there might be a few black sheep who can mess up everything and only a little bit of observation of the system could stop them ...
It is the job of each project to find their own balance between privacy and security and the corresponding technical support should be prepared to enforce the agreed policy.
The task of version management is to record any modification to the project data and by request recover it to any state that could be specified accurately. There are many good reasons for the usage of version management systems in OSPs. I just want to give some examples:
Large parts of the support system are not situated on the local computer system, the different computers are not permanently connected to each other and developers might work on various systems (e.g. office and home), but they always use and modify the same project's data. However, the version management is responsible for handling conflicts that could emerge from concurrent work on the same data and security has to make sure the distributed system itself is protected, but the distributed support system must allow users to attach and detach from it without difficulties. The work of the participant should be possible in both states, in particular without a connection as many users have to pay for their connection to the Internet or use a voice phone line.
Everything that is caused by the frequent disconnection belongs to this tasks. Some examples:
Information in its various forms (software, documents, URLs, etc.) is the most important resource for OSPs. Every day the knowledge available online grows and a certain part of it is useful for certain projects. As soon as one participant recovers some useful information he can share it with others. However, the distribution raises several problems:
The Internet itself provides several means of communications like email, newsgroups and Internet relay chat, but they are insufficient as an easy, efficient communication system. I think, it would help OSPs a lot if they find better ways to communicate. However, using something more complex than the basic Internet infrastructure also introduces problems: For instance, all developers must install the extra software everywhere from where they want to communicate with the project; email is available everywhere.
To illustrate what I mean, I will give some additional features for a theoretical replacement of a regular mailing list:
Issues8 are basically ideas that require some work to be done. They play an essential role in OSPs as they are the major instrument for coordination. It is a simple, but efficient procedure to give their activities a direction, get an overview of what has to be done in the future and of what is going on in a project. Therefore it is important to find a good way to handle and administrate issues as it helps to reduce work and increases efficiency. Technical support should help to make things transparent. Some examples:
Most tasks mentioned above could be considered a special case of this category, but they are too important to be covered in this way.
There is a lot of boring work in a project that has to be done frequently without anyone being interested in anything else than the result. This stuff could often be processed automatically by some technical support software, e.g. setting and checking all access permissions correctly. However, it is important to watch each of these tasks closely while transferring them to system control as automation that first seems to be comfortable often becomes annoying and disturbing in the long term. Automation should support and help the participants and not hinder them. Therefore it is normally the best solution to leave the decision whether they want to use a specific tool to the individual project members instead of activating it for the entire project, but the simple provision of an option for additional technical support is generally a good thing.
.