Technical problems are seen on every level of the network stack. Starting with the physical level, it is difficult to plan the network using the different constraints like noise, limited channels available, natural and other obstacles. Due to this issue the configuration of the network is constantly evolving. Changing of antenna directions can be difficult once a node is set up.
On the higher levels we have encountered problems with the network drivers for the wireless boards we are using. These problems can seriously affect the throughput and reliability of the network. Here the use of open source software and the open source development model pays off. Problems can be solved within the group, or with help and information gained from the Internet. Also having a choice between different solutions to the problem helps.
On the IP level, having many point-to-point links and a number of applications results in quite a big puzzle to get everything configured correctly. Using a central configuration repository and the use of routing protocols helps, but some problems still remain to be solved. For example when connecting to the Internet (with a number of providers), routing and numbering issues needs to be solved. Also the latency in the network might pose a problem in some near real-time applications or applications that use streaming technology (e.g. live video).
Furthermore, the reliability of the hardware can be a problem. Because of cost issues, complete (used) PC machines are in use as network nodes. These machines are not as reliable as dedicated routers running on embedded systems without moving parts (like fans or harddisks). Minimizing the points of failure, testing, validating and proper maintenance helps a lot here. Ultimately, using embedded systems will ease this problem.
Non-technical problems include gaining acceptance within the town and the community. Without a broad acceptance and support of various organizations it is not possible to build this kind of a network in a not-for-profit fashion. Access to rooftops of high buildings etc. is essential. However, we do not believe that a for-profit organization has any chance of succeeding at all. The upfront costs of building a network without volunteers are very large. Possible revenue streams will be insufficient to recoup those large costs.
The other difficult task is to manage a large group of volunteers that are actually doing the work. With the growth of the network, also new people are joining to do the design, management and the building of the network and the nodes. With every new engineer another degree of (intellectual) freedom is added to the system. Managing this enormously large and diverse task force in an open manner can be difficult.
Also, we see that on the non-technical level the more religious ideas between e.g. the different operating systems or engineering solutions on a specific topic are a problema to cope with (like *BSD vs. Linux). Having a heterogeneous set-up with different operating systems will gain a broader acceptance within the group and probably builds a more robust network, but will be much more difficult to manage.