Monday, September 9, 2013

Software and service development in schools

One of the dilemmas a modern school faces is whether to develop systems and software in-house, or to use an external provider.

The biggest problem with the former is in on-going maintenance, particularly if the lead developer departs the school. And, let's face it, most school IT people aren't software engineers, so development practices aimed at maintainability are likely to be lacking.

On the other hand, external providers often don't quite fit all of the school's need, meaning the school either has to adapt to what the provider can offer, or add a custom system as well, which leads to the problems of multiple systems.

Another possibility is to have an external contract develop the service or system. This can probably work provided that development processes are high quality. Extensive consultation is imperative though - product requirements and specifications are notoriously difficult to lock down, and without a solid understanding of how schools, teachers and students operate, this could be too far removed from the end-user environment to be effective.

The solution to these that has got me thinking (and somewhat excited) of late is to develop open source software/open systems, which a strong focus on community building. In all likelihood, a school will not be unique in it's need for a particular system. In building its own, but making it open source and actively sharing and promoting it to the broader educational community it could alleviate the maintenance problems by 'pooling' the maintenance issues among other users. Schools could also turn this into an income stream by providing paid support or development of specific features. The DISCO ICT management project is one example of such a development practice that looks promising. Community-building takes time and energy, and is often in the skill-set of a software developer or technician - the more successful larger OSS projects often have dedicated non-techie people in this role.