Categories
Smart Thinking

The Swiss Army Knife

Swiss Army Knife Applications – an example of the Swiss Army Knife Anti Pattern

BEWARE the Swiss Army Knife…

Swiss Army Knife

Beware Swiss Army Knife Applications

The Anti Pattern

Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications (Microsoft patterns & practices)

Anti Pattern Name: The Swiss Army Knife

Type: Application and Systems Design

Problem: Functional creep in application design leads to an eclectic product with multiple attachments (which rather than being integral and optimal are usually sub-optimal grafts).

Context: Lack of control and governance in application design, unruly bespoke development, bolt-on addiction, no clear delineation of application responsibilities.

Forces: Lack of governance, application design standards and services strategy. Undue influence of ‘G-d Applications’ and their custodian(s).

Resulting Context: Swiss Army Knife applications rarely excel in any functional area. As they are an amalgam, they can be difficult to decommission or replace (as the functionality they contain needs to be moved elsewhere). The usual resulting context is a need for multi-stage decommissioning / replacement.

Solution(s): Application design standards and principles, governance, service based architecture, edict that ‘applications should do what they do best’, ban the ‘bolt-on’, clear delineation of application responsibilities, strategic view of application development.

Further Reading on Design Patterns

By Steve Nimmons

Steve is a Certified European Engineer, Chartered Engineer, Chartered Fellow of the British Computer Society, Fellow of the Institution of Engineering and Technology, Royal Society of Arts, Linnean Society and Society of Antiquaries of Scotland. He is an Electric Circle Patron of the Royal Institution of Great Britain, a Liveryman and Freeman of London and serves on numerous industry panels. He is a member of Chatham House, the Royal United Services Institute and the Chartered Institute of Journalists.