Solution Design & Architecture (SD&A) – Consider this…

When it comes to the design and architecture of enterprise level software solutions, what comes to mind?

What is Solution Design & Architecture:

SolutionDesign and Architecture (SD&A) is an in-depth IT scoping and review process that bridges the gap between your current IT environments, technologies, and the customer and business needs in order to deliver maximum return-on-investment. A proper design and architecture document also documents the approach, methodology and required steps to delivery the solution.

SD&A are actually two distinct disciplines. Solution Architect’s, with a balanced mixed of technical and business skills, write up the technical design of an environment and work out how to achieve a solution from a technical perspective. Solution Designers put the solution together and price it up based from assistance from the architect.

A solutions architect needs significant people and process skills. They are often in front of management, trying to explain a complex problem in laymen’s terms. They have to find ways to say the same thing using different words for different types of audiences, and they also need to really understand the business’ processes in order to create a cohesive vision of a usable product.

Solution Architect focuses on: 

  • market opportunity
  • technology and requirements
  • business goals
  • budget
  • project timeline
  • resourcing
  • ROI
  • how technology can be used to solve a given business problem 
  • which framework, platform, or tech-stack can be used to create a solution 
  • how the application will look, what the modules will be, and how they interact with each other 
  • how things will scale for the future and how they will be maintained 
  • figuring out the risk in third-party frameworks/platforms 
  • finding a solution to a business problem

Here are some of the main responsibilities of a solutions architect:

Ultimately, the Solution Architect is responsible for the vision that underlies the solution and the execution of that vision into the solution.

  • Creates and leads the process of integrating IT systems for them to meet an organization’s requirements.
  • Conducts a system architecture evaluation and collaborates with project management and IT development teams to improve the architecture.
  • Evaluates project constraints to find alternatives, alleviate risks, and perform process re-engineering if required.
  • Updates stakeholders on the status of product development processes and budgets.
  • Notifies stakeholders about any issues connected to the architecture.
  • Fixes technical issues as they arise.
  • Analyses the business impact that certain technical choices may have on a client’s business processes.
  • Supervises and guides development teams.
  • Continuously researches emerging technologies and proposes changes to the existing architecture.

Solution Architecture Document:

The Solution Architecture provides an architectural description of a software solution and application. It describes the systems and it’s features based on the technical aspects, business goals, and integration points. It is intended to address a solution to the business needs and provides the foundation/map of the solution requirements driving the software build scope.

High level Benefits of Solution Architecture:

  • Builds a comprehensive delivery approach
  • Stakeholder alignment
  • Ensures a longer solution lifespan with the market
  • Ensures business ROI
  • Optimises the delivery scope and associated effectiveness
  • Easier and more organised implementation
  • Provides a good understanding of the overall development environment
  • Problems and associated solutions can be foreseen

Some aspects to consider:

When doing an enterprise level solution architecture, build and deployment, a few key aspects come to mind that should be build into the solution by design and not as an after thought…

  • Solution Architecture should a continuous part of the overall innovation delivery methodology – Solution Architecture is not a once-off exercise but is imbedded in the revolving SDLC. Cyclically evolve and deliver the solution with agility that can quickly adapt to business change with solution architecture forming the foundation (map and sanity check) before the next evolution cycle. Combine the best of several delivery methodologies to ensure optimum results in bringing the best innovation to revenue channels in the shortest possible timeframe. Read more on this subject here.
  • People – Ensure the right people with the appropriate knowledge, skills and abilities within the delivery team. Do not forget that people (users and customers) will use the system – not technologists.
  • Risk – as the solution architecture evolves, it will introduce technology and business risks that must be added to the project risk register and addressed to mitigation in accordance with the business risk appetite.
  • Choose the right software development tech stack that is well established and easily supported while scalable and powerful enough to deliver a feature rich solution that can be integrated into complex operational estates. Most tech-stacks has Solution Frameworks that outline key design options and decision when doing solution architecture. Choosing the right tech-stack is one of the most fundamental ways to future-proof the technology solution. You can read more on choosing the right tech stack here.
  • Modular approach – using a service oriented architecture (SOA) model to ensure the solution can be functionally scaled, up and down to align with feature required, by using independently functioning modules of macro and micro-services. Each service must be clearly defined with input, process, output parameters that aligns with the integration standard established for the platform. This SOA also assist in overall information security enhancements and fault finding in case something goes wrong. It also makes the developed platform more agile to adapt to continuous business environment and market changes with less overall impact and system changes.
  • Customer data at the heart of a solution – Be clear on Master vs Slave customer and data records and ensure the needed integration between master and slave data within inter-connecting systems and platforms, with the needed security applied to ensure privacy and data integrity. Establish a Single Customer and Data Views (single version of the truth) from the design off-set. Ensure personal identifiable data is handled within the solution according to the regulations as outlined in the Data Protection Act and recently introduced GDPR and data anonymisation and retention policy guidelines.
  • Platform Hosting & Infrastructure – What is the intended hosting framework, will it by private or public cloud, running in AWS or Azure – all important decisions that can drastically impact the solution architecture.
  • Scalability – who is the intended audience for the different modules and associated macro services within the solution – how many consecutive users, transactions, customer sessions, reports, dashboards, data imports & processing, data transfers, etc…? As required, ensure the solution architecture accommodate the capability for the system to monitor usage and automatically scale horizontally (more processing/data (hardware) nodes running in parallel without dropping user sessions) and vertically (adding more power to a hardware node).
  • Information and Cyber Security – A tiered architecture ensure physical differentiation between user and customer facing interfaces, system logic and processing algorithms and the storage components of a solution. Various security precautions, guidelines and best practices should be imbedded within the software development by design. This should be articulated within the solution architecture, infrastructure and service software code. Penetration Testing and the associated platform hardening requirements should feed back into the solution architecture enhancement as required.
  • Identity Management – Single Sign On (SSO) user management and application roles to assign access to different modules, features and functionality to user groups and individuals.
  • Integration – data exchange, multi-channel user interface, compute and storage components of the platform, how the different components inter-connects through secure connection with each other, other applications and systems (API and gateway) within the business operations estate and to external systems.
  • Customer Centric & Business Readiness – from a customer and end-user perspective what’s needed to ensure easy adoption (familiarity) and business ramp-up to establish a competent level of efficiency before the solution is deployed and go-live. UX, UI, UAT, Automated Regression Testing, Training Material, FAQs, Communication, etc…
  • Enterprise deployment – Involvement of all IT and business disciplines i.e. Business readiness (covered above), Network, Compute, Cyber Security, DevOps. Make sure non-functional Dev-Ops related requirements are covered in the same manner as
  • Application Support – Involve the support team during product build to ensure they have input and understanding of the solution to provide SLA driven support at to business and IT operations when the solution goes live. 
  • Business Continuity – what is required from an IT infrastructure and platform/solution capability perspective to ensure the system is always available (online) to enable continuous business operations?

Speak to Renier about your solution architecture requirements. With more than 20 years of enterprise technology product development experience, we can support your team toward delivery excellence.

Also Read:

Executive Summary of 4 commonly used Agile Methodologies

AGILE – What business executives need to know #2: Overview of 4 most commonly used Agile Methodologies

In the first article in this series we focussed on an overview of what Agile software development is and referred to the Agile SCRUM methodology to describe the agile principles.

Let’s recap – Wikipedia describes Agile Software Development as an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross functional teams and their customers / end users.  It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. For an overview see the first blog post…

Several agile delivery methodologies are in use for example: Adaptive Software Development (ASD); Agile Nodelling; Agile Unified Process (AUP); Disciplined Agile Delivery; Dynamic Systems Development Method (DSDM); Extreme Programming (XP); Feature-Driven Development (FDD); Lean Software Development (LEAN); Kanban; Rapid Application Development (RAD); Scrum; Scrumban.

This article covers a brief overview of the four most frequently used Agile Methodologies:

  • Scrum
  • Extreme Programming (XP)
  • Lean
  • Kanban

 

SCRUM

Using Scrum framework the project work is broken down into user stories (basic building blocks of agile projects – these are functional requirements explained in an in business context) which are collated in the backlog (work to be done). Stories, from the backlog, are grouped into sprints (development iteration) based on story functionality dependencies, priorities and resource capacity. The resource capacity is determined by the speed (velocity) at which the team can complete stories, which are categorised into levels of complexity and effort required to complete. Iterations are completed with fully functional deliverables for each story until all the needed stories are completed for functional solutions.

SCRUM

Scrum is based on three pillars:

  • Transparency – providing full visibility on the project progress and a clear understanding of project objectives to the project team but more importantly to the stakeholders responsible for the outcome of the project.
  • Inspection – Frequent and repetitive checks on project progress and milestones as work progresses towards the project goal. The focus of these inspections is to identify problems and differences from the project objectives as well as to identify if the objectives have changed.
  • Adaptation – Responding to the outcome of the inspections to adapt the project to realign in addressing problems and change in objectives.

Through the SCRUM methodology, four opportunities for Inspection and Adaptation are provided:

  • Sprint Retrospective
  • Daily Scrum meeting
  • Sprint review meeting
  • Sprint planning meeting

A Scrum team is made of a Product Owner, a Scrum Master and the Development Team.

Scrum activity can be summarised within the following events:

  • Sprint – a fixed time development iteration
  • Sprint Planning meetings
  • Daily Scrum meetings (Stand-Up meetings)
  • Sprint Review meetings
  • Sprint Retrospectives

 

XP – EXTREME PROGRAMMING

XP

Extreme Programming (XP) provides a set of technically rigorous, team-oriented practices such as Test Driven Development, Continuous Integration, and Pairing that empower teams to deliver high quality software, iteratively.

 

LEAN

LEAN

Lean grew from out of the Toyota manufacturing Production System (TPS). Some key elements of this methodology are:

  • Optimise the whole
  • Eliminate waste
  • Build quality in
  • Learn constantly
  • Deliver fast
  • Engage everybody
  • Keep improving

Lean five principles:

  1. Specify value from the customer’s point of view. Start by recognizing that only a small percentage of overall time, effort and resources in a organization actually adds value to the customer.
  2. Identify and map the value chain. This is the te entire set of activities across all part of the organization involved in delivering a product or service to the customer. Where possible eliminate the steps that do not create value
  3. Create flow – your product and service should flow to the customer without any interruptions, detours or waiting – delivering customer value.
  4. Respond to customer demand (also referred to as pull). Understand the demand and optimize the process to deliver to this demand – ensuring you deliver only what the customer wants and when they want it – just in time production.
  5. Pursue perfection – all the steps link together waste is identified – in layers as one waste rectification can expose another – and eliminated by changing / optimizing the process to ensure all assets add value to the customer.

 

KANBAN

Kanban is focussed the visual presentation and management of work on a kanban board to better balance the understanding of the volume of work with the available resources and the delivery workflow.

KANBAN

Six general work practices are exercised in kanban:

  • Visualisation
  • Limiting work in Progress (WIP)
  • Flow management
  • Making policies explicit
  • Using feedback loops to ensure customer and quality alignment
  • Collaborative & experimental evolution of process and solutions

By limiting WIP you are minimising waste through the elimination of multi tasking and context switching.

There is no prescription of the number of steps to follow but it should align with the natural evolution of the changes being made in resolving a problem or completing a specific peace of work.

It focuses on delivering to customer expectations and needs by promoting team collaboration including the customer.

 

A Pragmatic approach

These techniques together provide a powerful, compelling and effective software development approach that brings the needed flexibility / agility into the software development lifecycle.

Combining and borrowing components from different methodologies to find the optimum delivery method that will deliver to the needs of the organisation is key. Depending on the specific business needs/situation, these components are combined to optimise the design, development and deployment of the software.

Helpful references:

A good overview of different agile methodologies can be found on slideshare at https://www.slideshare.net/SmartBizVN/introduction-to-agile-and-lean-software-development.

 

Let’s Talk – Are you looking to achieve your goals faster? Create better business value? Build strategies to improve growth? We can help – make contact!

 

The 7 Deadly Sins Of Product Development

Guest Blog: Travis Jacobs via LinkedIn

1.   The Pregnant Woman Theory

If one woman can make a baby in 9 months, then 9 women can make a baby in 30 days.  Now you may laugh, but this is the most common problem in developing a new product. Throwing more resources at the problem and praying it goes away does not solve anything.

2.   Stepping Over A Stack Of $100 Bills To Pick Up A Penny

We can’t spend $10 on an off the shelf tool but we can spend $1,000 to develop our own, which doesn’t work and causes more problems than it solves.

Spending countless hours in useless meetings and then having a meeting to discuss why everything is overbudget and behind schedule.

3.   Champagne On A Beer Budget

Expecting everything for free and having It done yesterday. This is a very common occurrence especially when subcontractors are hired.

I want to hire an Engineer with 3 PhD’s, and 30 years of experience for minimum wage

4.   The Scalpel Is Only As Good As The Surgeon Who Uses It, Not All Tools Are Created Equally.

A Scalpel is a commodity, the surgeon who uses it to save your life is not.

Not all tools are created equally, choose the right tool for the right job, not just because that tool Is the cheapest and the “sales guy” said it would “work”.

5.   You Never Run Out Of Things That Go Wrong

There will always be an endless supply of challenges and things that go wrong. Pretending there aren’t any problems doesn’t make them go away.

6.   A Plan Is Just A List Of Stuff That Didn’t Happen & Everything Takes Longer, And Costs More Than You Planned

The battle plan is the first casualty of war, as soon as the first shot is fired the plan goes out the window. Likewise, when the first problem is encountered when developing a new product, the plan and the Gantt Chart go out the window.

7.   Good, Fast, Cheap… Pick Any Two

We never have time to do it right, but we always have time to do it over….. and over….. and over…..

I hear time and time again. Just get it done right now, we’ll fix it later. The problem is that later never comes, and the product is only “fixed” after a very expensive product recall. By then it is too late and significant market share has been lost as well as the reputation of the brand. Trying to save a few bucks in product development can cost millions in product recalls.

iRedeem Product Development

iRedeem Product Overview

iRedeem is an online redemption programme enabling members of a loyalty or membership programme to spend their loyalty currency on a range of exciting travel, lifestyle and leisure rewards.

Built on leading e-commerce technology and with a network of global partners iRedeem currently serves blue chip companies across the globe, offering them a personalised customer experience. You can incorporate your own inventory to provide greater redemption choice and reduce distressed inventory.

Also read the case study… iRedeem – A Global Airline Case Study

Innovation Rewarded

Engineering News – Innovation Reward

Innovation is crucial to industry and economic growth. That is why the South-African Department of Trade and Industry (DTI) has introduced the SPII (Support Programme for Industrial Innovation) initiative to support companies in the develop of new products.

The winners of the 7th SPII Awards was announced in Kimberley in Sep’04…

Customer Feedback Systems won the small enterprise category with its innovative CFS Version 2 Service Tracka project.

The CFS Version 2 “Service Tracka” product is an electronic tool designed to obtain useful and reliable service information with little inconvenience to the customer providing the information. Feedback Systems GM Renier Botha says direct-customer, real-time market intelligence and operational information is an indispensable tool for any business, particularly those involving a large number of individual customers. “Traditional methods include direct or telephone interviews and the completion of forms by customers – all methods that are expensive and time-consuming,” he notes.

With the CFS Version 2 Service Tracka, electronic input devices are located at tills or at strategic positions within a queuing system. The customer enters his responses to questions, without assistance, into the input device. The data is then hosted and managed by CFS and, upon input, is immediately written to a database and results delivered electronically to the client as often as daily. “This enables the client to focus on driving service improvement,” Botha explains.

The CFS system has a number of enhanced features, including a card reader for linking to loyalty programmes, the location of ‘intelligence’ in the central controller, which reduces input device costs, and the activation of the input devices from the central controller, which allows for the reduction of fictitious entries. The provision of question template updates by means of programmable chips in the lid also allows updates to be made before and after deployment of the input devices making question changes easy. Local customers include banks, hotel groups, healthcare, retailers and the South African Revenue Service.

Feedback Systems started developing the CFS Version 2 Service Tracka system at the end of 2001.

The product was subsequently released on the market at the end of January the next year. Today, the company has sold some 4 500 of these systems across South Africa.

Feedback Systems also has distributors located in Zimbabwe (servicing African countries, such as Tanzania, Kenya and Namibia), Australia, Singapore (servicing South East Asia), Dubai (servicing the Middle East) and London (servicing Europe). “We have a total of about 2 000 Service Tracka systems operating in these countries,” Botha says.

The company is also currently negotiating a distributorship deal for the US.

Read the full articel here… Engineering News – Innovation Reward