Software Design : The design of complex software systems

Too many software systems fail to deliver, despite the best efforts of everyone involved. This is because:

There are several reasons why this happens, but the most prominent one stems from the fact that software engineering is the only engineering discipline that lacks a standardised process and visual blueprint for the design of its products.
application mock up
Civil

Civil

standard design template

Mechanical

Mechanical

standard design template

Chemical

Chemical

standard design template

Electrical

Electrical

standard design template

Software

Software

no standard design template

Software Design gives you, your business, and your end users three key outcomes:

There are two main steps in Software Design

tabs-application-mockup

Software design is fast-paced, and can be integrated into workshops, involving the business and end users in the design of the solution. This mitigates the risk of any adverse surprises. It can also be integrated into Agile, Waterfall, or any other development methodology, and works with any platform, technology, or framework. This enables detailed app customisation in the early stages, and can apply to any software project.

Software Design creates applications that enable brilliant work.

Objections and Solutions to Standardising the Software Design Process

The usability and robustness of your complex business-critical applications can be often determine competitive advantage and scalability, as well as staff and end user satisfaction. Whilst software engineering does grant some flexibility and fluidity in the design process, it’s important to prioritise developing a working model upfront, and harnessing the ethos of other engineering disciplines to enable this can lead to long-term cost savings on new iterations, extraneous functionality, and cluttered systems
When it comes to designing software, there’s a difference between designing software as code versus designing software as a product. While code is abstract, (unlike metal, chemicals, and building materials), there are core components of software products that can be designed prior to commencing development. These components are the data, workflow, business rules, and the user interface.
The risk of constantly changing requirements can be mitigated by changing our initial approach to software design. Its possible to determine the requirements of an application prior to its development, and At Allegiant Software, we use Job Analysis and Design (JAD), a method borrowed from organisational psychology, as the foundation for defining requirements. Since this philosophy is used in human resource management, it can be adapted well to manage the design of an application that is used by people on a daily basis.
The digital design process we use At Allegiant Software is a systematic approach to take written requirements and convert them to the five visual models. Its job is to transition as quickly as possible from words to visuals, mitigating any ambiguities.
Agile and constant iteration is a direct response to the failings of the Waterfall development process. However, neither Agile, Waterfall, nor any other development methodologies solve the root cause of why an app doesn’t fulfil its complete purpose. Our digital design process can be used in Agile projects by creating a high level set of visual models to ensure visual congruency. This means that developers can start building with confidence in the final product meeting all expectations.

Our digital design process has been designed to be efficient in two key areas:

• It is designed to be used in real-time workshops, involving SMEs and end users in the initial stages
• The Blueprint has multiple levels of detail, which can be expanded upon after defining the key functionality requirements.

Whilst no two software projects are the same, the foundation of the design process that initiates them can be standardised, and this is evidenced in every other form of engineering. Visual blueprints are the key to maximising the efficient delivery of positive user experiences.

Our UI  & UX consulting services can involve an audit and modification of an existing system, or completely new development – or any mix of these services that you would like. Hence, we can’t put an exact price on it without going through our initial free consultation stage.

The Software Design Blueprint

The Blueprint has five core models:
Frame-3-1

The domain model is a summary of the space in which the application works, whilst the workflow, data business rules, and interface represent its design and behaviour. The Blueprint comprehensively covers the information the software engineers need to either code directly, or, for complex software, create the lower-level UML, BPMN, or ORM diagrams, without having to interpret written requirements.

The domain model contains the body of knowledge underlying the work to be done. It includes:
It ensures the project team has a clear understanding of the work people need to do with the new software system and the knowledge and skills required. The content summarised here informs the following four core models that represent the design of the software system.
The workflow model shows exactly how work will be done including activities and decisions and can be tested, on paper, as being fast, easy and enjoyable. It’s the main model used to support the business case through the expected performance improvement.

The data model shows the data on which the workflows operate and ensures that the data is organised in the right way to support work.

The business rules model describes the policies and other rules governing how the system works and ensures governance and compliance.

 Finally, the user interface brings everything to life and shows exactly how the system works through its design and behaviour.

Ideation

Generate several concepts

Refine a single concept

Detailed design and engineering

Detailed specification

Construction

The Software Design Blueprint does the same job as the architect’s blueprint. It gives people a clear, precise, and comprehensive plan that can be approved or changed prior to commencing development.

FAQs for the Software Design Blueprint

We’ve made software design efficient and possible to use in workshops, eliminating the need for written requirements. This mitigates the risk of redundant functions and costly ongoing iterations.

Whilst workflows are essential, we also use the rest of the models to determine the data and business rules, and develop a user interface upon defining these parameters.

UI design is essential, because it’s the only thing your end users will see. Allegiant Software are experts at designing user interfaces and user experiences that are captivating, and we use all of the aforementioned models to ensure that your UI is on-brand, and meets the requirements of the business case.

The Software Design Blueprint and Process does the same job as an architect’s blueprint. It lets you see all the detail you need, and you can test it with a prototype to make sure it solves the performance problems and delivers a real improvement in people’s performance.

The Software Design Process

Our Software Design Process has two main steps: Requirements followed by Design.

FAQs for the Software Design Process

Not at all! The software design process only takes one or two sprints to complete, and greatly mitigates any change requests, reiterations, and late-stage user experience problems in the long-term. This retains the conceptual integrity of the entire project.

Providing designers with an environment that is conducive to maintaining structural integrity actually enhances their opportunity to be creative, as they don’t need to worry about other potential shortfalls.
A design process means that you need to properly understand the requirements and then engage in a systematic design process to create the design solution. That means that doing the design at the right time with the right information means it will be consistent with the design at the end.
At Allegiant Software, we find that the most cost-effective and timely way to design a user experience is by clearly defining the requirements of the project and completing a conceptual design in its early stages. This saves our clients time and money and ensures that they are happy with the project before we write a single line of code.

Requirements (Problems and causality)

The primary method we use to collect requirements is job analysis and design (JAD) from organisational psychology. JAD is a structured process to either design new jobs or document existing jobs.
Therefore, given its importance in these critical business functions, we also use it to directly inform the requirements for enterprise apps, whether used directly by staff or by customers to interact directly with the business for a stronger customer experience.

This is the structure of a job

Most importantly, the KPIs capture critical performance metrics used to show how well the system needs to perform for people and can be used to compare current and future performance to support the business case. The delta of the financial, service, growth, or process impacts is central to the business case where performance improvement is the key driver.
The key result areas are the major areas of work and contain the key decisions and key tasks to be performed. These key tasks are then used to design the corresponding workflows to show exactly how they will be performed and the expected performance improvement to be realised. This approach also allows us to convert non-functional requirements like usability, into functional requirements that can now be clearly and precisely designed.
At Allegiant Software, we used several methods to determine the cause of any workplace or functionality issues. We can then incorporate these into the design process to ensure that the final product has addressed these and mitigates any risk of new problems arising. We use fishbone/Ishikawa diagrams, systems thinking, and statistical analysis to find potential problems and then define new requirements to address these.
Once we’ve clearly defined any issues, and identified their root causes, we can move into the Design phase and determine the best solutions to ensure that staff and end users have positive experiences.

FAQs for Step 1: Requirements

At Allegiant Software, we capture requirements by involving all parties in initial workshops. We predefine all of the necessary functions of the application before a single line of code is written, and this allows us to create a visual blueprint that can be handed over to the development team once the framework is approved by our clients.

Design (Visual modelling and UI / UX design)

The Design phase has two main steps to it:

Visual modelling

visual-modelling
Visual modelling involves converting the written requirements into the domain, data, workflow, and business rules models. These are separated into nouns, verbs, adverbs, and adjectives that define the functionality of the application. Instead of representing the requirements in a long, textual format, we At Allegiant Software convert these into a visual representation, simplifying it so that our clients and the end users can add or remove bespoke features easily, prior to any development taking place.

UI / UX design

When the first four models are complete, and specifically the workflow, data and business rules models, we can now start designing the user interface.
By creating the core visual models first, rather than diving straight into UI design, we can design the user interface for any type of device, such as web, mobile, tablet and speech. The core models ensure each type is consistent so people can use different devices without having to learn how each one works.

How to use the software design blueprint and process

The Software Design Blueprint is useful whether you’ve started a software development project already and need to convert written requirements, or are about to commence a UI/UX project and want to make sure the application works correctly in its first iteration. Once the design is complete, the models can be extended into UML, BPMN, or any other technical specifications for business-critical projects. This initial conceptual design is used to ensure that all stakeholders are in agreement on the functionality and user experience of the application, and the following diagram depicts how a project can progress to this stage. By following this blueprint, we can maximise the chances of success for UI design, development, testing, and release.

FAQs about how to use the Digital Blueprint and Process

At Allegiant Software, we find that designing a robust blueprint maximises the longevity of the software application we are developing, and ensures that our clients receive the bespoke functionality they require in a timely manner, with little need for any further iteration or technical assistance upon release.