SDA in Industry
Estimated time to read: 2 minutes
Roles¶
What does a career in SDA look like?
What is the difference between Software Design and Software Architecture?¶
The main difference between the two, in short; Software design looks at the lower-level aspects of a system.
Software architecture looks at the higher-level aspects of the system.
Software Design¶
The software designer role is usually responsible for outline a a software solution to a specific problem by designing the details of individual components and their responsibilities.
Software Architect¶
A software architect role would be responsible for looking at the entire system, select appropriate frameworks, data storage, solutions and determining how components interact with each other.
SDA is essential to the software development process
What is Software Design?¶
Software design is the process of turning the wishes of the customer into working code that is stable, maintainable and can be evolved into a bigger system.
Architecture is primarily begins with understanding the business problem tat the client wants to solve. If you understand the problem, then you can bring in your previous solutions to problems and then design the overall solution. Architecture is the study of boxes and lines. Boxes with content and lines expressing relationships.
Why is Software Design and Architecture important?¶
Architecture is important if you want to have a stable long living system. Some thought needs to be put into the architecture of an application. If you get it wrong, the project will fail.
Architecture is the understanding of the relationship between the requirements of the user and the ability to build a system that works with those requirements.
What are key challenges in Software Design and Architecture?¶
The tendency to have to trade off between speed and quality. The customer and the business want results as soon as possible, however, the engineering team want to build the most robust system.
Understanding the clients problem. What is it they want to do? They may not know, they have a vague sense that they could be doing better, but they don't know how or why that impacts the business.
What does a Software Architect do?¶
A Software Architect is the interface between the product, the customer and the engineering teams. The customers will express a requirement or a need they have of the, of the software and it's the architect's job to then work with the customers and their representatives, product managers and such, to come up with the technical requirements of how we're going to solve the problem. And then they take those requirements to the engineering teams and worked with the engineers on how to realise that in a way that is meeting the customer's requirements and also aligned with the technical best practices and nonfunctional requirements that have to be adhered to in the product.