CHAPTER I



Problem statement
Most small and medium-sized software producers develop small- and medium-scale systems and projects.

Most small and medium-sized software producers develop small- and medium-scale systems and projects.

There are software solutions for almost everything on the market. In content management, some are so widespread that many of the websites we regularly visit run on a CMS. Some specialise in publishing, others in audiovisual content, while others serve bloggers or classified advertising.

CMSs are clearly a growing trend. Open-source systems become more modular with each release: functionality can be added or removed, and communities form around them, contributing or reusing pieces of code to provide solutions for millions of businesses and individuals.

Today, every small or medium-sized business knows that it needs to organise its information using reliable computer systems. As the web grows, businesses also want to manage that information online.

I recognise that the existing CMSs are giants in terms of the amount of code developed, person-hours invested, support communities and, above all, the number of live websites that use them.

These CMSs are highly customisable and can be adapted to almost anything. They also provide a well-defined interface for adding bespoke modules, components or plugins to meet particular needs.

From a developer’s perspective, using these tools to build web-based systems is undoubtedly positive and advantageous.

From a software producer’s business perspective, however, the picture changes. Adopting these tools as the foundation for medium- and long-term development can become a burden, with many potential risks and problems:

1. CMSs have evolved into very comprehensive, and therefore complex, products. They may fit a particular website project well, but larger systems may require changes to their behaviour. Modifying software of this scale could demand considerable resources.

2. The core of the resulting application would depend on third parties, a severely limiting inconsistency for a software product. Its producer would have to update systems according to another organisation’s timetable, and any obsolescence imposed by that third party would affect the producer using the software. In short, its release cycle would be dependent on someone else, or it would remain tied to an obsolete version.

3. These applications consume substantial resources on their host servers. Deploying many instances would therefore produce high levels of resource consumption, even when their business logic is simple or the number of requests is low.

4. They attract cyberattacks. Because their code is open, anyone can study and understand it. Individuals and organisations with different aims systematically compromise these systems, forcing their producers to release security patches and new versions. Releases do not always add improvements: some simply fix bugs.





CMS UM header