The primary goal of any project involving a technology facilitated change is to deliver, on time and within budget, a product, service or system that meets the agreed needs of the project's stakeholders. By interpreting this as delivering ‘working’ software in the shortest time possible, some approaches, when taken to their extreme, may regard architectural considerations as being of little importance.
However, delivering and maintaining a product, service or system of any complexity in a reliable and timely manner requires a robust architectural foundation. Ignoring this risks leading a project down the well-trodden path of simply doing it wrong faster.
At the opposite extreme, it is important to be wary of approaches that lead inevitably to analysis paralysis, at best resulting in the delivery of a mass of documentation but little else.
The key to delivering client value lies in striking the right balance between the extremes of implementation and architecture-led methodologies
The key to delivering client value clearly lies in steering a course between these two extremes and at Applied Informatics we believe in striking the right balance by:
We recognise that technology facilitated change increasingly relies on integrating existing and new systems both within organisations and between organisations. Furthermore, once developed, most of the lifetime of a product, service or system will be spent maintaining and enhancing it to meet the evolving needs of users and to maintain competitive advantage. Complexity almost invariably increases over time as new capabilities are added - rarely does it diminish.
Therefore while our focus is always on helping to deliver a product, service or system that meets the immediate needs of the project's stakeholders, on time and within budget, we believe it should be underpinned by a robust Information Systems Architecture that, in particular, promotes:
Unfortunately, it is not uncommon for projects to flounder because of poorly defined objectives or requirements, possibly because of a failure to resolve the needs of competing stakeholders. This typically leads to numerous and frequent changes to goals, ending finally in analysis paralysis.
Taking a delivery focused approach, our preference is to undertake or work from user driven analysis wherever possible. This helps to ensure that the value the product, service or system is intended to deliver is clearly defined upfront.
Some approaches may attempt to uncover all of the facts at the outset before commencing any development activity, and furthermore expect all such ‘facts’ to remain immutable throughout the duration of the project. However, when embarking on a technology facilitated change of any complexity, it is unlikely that all of the facts will be discoverable at the outset.
Our preferred approach is therefore to undertake iterative cycles, each of which may incorporate a planning, analysis, design, build, testing and deployment phase. This allows us to verify our initial deductions, adapt our approach as necessary, learn from experience and deliver value to the client as we progress.
As organisations today look to enterprise COTS, and increasingly cloud solutions, to lower the risk and cost of system development and ownership, we are well aware of the challenges that this can present to traditional model driven approaches.
At Applied Informatics we specialise in the development of technology-specific UML profiles to describe how real world technologies are configured, customised and integrated. These are then used to build platform-specific models that specify or document the solution, or may even be used to generate implementable software artefacts.