Thursday, October 5, 2023

Architecture: The Common Shared Understanding -- Part 1

 

When we are developing a software system, the requirement from a stakeholder is not 'Fast' or 'Scalable'  or  'Responsive'.  But, the stakeholder needs it and expects it.  If you see, on a larger picture, the software system development and maintenance is a job of balancing too.


When a Software Architect [Technical Architect and Test Architect], works on architecting the software system and testing for the same,

  • It is about balancing the technical aspects with the business's requirements from stakeholders.  
    • Do you see that?


Knowing the architecture of a software system and testing of same is one of a primary task for engineers on the project.  Because, we software engineers have to balance it well.  Balance, what? Balancing the technical aspects together with business's requirements from stakeholders.


This blog post is part of 100 Days of Skilled Testing series.  The second question posted for season 2 is,

How important is the understanding of application architecture to do performance testing better?

 

What is an Architecture?

In context of Software Development & Engineering, the word "architecture" is one of the ambiguous words among the teams in a project and an organization. 

As a test engineer,

  • Did you ever had a discussion or arguments or debate with programmer and architect?
  • I had such discussions and I continue to have it today as well in the projects that I work.
    • This is to know and understand
      • What I should be doing as an engineer for first and as a Test Architect in the role?


The outcome of this discussion showed me,

  • We all did not have a common understanding of it
    • We did not share,
      • "What I understood for the architecture and this architecture?"

The primary goal of a Software System's Architecture is,
  • We all engineers on a project have a same understanding of it, in the aspects it exists for.
  • This understanding is arrived after we have put our thoughts into scrutiny and decided that we stick on to it, so that,
    • We can balance well between the technical requirements and business expectation.
Are you with me, so far?



A Software System's Architecture is,
  1. A common shared understanding of what we all have for,
    •  What we are developing, testing, and to about maintain?
      • And, Why? Who? When? Where? How?
  2. Represents the boundaries and interfaces of what matters,
    • That is [to be] orchestrated, designed, implemented, how it communicates, and what it will have, and not.
    • It also can show how the teams are structured and how the team and organization is organized.
      • For example, in the Service Oriented Architecture, the teams are built and structured with respect to the service they offer.
    • It is a model that is better than other models in a given context of technical requirements and business needs
  3. The context and awareness for,
    • Why it is the way it is?
      • The cost and value for being so.
    • What to do when it has to be changed? Where to change?
      • How simple and quick to change?
        • What are the cost and value for being so?
    • How can I monitor and observe all these consistently?
  4. The Gateway of Testability - it tells what is the Testability available for,
    • Letting know what is critical and priority to test
    • Where, How, When, and What tests can be framed, designed, and executed? To what extent?
      • Why these tests?
      • If an architecture does not talk about and do not have the Testability, we have a serious problem!  This has to be fixed for first on priority.
        • An architecture has to provide the Testability and Programmability scope and opportunities to develop a software system that is of value!

For today, this is my understanding for the "Architecture".

I'm a Test Architect in the role and I expect myself to be an hands-on engineer for first.  It is a necessity for an architect to be an hands-on engineer.




Note: Read the Part 2 of this blog post here.


No comments:

Post a Comment

Please, do write your comment on the read information. Thank you.