Solution Designing
For most of the solution designs, we can follow the below processes:
a) What is the problem?
We have to find the problem first before coming up with any solution. The problem must be clear.
b) Information Gathering
Now we know the problem, let’s start with data collection. Gather as much information and data points before brainstorming.
c) Evaluate Ideas
Now start designing. Use the data points and start building some ideas/ designs.
d) Make Solutions
Use your ideas and create solutions. We can create some flows and processes which can help to provide a solution to the problem.
e) Feedbacks
Try to present the solutions to the team members and get feedback.
f) Improve solution
Now we have the preferred solution and feedback. Let’s improvise it.
Types of Architectures
Business Architecture : Here we think and design for business objectives and terms. We talk about business capabilities here.
Example : One-click feature-End user must be able to navigate to important features in a single click, like to a ‘Make a payment’ page.
Information Architecture: How the information is shared or seen by end-users.
Example : Make a payment page has a credit card option.
Security Architecture: This deals with the security requirements of the application.
Example: How the data is securely transferred.
System Architecture: This defines how the systems interact with each other and the flow of data.
Example : Requests from the client go to API gateway which then calls the load balancer of the downstream webservice.
Technology Architecture: Here we define the technology is used for information transfer.
Example: We use Oracle DB to store and if it fails, use MQ to save the data as a message.
Key points while designing any software:
The software must be robust.
One can measure its details, like page load time, batch processing timings.
One should be able to easily debug it.
It must be maintainable and new developers can understand it.
Components must be reusable.
It must be extensible for new features.
Solution architect roles and responsibilities
The solution architect’s job is to focus on solution-level decisions and analysis of their impact on the overall business goals and outcomes.
His/Her roles/responsibilities include:
– Design and build systems for business and organization needs.
– Review and analyze systems and provide recommendations to the technical staff.
– Provide solutions for technical problems in the solution design.
– Keep himself/herself up to date with technologies and processes.
– Update stakeholders on product details including processes, costs, timeframe etc.
– Create a solution prototype.
– Analyze and document requirements.
– Controlling solution development.
– Support project management.
Software Architecture Document
Architecture is the flow and interaction between systems and the environment for serving purposes.
Software Architecture Document: It helps the solution designer to design and present the architecture of the solution.
Some of its main points include:
TABLE OF CONTENTS
Overview: Overview of the problem and solution
Purpose: Define the problem
Roles and Responsibilities: List all main stakeholder and teams
Design Considerations
Assumptions: List all assumptions while defining the solution.
Risks: List out if any risks
Technical Architecture: Layout your architecture.
>Component Views
>Software details
>Hardware details
>Dependencies
>Solution Structure
>Data Management
>Security Details
>Caching
>Testing 14
Privacy
Database Designs