Nine types of technical assessments conducted on software projects
Published: 06th February 2017
Almost every software project executed has been subjected to one if not many assessments at various stages of the project's life-cycle. Every assessment is performed with a certain objective in mind. There are numerous types of assessments that are performed on projects and even though we are roughly aware about the various kind of assessments we generally tend to forget the boundaries or scope that begins and ends with a particular kind of assessment.
This article aims to throw some light on the different kinds of assessments, their purpose and the objectives that are meant to be addressed by each kind of assessment. It also aims to provide a better understanding about the scope of each assessment and to provide a clarity to the ambiguity surrounded by the different kind of assessments.
1. Types of Technical Assessments
There are different kind of technical assessments done on projects. They can be categorized as follows
• Application Architecture Assessment
• System Architecture Assessment
• Integration Architecture Assessment
• Information Architecture Assessment
• Design Assessments
• Code Assessments
• Assessment of Best Practices
• Usability Assessments
• Non Function Requirements Assessment
Each assessment is performed for a specific purpose and a single project could have been subjected to multiple assessments. The key here is to understand the purpose of each assessment and the benefit for the same, only then we will be able to prescribe the right assessment for a project to address a specific need.
1.1 Application's Architecture Assessment
The main objective of this assessment is to assess the benefits and drawbacks of the current application's architecture. This assessment is only limited to the architecture of the current application and not of the overall enterprise or how it integrates with the same. Every application is constructed with the aim of meeting certain quantifiable objectives such as a) It should be able to scale to a particular user base b) it should perform as per benchmarked conditions c) It should be maintainable etc. The Application architecture report assesses the architecture vis-a-vie these parameters to make sure they are being met and lists down the necessary corrective actions that need to be put in place to keep the architecture in line with the objective.
1.2 System Architecture Assessment
This assessment is done to ensure that the capacity planning that has been done for the application is appropriate and in line with the preset non-functional parameters. It is very important to ensure that the hardware prescribed for the overall application and the load balancing and clustering architecture suggested are appropriate to meet the scalability and performance needs of the application. This assessment doesn't focus on application's architecture and codebase but it focuses on the overall deployment architecture of the application.
1.3 Integration Architecture Assessment
This assessment is done to ensure the architecture is easily integratabile with external systems and it follows all necessary protocols required for implementing the same. This architecture assessment only focuses on ensuring integration with other systems is smooth and that the application can support a distributed architecture model. It also serves to ensure that there is a high degree of reliability and security while exchanging information with other systems.
1.4 Information Architecture Assessment
Information architecture generally represents the structural design or the shared information components of a particular system/subsystem. When we assess the information architecture of a system we don't assess the technology aspect of the system but we only inspect the information and the way it has been effectively distributed across the various elements or components of the system. However usability and information architecture do have some amount of overlap and inter relationship, hence it is imperative to establish a clear boundary between this kind assessment and usability assessment to prevent said overlap.
1.5 Design Assessment
This assessment is done on the low level design components of the system. This is done primarily to ensure proper modeling of the business domain. This assessment also checks if all the proper design patterns are applied to domain model to ensure the optimal representation of the domain in the design.
1.6 Code Assessment
This assessment is meant to assess the quality of the application's codebase. It is imperative to understand and assess the code quality to ensure that the code written is clear, readable, maintainable and optimal. A well written code base ensures that the application is easily maintainable in the future and also ensures that the application doesn't have a performance or excessive memory consumption problems.
1.7 Assessment of Best practices
Every project strives to use best practices throughout its development. This assessment is used to analyse the kind of best practices that have been followed across the project and if any other best technical practices could be applied to the project.
1.8 Usability Assessment
Most software projects warrant user interaction. These interactions are done via different user interfaces that are built on top of well designed domain logic. No matter how well designed the domain model may be from the users perspective the UI is of utmost importance and a user's interaction with the UI should be smooth and hassle free. Every user wants a good experience while operating a software and it should be conducive to his daily use and assist him in performing his tasks at a more rapid rate.
1.9 Non functional requirement assessment
Every project is comprised of both functional and non-functional requirements. Non-functional requirements are used to set the benchmarks that are expected with respect to certain architectural parameters like scalability, maintainability, extensibility, reliability etc. This assessment exclusively examines only these parameters in the application to ensure that the necessary implementation steps have been put in place to ensure that these parameters are met.
It is important to understand each of these assessments and its also very important to understand the scope of a particular assessment. Most of times customers request for their projects to be assessed and assume that the suggestions provided by the consulting team are the panacea for all that is wrong with the project. However this is not the truth always and here is where in most cases a customer may feel he is let down by the outcome of an assessment. However in reality it is the responsibility of the architect to clearly define the scope of an assessment and the various assessment parameters for the project. Hence it is imperative for the architects to understand the various types of assessments and prescribe the correct assessment that would address the customer's need and establish the correct expectations as well at the beginning of the technical assessment.
This article is copyright